added iterator funcions for hash and rulelist
[k8jam.git] / src / parse.h
blobaaab9e3ffd9df5ee957bb2cc0059bf500f7af256
1 /*
2 * Copyright 1993, 2000 Christopher Seiwald.
4 * This file is part of Jam - see jam.c for Copyright information.
5 */
6 /*
7 * parse.h - make and destroy parse trees as driven by the parser
9 * 10/22/02 (seiwald) - working return/break/continue statements
10 * 11/04/02 (seiwald) - const-ing for string literals
12 #ifndef JAMH_PARSE_H
13 #define JAMH_PARSE_H
16 /* parse tree node */
17 typedef struct _PARSE PARSE;
18 struct _PARSE {
19 LIST *(*func) (PARSE *p, LOL *args, int *jmp);
20 PARSE *left;
21 PARSE *right;
22 PARSE *third;
23 const char *string;
24 const char *string1;
25 int num;
26 int refs;
30 extern void parse_file (const char *f);
31 extern void parse_save (PARSE *p);
33 PARSE *parse_make (
34 LIST *(*func) (PARSE *p, LOL *args, int *jmp),
35 PARSE *left,
36 PARSE *right,
37 PARSE *third,
38 const char *string,
39 const char *string1,
40 int num
43 extern void parse_refer (PARSE *p);
44 extern void parse_free (PARSE *p);
47 extern const char *multiFormSfx (int cnt) JAMFA_CONST;
50 #endif