parser.dlg
资源名称:pccts133.zip [点击查看]
上传用户:itx_2006
上传日期:2007-01-06
资源大小:493k
文件大小:18k
源码类别:
编译器/解释器
开发平台:
Others
- <<
- /* parser.dlg -- DLG Description of scanner
- *
- * Generated from: antlr.g
- *
- * Terence Parr, Will Cohen, and Hank Dietz: 1989-1998
- * Purdue University Electrical Engineering
- * With AHPCRC, University of Minnesota
- * ANTLR Version 1.33MR14
- */
- #define ANTLR_VERSION 13314
- #include "pcctscfg.h"
- #include PCCTS_STDIO_H
- #include "set.h"
- #include <ctype.h>
- #include "syn.h"
- #include "hash.h"
- #include "generic.h"
- #define zzcr_attr(attr,tok,t)
- #include "antlr.h"
- #include "tokens.h"
- #include "dlgdef.h"
- LOOKAHEAD
- void zzerraction()
- {
- (*zzerr)("invalid token");
- zzadvance();
- zzskip();
- }
- >>
- <<%%lexaction
- /* maintained, but not used for now */
- set AST_nodes_refd_in_actions = set_init;
- int inAlt = 0;
- set attribsRefdFromAction;
- int UsedOldStyleAttrib = 0;
- int UsedNewStyleLabel = 0;
- #ifdef __USE_PROTOS
- char *inline_set(char *);
- #else
- char *inline_set();
- #endif
- /* MR1 10-Apr-97 MR1 Previously unable to put right shift operator */
- /* MR1 in DLG action */
- int tokenActionActive=0; /* MR1 */
- >>
- <<%%lexaction
- static char *
- #ifdef __USE_PROTOS
- getFileNameFromTheLineInfo(char *toStr, char *fromStr)
- #else
- getFileNameFromTheLineInfo(toStr, fromStr)
- char *toStr, *fromStr;
- #endif
- {
- int i, j, k;
- if (!fromStr || !toStr) return toStr;
- /* find the first " */
- for (i=0;
- (i<MaxFileName) &&
- (fromStr[i] != 'n') &&
- (fromStr[i] != 'r') &&
- (fromStr[i] != '"');
- i++) /* nothing */ ;
- if ( (i == MaxFileName) ||
- (fromStr[i] == 'n') ||
- (fromStr[i] == 'r') ) {
- return toStr;
- }
- /* find the second " */
- for (j=i+1;
- (j<MaxFileName) &&
- (fromStr[j] != 'n') &&
- (fromStr[j] != 'r') &&
- (fromStr[j] != '"');
- j++) /* nothing */ ;
- if ((j == MaxFileName) ||
- (fromStr[j] == 'n') ||
- (fromStr[j] == 'r') ) {
- return toStr;
- }
- /* go back until the last / or */
- for (k=j-1;
- (fromStr[k] != '"') &&
- (fromStr[k] != '/') &&
- (fromStr[k] != '\');
- k--) /* nothing */ ;
- /* copy the string after " / or into toStr */
- for (i=k+1; fromStr[i] != '"'; i++) {
- toStr[i-k-1] = fromStr[i];
- }
- toStr[i-k-1] = ' ';
- return toStr;
- }
- /* MR14 end of a block to support #line in antlr source code */
- >>
- <<%%lexaction
- #ifdef __USE_PROTOS
- void mark_label_used_in_sem_pred(LabelEntry *le) /* MR10 */
- #else
- void mark_label_used_in_sem_pred(le) /* MR10 */
- LabelEntry *le;
- #endif
- {
- TokNode *tn;
- require (le->elem->ntype == nToken,"mark_label_used... ntype != nToken");
- tn=(TokNode *)le->elem;
- require (tn->label != 0,"mark_label_used... TokNode has no label");
- tn->label_used_in_semantic_pred=1;
- }
- >>
- %%START
- @
- <<
- NLA = Eof;
- /* L o o k F o r A n o t h e r F i l e */
- {
- FILE *new_input;
- new_input = NextFile();
- if ( new_input == NULL ) { NLA=Eof; return; }
- fclose( input );
- input = new_input;
- zzrdstream( input );
- zzskip(); /* Skip the Eof (@) char i.e continue */
- }
- >>
- [t ]+
- <<
- NLA = 76;
- zzskip();
- >>
- n|r|rn
- <<
- NLA = 77;
- zzline++; zzskip();
- >>
- [
- <<
- NLA = 78;
- zzmode(ACTIONS); zzmore();
- istackreset();
- pushint(']');
- >>
- <<
- <<
- NLA = 79;
- action_file=CurFile; action_line=zzline;
- zzmode(ACTIONS); zzmore();
- list_free(&CurActionLabels,0); /* MR10 */
- numericActionLabel=0; /* MR10 */
- istackreset();
- pushint('>');
- >>
- "
- <<
- NLA = 80;
- zzmode(STRINGS); zzmore();
- >>
- /*
- <<
- NLA = 81;
- zzmode(COMMENTS); zzskip();
- >>
- */
- <<
- NLA = 82;
- warn("Missing /*; found dangling */"); zzskip();
- >>
- //
- <<
- NLA = 83;
- zzmode(CPP_COMMENTS); zzskip();
- >>
- #line[ t]* [0-9]+ {[ t]* "~["]+" ([ t]* [0-9]*)* } (n|r|rn)
- <<
- NLA = 84;
- zzline = atoi(zzbegexpr+5) - 1; zzline++; zzmore();
- getFileNameFromTheLineInfo(FileStr[CurFile], zzbegexpr);
- >>
- #line ~[nr]* (n|r|rn)
- <<
- NLA = 85;
- zzline++; zzmore();
- >>
- >>
- <<
- NLA = 86;
- warn("Missing <<; found dangling >>"); zzskip();
- >>
- .
- <<
- NLA = WildCard;
- >>
- @
- <<
- NLA = 88;
- FoundException = 1; /* MR6 */
- FoundAtOperator = 1;
- >>
- {\}#header
- <<
- NLA = 92;
- >>
- {\}#first
- <<
- NLA = 93;
- >>
- {\}#parser
- <<
- NLA = 94;
- >>
- {\}#tokdefs
- <<
- NLA = 95;
- >>
- }
- <<
- NLA = 96;
- >>
- class
- <<
- NLA = 97;
- >>
- {
- <<
- NLA = 100;
- >>
- !
- <<
- NLA = 101;
- >>
- <
- <<
- NLA = 102;
- >>
- >
- <<
- NLA = 103;
- >>
- :
- <<
- NLA = 104;
- >>
- ;
- <<
- NLA = 105;
- >>
- {\}#lexaction
- <<
- NLA = 106;
- >>
- {\}#lexmember
- <<
- NLA = 107;
- >>
- {\}#lexprefix
- <<
- NLA = 108;
- >>
- {\}#pred
- <<
- NLA = 109;
- >>
- ||
- <<
- NLA = 110;
- >>
- &&
- <<
- NLA = 111;
- >>
- (
- <<
- NLA = 112;
- >>
- )
- <<
- NLA = 113;
- >>
- {\}#lexclass
- <<
- NLA = 114;
- >>
- {\}#errclass
- <<
- NLA = 115;
- >>
- {\}#tokclass
- <<
- NLA = 116;
- >>
- ..
- <<
- NLA = 117;
- >>
- {\}#token
- <<
- NLA = 118;
- >>
- =
- <<
- NLA = 119;
- >>
- [0-9]+
- <<
- NLA = 120;
- >>
- |
- <<
- NLA = 121;
- >>
- ~
- <<
- NLA = 122;
- >>
- ^
- <<
- NLA = 123;
- >>
- {\}#pragma
- <<
- NLA = 124;
- >>
- approx
- <<
- NLA = 125;
- >>
- LL(1)
- <<
- NLA = 126;
- >>
- LL(2)
- <<
- NLA = 127;
- >>
- *
- <<
- NLA = 128;
- >>
- +
- <<
- NLA = 129;
- >>
- ?
- <<
- NLA = 130;
- >>
- =>
- <<
- NLA = 131;
- >>
- exception
- <<
- NLA = 132;
- >>
- default
- <<
- NLA = 133;
- >>
- catch
- <<
- NLA = 134;
- >>
- [a-z] [A-Za-z0-9_]*
- <<
- NLA = NonTerminal;
- while ( zzchar==' ' || zzchar=='t' ) {
- zzadvance();
- }
- if ( zzchar == ':' && inAlt ) NLA = LABEL;
- >>
- [A-Z] [A-Za-z0-9_]*
- <<
- NLA = TokenTerm;
- while ( zzchar==' ' || zzchar=='t' ) {
- zzadvance();
- }
- if ( zzchar == ':' && inAlt ) NLA = LABEL;
- >>
- {\}#[A-Za-z0-9_]*
- <<
- NLA = 135;
- warn(eMsg1("unknown meta-op: %s",LATEXT(1))); zzskip();
- >>
- %%STRINGS
- @
- <<
- NLA = Eof;
- >>
- "
- <<
- NLA = QuotedTerm;
- zzmode(START);
- >>
- n|r|rn
- <<
- NLA = 3;
- zzline++;
- warn("eoln found in string");
- zzskip();
- >>
- \(n|r|rn)
- <<
- NLA = 4;
- zzline++; zzmore();
- >>
- \~[]
- <<
- NLA = 5;
- zzmore();
- >>
- ~[nr"\]+
- <<
- NLA = 6;
- zzmore();
- >>
- %%ACTION_STRINGS
- @
- <<
- NLA = Eof;
- >>
- "
- <<
- NLA = 7;
- zzmode(ACTIONS); zzmore();
- >>
- n|r|rn
- <<
- NLA = 8;
- zzline++;
- warn("eoln found in string (in user action)");
- zzskip();
- >>
- \(n|r|rn)
- <<
- NLA = 9;
- zzline++; zzmore();
- >>
- \~[]
- <<
- NLA = 10;
- zzmore();
- >>
- ~[nr"\]+
- <<
- NLA = 11;
- zzmore();
- >>
- %%ACTION_CHARS
- @
- <<
- NLA = Eof;
- >>
- '
- <<
- NLA = 12;
- zzmode(ACTIONS); zzmore();
- >>
- n|r|rn
- <<
- NLA = 13;
- zzline++;
- warn("eoln found in char literal (in user action)");
- zzskip();
- >>
- \~[]
- <<
- NLA = 14;
- zzmore();
- >>
- ~[nr'\]+
- <<
- NLA = 15;
- zzmore();
- >>
- %%ACTION_COMMENTS
- @
- <<
- NLA = Eof;
- >>
- */
- <<
- NLA = 16;
- zzmode(ACTIONS); zzmore();
- >>
- *
- <<
- NLA = 17;
- zzmore();
- >>
- n|r|rn
- <<
- NLA = 18;
- zzline++; zzmore(); DAWDLE;
- >>
- ~[nr*]+
- <<
- NLA = 19;
- zzmore();
- >>
- %%TOK_DEF_COMMENTS
- @
- <<
- NLA = Eof;
- >>
- */
- <<
- NLA = 20;
- zzmode(PARSE_ENUM_FILE);
- zzmore();
- >>
- *
- <<
- NLA = 21;
- zzmore();
- >>
- n|r|rn
- <<
- NLA = 22;
- zzline++; zzmore(); DAWDLE;
- >>
- ~[nr*]+
- <<
- NLA = 23;
- zzmore();
- >>
- %%TOK_DEF_CPP_COMMENTS
- @
- <<
- NLA = Eof;
- >>
- n|r|rn
- <<
- NLA = 24;
- zzline++; zzmode(PARSE_ENUM_FILE); zzskip(); DAWDLE;
- >>
- ~[nr]+
- <<
- NLA = 25;
- zzskip();
- >>
- %%ACTION_CPP_COMMENTS
- @
- <<
- NLA = Eof;
- >>
- n|r|rn
- <<
- NLA = 26;
- zzline++; zzmode(ACTIONS); zzmore(); DAWDLE;
- >>
- ~[nr]+
- <<
- NLA = 27;
- zzmore();
- >>
- %%CPP_COMMENTS
- @
- <<
- NLA = Eof;
- >>
- n|r|rn
- <<
- NLA = 28;
- zzline++; zzmode(START); zzskip(); DAWDLE;
- >>
- ~[nr]+
- <<
- NLA = 29;
- zzskip();
- >>
- %%COMMENTS
- @
- <<
- NLA = Eof;
- >>
- */
- <<
- NLA = 30;
- zzmode(START); zzskip();
- >>
- *
- <<
- NLA = 31;
- zzskip();
- >>
- n|r|rn
- <<
- NLA = 32;
- zzline++; zzskip(); DAWDLE;
- >>
- ~[nr*]+
- <<
- NLA = 33;
- zzskip();
- >>
- %%ACTIONS
- @
- <<
- NLA = Eof;
- >>
- >>
- <<
- NLA = Action;
- /* these do not nest */
- zzmode(START);
- NLATEXT[0] = ' ';
- NLATEXT[1] = ' ';
- zzbegexpr[0] = ' ';
- zzbegexpr[1] = ' ';
- if ( zzbufovf ) {
- err( eMsgd("action buffer overflow; size %d",ZZLEXBUFSIZE));
- }
- /* MR1 10-Apr-97 MR1 Previously unable to put right shift operator */
- /* MR1 in DLG action */
- /* MR1 Doesn't matter what kind of action it is - reset*/
- tokenActionActive=0; /* MR1 */
- >>
- >>?
- <<
- NLA = Pred;
- /* these do not nest */
- zzmode(START);
- NLATEXT[0] = ' ';
- NLATEXT[1] = ' ';
- zzbegexpr[0] = ' ';
- if ( zzbufovf ) {
- err( eMsgd("predicate buffer overflow; size %d",ZZLEXBUFSIZE));
- };
- #ifdef __cplusplus__
- /* MR10 */ list_apply(CurActionLabels, (void (*)(void *))mark_label_used_in_sem_pred);
- #else
- #ifdef __STDC__
- /* MR10 */ list_apply(CurActionLabels, (void (*)(void *))mark_label_used_in_sem_pred);
- #else
- /* MR10 */ list_apply(CurActionLabels,mark_label_used_in_sem_pred);
- #endif
- #endif
- >>
- ]
- <<
- NLA = PassAction;
- if ( topint() == ']' ) {
- popint();
- if ( istackempty() ) /* terminate action */
- {
- zzmode(START);
- NLATEXT[0] = ' ';
- zzbegexpr[0] = ' ';
- if ( zzbufovf ) {
- err( eMsgd("parameter buffer overflow; size %d",ZZLEXBUFSIZE));
- }
- }
- else {
- /* terminate $[..] and #[..] */
- if ( GenCC ) zzreplstr("))");
- else zzreplstr(")");
- zzmore();
- }
- }
- else if ( topint() == '|' ) { /* end of simple [...] */
- popint();
- zzmore();
- }
- else zzmore();
- >>
- consumeUntil( [ t]* {~[}]+} [ t]* )
- <<
- NLA = 37;
- zzmore();
- zzreplstr(inline_set(zzbegexpr+
- strlen("consumeUntil(")));
- >>
- consumeUntil( ~[)]+ )
- <<
- NLA = 38;
- zzmore();
- >>
- n|r|rn
- <<
- NLA = 39;
- zzline++; zzmore(); DAWDLE;
- >>
- >
- <<
- NLA = 40;
- zzmore();
- >>
- $
- <<
- NLA = 41;
- zzmore();
- >>
- $$
- <<
- NLA = 42;
- if ( !GenCC ) {zzreplstr("zzaRet"); zzmore();}
- else err("$$ use invalid in C++ mode");
- >>
- $[]
- <<
- NLA = 43;
- if ( !GenCC ) {zzreplstr("zzempty_attr"); zzmore();}
- else err("$[] use invalid in C++ mode");
- >>
- $[
- <<
- NLA = 44;
- pushint(']');
- if ( !GenCC ) zzreplstr("zzconstr_attr(");
- else err("$[..] use invalid in C++ mode");
- zzmore();
- >>
- $[0-9]+
- <<
- NLA = 45;
- {
- static char buf[100];
- numericActionLabel=1; /* MR10 */
- if ( strlen(zzbegexpr)>(size_t)85 )
- fatal("$i attrib ref too big");
- set_orel(atoi(zzbegexpr+1), &attribsRefdFromAction);
- if ( !GenCC ) sprintf(buf,"zzaArg(zztasp%d,%s)",
- BlkLevel-1,zzbegexpr+1);
- else sprintf(buf,"_t%d%s",
- BlkLevel-1,zzbegexpr+1);
- zzreplstr(buf);
- zzmore();
- UsedOldStyleAttrib = 1;
- if ( UsedNewStyleLabel )
- err("cannot mix old-style $i with new-style labels");
- }
- >>
- $[0-9]+.
- <<
- NLA = 46;
- {
- static char buf[100];
- numericActionLabel=1; /* MR10 */
- if ( strlen(zzbegexpr)>(size_t)85 )
- fatal("$i.field attrib ref too big");
- zzbegexpr[strlen(zzbegexpr)-1] = ' ';
- set_orel(atoi(zzbegexpr+1), &attribsRefdFromAction);
- if ( !GenCC ) sprintf(buf,"zzaArg(zztasp%d,%s).",
- BlkLevel-1,zzbegexpr+1);
- else sprintf(buf,"_t%d%s.",
- BlkLevel-1,zzbegexpr+1);
- zzreplstr(buf);
- zzmore();
- UsedOldStyleAttrib = 1;
- if ( UsedNewStyleLabel )
- err("cannot mix old-style $i with new-style labels");
- }
- >>
- $[0-9]+.[0-9]+
- <<
- NLA = 47;
- {
- static char buf[100];
- static char i[20], j[20];
- char *p,*q;
- numericActionLabel=1; /* MR10 */
- if (strlen(zzbegexpr)>(size_t)85) fatal("$i.j attrib ref too big");
- for (p=zzbegexpr+1,q= &i[0]; *p!='.'; p++) {
- if ( q == &i[20] )
- fatalFL("i of $i.j attrib ref too big",
- FileStr[CurFile], zzline );
- *q++ = *p;
- }
- *q = ' ';
- for (p++, q= &j[0]; *p!=' '; p++) {
- if ( q == &j[20] )
- fatalFL("j of $i.j attrib ref too big",
- FileStr[CurFile], zzline );
- *q++ = *p;
- }
- *q = ' ';
- if ( !GenCC ) sprintf(buf,"zzaArg(zztasp%s,%s)",i,j);
- else sprintf(buf,"_t%s%s",i,j);
- zzreplstr(buf);
- zzmore();
- UsedOldStyleAttrib = 1;
- if ( UsedNewStyleLabel )
- err("cannot mix old-style $i with new-style labels");
- }
- >>
- $[_a-zA-Z][_a-zA-Z0-9]*
- <<
- NLA = 48;
- { static char buf[300]; LabelEntry *el;
- zzbegexpr[0] = ' ';
- if ( CurRule != NULL &&
- strcmp(CurRule, &zzbegexpr[1])==0 ) {
- if ( !GenCC ) zzreplstr("zzaRet");
- }
- else if ( CurRetDef != NULL &&
- strmember(CurRetDef, &zzbegexpr[1])) {
- if ( HasComma( CurRetDef ) ) {
- require (strlen(zzbegexpr)<=(size_t)285,
- "$retval attrib ref too big");
- sprintf(buf,"_retv.%s",&zzbegexpr[1]);
- zzreplstr(buf);
- }
- else zzreplstr("_retv");
- }
- else if ( CurParmDef != NULL &&
- strmember(CurParmDef, &zzbegexpr[1])) {
- ;
- }
- else if ( Elabel==NULL ) {
- { err("$-variables in actions outside of rules are not allowed"); }
- } else if ( (el=(LabelEntry *)hash_get(Elabel, &zzbegexpr[1]))!=NULL ) {
- /* MR10 */
- /* MR10 */ /* element labels might exist without an elem when */
- /* MR10 */ /* it is a forward reference (to a rule) */
- /* MR10 */
- /* MR10 */ if ( GenCC && (el->elem == NULL || el->elem->ntype==nRuleRef) )
- /* MR10 */ { err(eMsg1("There are no token ptrs for rule references: '$%s'",&zzbegexpr[1])); }
- /* MR10 */
- /* MR10 */ if ( !GenCC && (el->elem == NULL || el->elem->ntype==nRuleRef) && GenAST) {
- /* MR10 */ err("You can no longer use attributes returned by rules when also using ASTs");
- /* MR10 */ err(" Use upward inheritance ("rule >[Attrib a] : ... <<$a=...>>")");
- /* MR10 */ };
- /* MR10 */
- /* MR10 */ /* keep track of <<... $label ...>> for semantic predicates in guess mode */
- /* MR10 */ /* element labels contain pointer to the owners node */
- /* MR10 */
- /* MR10 */ if (el->elem != NULL && el->elem->ntype == nToken) {
- /* MR10 */ list_add(&CurActionLabels,el);
- /* MR10 */ };
- }
- else
- warn(eMsg1("$%s not parameter, return value, (defined) element label",&zzbegexpr[1]));
- }
- zzmore();
- >>
- #0
- <<
- NLA = 49;
- zzreplstr("(*_root)"); zzmore(); chkGTFlag();
- >>
- #[]
- <<
- NLA = 50;
- if ( GenCC ) {
- if (NewAST) zzreplstr("(newAST)");
- else zzreplstr("(new AST)");}
- else {zzreplstr("zzastnew()");} zzmore();
- chkGTFlag();
- >>
- #()
- <<
- NLA = 51;
- zzreplstr("NULL"); zzmore(); chkGTFlag();
- >>
- #[0-9]+
- <<
- NLA = 52;
- {
- static char buf[100];
- if ( strlen(zzbegexpr)>(size_t)85 )
- fatal("#i AST ref too big");
- if ( GenCC ) sprintf(buf,"_ast%d%s",BlkLevel-1,zzbegexpr+1);
- else sprintf(buf,"zzastArg(%s)",zzbegexpr+1);
- zzreplstr(buf);
- zzmore();
- set_orel(atoi(zzbegexpr+1), &AST_nodes_refd_in_actions);
- chkGTFlag();
- }
- >>
- #line[ t]* [0-9]+ {[ t]* "~["]+" ([ t]* [0-9]*)* } (n|r|rn)
- <<
- NLA = 53;
- zzline = atoi(zzbegexpr+5) - 1; zzline++; zzmore();
- getFileNameFromTheLineInfo(FileStr[CurFile], zzbegexpr);
- >>
- #line ~[nr]* (n|r|rn)
- <<
- NLA = 54;
- zzline++; zzmore();
- >>
- #[_a-zA-Z][_a-zA-Z0-9]*
- <<
- NLA = 55;
- if ( !(strcmp(zzbegexpr, "#ifdef")==0 ||
- strcmp(zzbegexpr, "#if")==0 ||
- strcmp(zzbegexpr, "#else")==0 ||
- strcmp(zzbegexpr, "#endif")==0 ||
- strcmp(zzbegexpr, "#ifndef")==0 ||
- strcmp(zzbegexpr, "#define")==0 ||
- strcmp(zzbegexpr, "#pragma")==0 ||
- strcmp(zzbegexpr, "#undef")==0 ||
- strcmp(zzbegexpr, "#import")==0 ||
- strcmp(zzbegexpr, "#line")==0 ||
- strcmp(zzbegexpr, "#include")==0 ||
- strcmp(zzbegexpr, "#error")==0) )
- {
- static char buf[100];
- sprintf(buf, "%s_ast", zzbegexpr+1);
- zzreplstr(buf);
- chkGTFlag();
- }
- zzmore();
- >>
- #[
- <<
- NLA = 56;
- pushint(']');
- if ( GenCC ) {
- if (NewAST) zzreplstr("(newAST(");
- else zzreplstr("(new AST("); }
- else zzreplstr("zzmk_ast(zzastnew(),");
- zzmore();
- chkGTFlag();
- >>
- #(
- <<
- NLA = 57;
- pushint('}');
- if ( GenCC )
- zzreplstr("ASTBase::tmake(");
- else zzreplstr("zztmake(");
- zzmore();
- chkGTFlag();
- >>
- #
- <<
- NLA = 58;
- zzmore();
- >>
- )
- <<
- NLA = 59;
- if ( istackempty() )
- zzmore();
- else if ( topint()==')' ) {
- popint();
- }
- else if ( topint()=='}' ) {
- popint();
- /* terminate #(..) */
- zzreplstr(", NULL)");
- }
- zzmore();
- >>
- [
- <<
- NLA = 60;
- pushint('|'); /* look for '|' to terminate simple [...] */
- zzmore();
- >>
- (
- <<
- NLA = 61;
- pushint(')');
- zzmore();
- >>
- \]
- <<
- NLA = 62;
- zzreplstr("]"); zzmore();
- >>
- \)
- <<
- NLA = 63;
- zzreplstr(")"); zzmore();
- >>
- \>
- <<
- NLA = 64;
- if (! tokenActionActive) zzreplstr(">"); /* MR1 */
- zzmore(); /* MR1 */
- >>
- '
- <<
- NLA = 65;
- zzmode(ACTION_CHARS); zzmore();
- >>
- "
- <<
- NLA = 66;
- zzmode(ACTION_STRINGS); zzmore();
- >>
- \$
- <<
- NLA = 67;
- zzreplstr("$"); zzmore();
- >>
- \#
- <<
- NLA = 68;
- zzreplstr("#"); zzmore();
- >>
- \(n|r|rn)
- <<
- NLA = 69;
- zzline++; zzmore();
- >>
- \~[])>$#]
- <<
- NLA = 70;
- zzmore();
- >>
- /
- <<
- NLA = 71;
- zzmore();
- >>
- /*
- <<
- NLA = 72;
- zzmode(ACTION_COMMENTS); zzmore();
- >>
- */
- <<
- NLA = 73;
- warn("Missing /*; found dangling */ in action"); zzmore();
- >>
- //
- <<
- NLA = 74;
- zzmode(ACTION_CPP_COMMENTS); zzmore();
- >>
- ~[nr)(\$#>]["'/]+
- <<
- NLA = 75;
- zzmore();
- >>
- %%PARSE_ENUM_FILE
- @
- <<
- NLA = Eof;
- ;
- >>
- [t ]+
- <<
- NLA = 136;
- zzskip();
- >>
- n|r|rn
- <<
- NLA = 137;
- zzline++; zzskip();
- >>
- //
- <<
- NLA = 138;
- zzmode(TOK_DEF_CPP_COMMENTS); zzmore();
- >>
- /*
- <<
- NLA = 139;
- zzmode(TOK_DEF_COMMENTS); zzskip();
- >>
- #ifdef
- <<
- NLA = 140;
- zzmode(TOK_DEF_CPP_COMMENTS); zzskip();
- >>
- #if
- <<
- NLA = 141;
- zzmode(TOK_DEF_CPP_COMMENTS); zzskip();
- >>
- #ifndef
- <<
- NLA = 142;
- ;
- >>
- #else
- <<
- NLA = 143;
- zzmode(TOK_DEF_CPP_COMMENTS); zzskip();
- >>
- #endif
- <<
- NLA = 144;
- zzmode(TOK_DEF_CPP_COMMENTS); zzskip();
- >>
- #undef
- <<
- NLA = 145;
- zzmode(TOK_DEF_CPP_COMMENTS); zzskip();
- >>
- #import
- <<
- NLA = 146;
- zzmode(TOK_DEF_CPP_COMMENTS); zzskip();
- >>
- #define
- <<
- NLA = 148;
- >>
- enum
- <<
- NLA = 150;
- >>
- {
- <<
- NLA = 151;
- >>
- =
- <<
- NLA = 152;
- >>
- ,
- <<
- NLA = 153;
- >>
- }
- <<
- NLA = 154;
- >>
- ;
- <<
- NLA = 155;
- >>
- [0-9]+
- <<
- NLA = INT;
- >>
- [a-zA-Z_][_a-zA-Z0-9]*
- <<
- NLA = ID;
- >>
- %%