parser/mistral-parser-defs.h
00001 #ifndef MISTRAL_PARSER_DEFS_H_
00002 #define MISTRAL_PARSER_DEFS_H_
00003 
00004 #include "cnode.h"
00005 #include "term.h"
00006 #include <string>
00007 using namespace std;
00008 
00009 union parse_res_union
00010 {
00011   CNode* c;
00012   Term* t;
00013   string* s;
00014 };
00015 
00016 enum PARSE_KIND {PARSE_CNODE, PARSE_TERM, PARSE_STRING};
00017 
00018 struct parse_result
00019 {
00020         PARSE_KIND kind;
00021         parse_res_union res;
00022 };
00023 
00024 
00025 
00026 //typedef parse_result YYSTYPE;
00027 #define YYSTYPE parse_result
00028 
00029 extern YYSTYPE yylval;
00030 
00031 #define YYINITDEPTH 100000
00032 
00033 
00034 extern CNode* res_constraint;
00035 extern Term* res_term;
00036 
00037 extern int curr_lineno;
00038 extern void (*parser_error_fn)(string);
00039 
00040 #endif /* MISTRAL_PARSER_DEFS_H_ */