1/*
2 * Copyright 1993, 2000 Christopher Seiwald.
3 *
4 * This file is part of Jam - see jam.c for Copyright information.
5 */
6
7/*
8 * parse.h - make and destroy parse trees as driven by the parser
9 *
10 * 10/22/02 (seiwald) - working return/break/continue statements
11 * 11/04/02 (seiwald) - const-ing for string literals
12 */
13
14/*
15 * parse tree node
16 */
17
18typedef struct _PARSE PARSE;
19
20struct _PARSE {
21	LIST		*(*func)( PARSE *p, LOL *args, int *jmp );
22	PARSE		*left;
23	PARSE		*right;
24	PARSE		*third;
25	const char	*string;
26	const char	*string1;
27	int		num;
28	int		refs;
29} ;
30
31void 	parse_file( const char *f );
32void 	parse_save( PARSE *p );
33
34PARSE * parse_make(
35	LIST 		*(*func)( PARSE *p, LOL *args, int *jmp ),
36	PARSE		*left,
37	PARSE		*right,
38	PARSE		*third,
39	const char	*string,
40	const char	*string1,
41	int		num );
42
43void 	parse_refer( PARSE *p );
44void 	parse_free( PARSE *p );
45