File: parse.h

package info (click to toggle)
jam 2.6.1-2.1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,220 kB
  • sloc: ansic: 9,035; yacc: 443; sh: 121; makefile: 45
file content (50 lines) | stat: -rw-r--r-- 991 bytes parent folder | download | duplicates (3)
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
45
46
47
48
49
50
/*
 * 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
 * 01/05/07 (seiwald) - new yyfname/yylineno for DEBUG_COMPILE
 */

/*
 * 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;

	/* For DEBUG_COMPILE */

	const char	*yyfname;
	int		yylineno;
} ;

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 );