summaryrefslogtreecommitdiff
path: root/tools/build/v2/engine/parse.h
diff options
context:
space:
mode:
Diffstat (limited to 'tools/build/v2/engine/parse.h')
-rw-r--r--tools/build/v2/engine/parse.h47
1 files changed, 33 insertions, 14 deletions
diff --git a/tools/build/v2/engine/parse.h b/tools/build/v2/engine/parse.h
index e324972f7b..882a029f42 100644
--- a/tools/build/v2/engine/parse.h
+++ b/tools/build/v2/engine/parse.h
@@ -21,36 +21,55 @@
* parse.h - make and destroy parse trees as driven by the parser.
*/
+#define PARSE_APPEND 0
+#define PARSE_FOREACH 1
+#define PARSE_IF 2
+#define PARSE_EVAL 3
+#define PARSE_INCLUDE 4
+#define PARSE_LIST 5
+#define PARSE_LOCAL 6
+#define PARSE_MODULE 7
+#define PARSE_CLASS 8
+#define PARSE_NULL 9
+#define PARSE_ON 10
+#define PARSE_RULE 11
+#define PARSE_RULES 12
+#define PARSE_SET 13
+#define PARSE_SETCOMP 14
+#define PARSE_SETEXEC 15
+#define PARSE_SETTINGS 16
+#define PARSE_SWITCH 17
+#define PARSE_WHILE 18
+
/*
* Parse tree node.
*/
struct _PARSE {
- LIST * (* func)( PARSE *, FRAME * );
+ int type;
PARSE * left;
PARSE * right;
PARSE * third;
- char * string;
- char * string1;
+ OBJECT * string;
+ OBJECT * string1;
int num;
int refs;
-/* module * module; */
- char * rulename;
- char * file;
+ OBJECT * rulename;
+ OBJECT * file;
int line;
};
-void parse_file( char *, FRAME * );
+void parse_file( OBJECT *, FRAME * );
void parse_save( PARSE * );
PARSE * parse_make(
- LIST * (* func)( PARSE *, FRAME * ),
- PARSE * left,
- PARSE * right,
- PARSE * third,
- char * string,
- char * string1,
- int num );
+ int type,
+ PARSE * left,
+ PARSE * right,
+ PARSE * third,
+ OBJECT * string,
+ OBJECT * string1,
+ int num );
void parse_refer ( PARSE * );
void parse_free ( PARSE * );