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