]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/CodeTools/TianoTools/Pccts/dlg/parser.dlg
Restructuring for better separation of Tool packages.
[mirror_edk2.git] / Tools / CodeTools / TianoTools / Pccts / dlg / parser.dlg
diff --git a/Tools/CodeTools/TianoTools/Pccts/dlg/parser.dlg b/Tools/CodeTools/TianoTools/Pccts/dlg/parser.dlg
new file mode 100644 (file)
index 0000000..df9a637
--- /dev/null
@@ -0,0 +1,398 @@
+<<\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