File: parse.h

package info (click to toggle)
jam 2.5rel-1
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k, lenny, sarge, squeeze, wheezy
  • size: 820 kB
  • ctags: 1,160
  • sloc: ansic: 6,580; yacc: 443; makefile: 67; sh: 63
file content (44 lines) | stat: -rw-r--r-- 863 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
/*
 * Copyright 1993, 2000 Christopher Seiwald.
 *
 * This file is part of Jam - see jam.c for Copyright information.
 */

/*
 * parse.h - make and destroy parse trees as driven by the parser
 *
 * 10/22/02 (seiwald) - working return/break/continue statements
 * 11/04/02 (seiwald) - const-ing for string literals
 */

/*
 * parse tree node
 */

typedef struct _PARSE PARSE;

struct _PARSE {
	LIST		*(*func)( PARSE *p, LOL *args, int *jmp );
	PARSE		*left;
	PARSE		*right;
	PARSE		*third;
	const char	*string;
	const char	*string1;
	int		num;
	int		refs;
} ;

void 	parse_file( const char *f );
void 	parse_save( PARSE *p );

PARSE * parse_make( 
	LIST 		*(*func)( PARSE *p, LOL *args, int *jmp ),
	PARSE		*left,
	PARSE		*right,
	PARSE		*third,
	const char	*string,
	const char	*string1,
	int		num );

void 	parse_refer( PARSE *p );
void 	parse_free( PARSE *p );