--- /dev/null
+<<\r
+/* parser.dlg -- DLG Description of scanner\r
+ *\r
+ * Generated from: dlg_p.g\r
+ *\r
+ * Terence Parr, Will Cohen, and Hank Dietz: 1989-2001\r
+ * Purdue University Electrical Engineering\r
+ * With AHPCRC, University of Minnesota\r
+ * ANTLR Version 1.33MR33\r
+ */\r
+\r
+#define ANTLR_VERSION 13333\r
+#include "pcctscfg.h"\r
+#include "pccts_stdio.h"\r
+\r
+#include <ctype.h>\r
+#include "dlg.h"\r
+#include "antlr.h"\r
+#include "tokens.h"\r
+#include "dlgdef.h"\r
+LOOKAHEAD\r
+\r
+void\r
+#ifdef __USE_PROTOS\r
+zzerraction(void)\r
+#else\r
+zzerraction()\r
+#endif\r
+{\r
+ (*zzerr)("invalid token");\r
+ zzadvance();\r
+ zzskip();\r
+}\r
+>>\r
+\r
+<<%%lexaction\r
+\r
+int func_action; /* should actions be turned into functions?*/\r
+int lex_mode_counter = 0; /* keeps track of the number of %%names */\r
+/* MR1 */\r
+/* MR1 11-Apr-97 Provide mechanism for inserting code into DLG class */\r
+/* MR1 via <<%%lexmember...>> */\r
+/* MR1 */\r
+int lexMember = 0; /* <<%%lexmemeber ...>> MR1 */\r
+int lexAction = 0; /* <<%%lexaction ...>> MR1 */\r
+int parserClass = 0; /* <<%%parserclass ...>> MR1 */\r
+int lexPrefix = 0; /* <<%%lexprefix ...>> MR1 */\r
+char theClassName[100]; /* MR11 */\r
+char *pClassName=theClassName; /* MR11 */\r
+int firstLexMember=1; /* MR1 */\r
+\r
+#ifdef __USE_PROTOS\r
+void xxputc(int c) { /* MR1 */\r
+#else\r
+ void xxputc(c) /* MR1 */\r
+ int c; /* MR1 */\r
+ { /* MR1 */\r
+#endif\r
+ if (parserClass) { /* MR1 */\r
+ *pClassName++=c; /* MR1 */\r
+ *pClassName=0; /* MR1 */\r
+ } else if (lexMember || lexPrefix) { /* MR1 */\r
+ if (class_stream != NULL) fputc(c,class_stream); /* MR1 */\r
+ } else { /* MR1 */\r
+ fputc(c,OUT); /* MR1 */\r
+ }; /* MR1 */\r
+ } /* MR1 */\r
+ \r
+#ifdef __USE_PROTOS\r
+ void xxprintf(char *format,char *string) { /* MR1 */\r
+#else\r
+ void xxprintf(format,string) /* MR1 */\r
+ char *format; /* MR1 */\r
+ char *string; /* MR1 */\r
+ { /* MR1 */\r
+#endif\r
+ if (lexMember || lexPrefix || parserClass) { /* MR1 */\r
+ if (class_stream != NULL) /* MR1 */\r
+ fprintf(class_stream,format,string); /* MR1 */\r
+ } else { /* MR1 */\r
+ fprintf(OUT,format,string); /* MR1 */\r
+ }; /* MR1 */\r
+ } /* MR1 */\r
+>>\r
+\r
+\r
+%%START\r
+\r
+@\r
+ <<\r
+ NLA = 1;\r
+ >>\r
+\r
+[\r\t\ ]+\r
+ <<\r
+ NLA = 2;\r
+ zzskip(); \r
+ >>\r
+\r
+\n\r
+ <<\r
+ NLA = 3;\r
+ zzline++; zzskip(); DAWDLE; \r
+ >>\r
+\r
+\@\r
+ <<\r
+ NLA = L_EOF;\r
+ >>\r
+\r
+\%\%\r
+ <<\r
+ NLA = PER_PER;\r
+ >>\r
+\r
+\%\%[a-zA-Z_][a-zA-Z0-9_]*\r
+ <<\r
+ NLA = NAME_PER_PER;\r
+ p_mode_def(&zzlextext[2],lex_mode_counter++); \r
+ >>\r
+\r
+\<\<\%\%lexmember\r
+ <<\r
+ NLA = LEXMEMBER;\r
+ lexMember=1; /* MR1 */\r
+ if (firstLexMember != 0) { /* MR1 */\r
+ firstLexMember=0; /* MR1 */\r
+ p_class_def1(); /* MR1 */\r
+ }; /* MR1 */\r
+ zzmode(ACT); /* MR1 */\r
+ >>\r
+\r
+\<\<\%\%lexaction\r
+ <<\r
+ NLA = LEXACTION;\r
+ lexAction=1;zzmode(ACT); \r
+ >>\r
+\r
+\<\<\%\%parserclass\r
+ <<\r
+ NLA = PARSERCLASS;\r
+ parserClass=1; /* MR1 */\r
+ zzmode(ACT); /* MR1 */\r
+ >>\r
+\r
+\<\<\%\%lexprefix\r
+ <<\r
+ NLA = LEXPREFIX;\r
+ lexPrefix=1;zzmode(ACT); \r
+ >>\r
+\r
+\<\<\r
+ <<\r
+ NLA = ACTION;\r
+ if (func_action)\r
+ fprintf(OUT,"\n%s %sact%d()\n{ ",\r
+ gen_cpp?"ANTLRTokenType":"static void",\r
+ gen_cpp?ClassName("::"):"", ++action_no);\r
+ zzmode(ACT); zzskip();\r
+ >>\r
+\r
+\>\>\r
+ <<\r
+ NLA = GREAT_GREAT;\r
+ >>\r
+\r
+\{\r
+ <<\r
+ NLA = L_BRACE;\r
+ >>\r
+\r
+\}\r
+ <<\r
+ NLA = R_BRACE;\r
+ >>\r
+\r
+\(\r
+ <<\r
+ NLA = L_PAR;\r
+ >>\r
+\r
+\)\r
+ <<\r
+ NLA = R_PAR;\r
+ >>\r
+\r
+\[\r
+ <<\r
+ NLA = L_BRACK;\r
+ >>\r
+\r
+\]\r
+ <<\r
+ NLA = R_BRACK;\r
+ >>\r
+\r
+\*\r
+ <<\r
+ NLA = ZERO_MORE;\r
+ >>\r
+\r
+\+\r
+ <<\r
+ NLA = ONE_MORE;\r
+ >>\r
+\r
+\|\r
+ <<\r
+ NLA = OR;\r
+ >>\r
+\r
+\-\r
+ <<\r
+ NLA = RANGE;\r
+ >>\r
+\r
+\~\r
+ <<\r
+ NLA = NOT;\r
+ >>\r
+\r
+\\0[0-7]*\r
+ <<\r
+ NLA = OCTAL_VALUE;\r
+ {int t; sscanf(&zzlextext[1],"%o",&t); zzlextext[0] = t;} \r
+ >>\r
+\r
+\\0[Xx][0-9a-fA-F]+\r
+ <<\r
+ NLA = HEX_VALUE;\r
+ {int t; sscanf(&zzlextext[3],"%x",&t); zzlextext[0] = t;} \r
+ >>\r
+\r
+\\[1-9][0-9]*\r
+ <<\r
+ NLA = DEC_VALUE;\r
+ {int t; sscanf(&zzlextext[1],"%d",&t); zzlextext[0] = t;} \r
+ >>\r
+\r
+\\t\r
+ <<\r
+ NLA = TAB;\r
+ zzlextext[0] = '\t'; \r
+ >>\r
+\r
+\\n\r
+ <<\r
+ NLA = NL;\r
+ zzlextext[0] = '\n'; \r
+ >>\r
+\r
+\\r\r
+ <<\r
+ NLA = CR;\r
+ zzlextext[0] = '\r'; \r
+ >>\r
+\r
+\\b\r
+ <<\r
+ NLA = BS;\r
+ zzlextext[0] = '\b'; \r
+ >>\r
+\r
+\\ \n\r
+ <<\r
+ NLA = CONTINUATION;\r
+ zzline++; zzskip(); \r
+ >>\r
+\r
+\\~[tnrb]\r
+ <<\r
+ NLA = LIT;\r
+ zzlextext[0] = zzlextext[1]; \r
+ >>\r
+\r
+~[\\]\r
+ <<\r
+ NLA = REGCHAR;\r
+ >>\r
+\r
+\r
+%%ACT\r
+\r
+@\r
+ <<\r
+ NLA = 1;\r
+ error("unterminated action", zzline); zzmode(START); \r
+ >>\r
+\r
+\>\>\r
+ <<\r
+ NLA = ACTION;\r
+ if (func_action) fprintf(OUT,"}\n\n");\r
+ zzmode(START);\r
+ /* MR1 */\r
+ /* MR1 11-Apr-97 Provide mechanism for inserting code into DLG class */\r
+ /* MR1 via <<%%lexmember ...>> */\r
+ /* MR1 This is a consequence of not saving actions */\r
+ /* MR1 */\r
+ /* MR1 */ parserClass=0; \r
+ /* MR1 */ lexPrefix=0;\r
+ /* MR1 */ lexAction=0;\r
+ /* MR1 */ lexMember=0;\r
+ >>\r
+\r
+\>\r
+ <<\r
+ NLA = 34;\r
+ xxputc(zzlextext[0]); zzskip(); \r
+ >>\r
+\r
+\\\>\r
+ <<\r
+ NLA = 35;\r
+ xxputc('>'); zzskip(); \r
+ >>\r
+\r
+\\\r
+ <<\r
+ NLA = 36;\r
+ xxputc('\\'); zzskip(); \r
+ >>\r
+\r
+\n\r
+ <<\r
+ NLA = 37;\r
+ xxputc(zzlextext[0]); ++zzline; zzskip(); \r
+ >>\r
+\r
+/\*\r
+ <<\r
+ NLA = 38;\r
+ zzmode(ACTION_COMMENTS); /* MR1 */\r
+ xxprintf("%s", &(zzlextext[0])); zzskip(); /* MR1 */\r
+ >>\r
+\r
+//\r
+ <<\r
+ NLA = 39;\r
+ zzmode(ACTION_CPP_COMMENTS); /* MR1 */\r
+ xxprintf("%s", &(zzlextext[0])); zzskip(); /* MR1 */\r
+ >>\r
+\r
+~[]\r
+ <<\r
+ NLA = 40;\r
+ xxputc(zzlextext[0]); zzskip(); \r
+ >>\r
+\r
+\r
+%%ACTION_COMMENTS\r
+\r
+@\r
+ <<\r
+ NLA = 1;\r
+ >>\r
+\r
+\*/\r
+ <<\r
+ NLA = 41;\r
+ zzmode(ACT); /* MR1 */\r
+ xxprintf("%s", &(zzlextext[0])); zzskip(); /* MR1 */\r
+ >>\r
+\r
+[\n\r]\r
+ <<\r
+ NLA = 42;\r
+ zzline++; xxputc(zzlextext[0]); zzskip(); \r
+ >>\r
+\r
+~[]\r
+ <<\r
+ NLA = 43;\r
+ xxputc(zzlextext[0]); zzskip(); \r
+ >>\r
+\r
+\r
+%%ACTION_CPP_COMMENTS\r
+\r
+@\r
+ <<\r
+ NLA = 1;\r
+ >>\r
+\r
+[\n\r]\r
+ <<\r
+ NLA = 44;\r
+ zzmode(ACT); zzline++; /* MR1 */\r
+ xxprintf("%s", &(zzlextext[0])); zzskip(); /* MR1 */\r
+ >>\r
+\r
+~[]\r
+ <<\r
+ NLA = 45;\r
+ xxputc(zzlextext[0]); zzskip(); \r
+ >>\r
+\r
+%%\r