=================================================================== RCS file: /home/cvs/OpenXM/src/kan96xx/trans/yylex_polymake.c,v retrieving revision 1.2 retrieving revision 1.5 diff -u -p -r1.2 -r1.5 --- OpenXM/src/kan96xx/trans/yylex_polymake.c 2004/04/08 01:49:04 1.2 +++ OpenXM/src/kan96xx/trans/yylex_polymake.c 2009/09/04 02:25:30 1.5 @@ -1,4 +1,4 @@ -/* $OpenXM: OpenXM/src/kan96xx/trans/yylex_polymake.c,v 1.1 2003/11/24 02:33:39 takayama Exp $ */ +/* $OpenXM: OpenXM/src/kan96xx/trans/yylex_polymake.c,v 1.4 2004/08/21 00:39:53 takayama Exp $ */ /* parser for polymake output */ /* This program requires @@ -67,6 +67,14 @@ int PMlex_aux() { if (S[Pt] == PM_emptyLineCode) {Pt++; return PM_emptyLine; } if (S[Pt] == '{') { Pt++; return PM_LCurryBrace; } if (S[Pt] == '}') { Pt++; return PM_RCurryBrace; } + if (S[Pt] == '<') { Pt++; return PM_LAngle; } + if (S[Pt] == '>') { Pt++; return PM_RAngle; } + if (S[Pt] == '(') { Pt++; return PM_LBrace; } + if (S[Pt] == ')') { Pt++; return PM_RBrace; } + if (S[Pt] == '[') { Pt++; return PM_LBracket; } + if (S[Pt] == ']') { Pt++; return PM_RBracket; } + if (S[Pt] == ':') { Pt++; return PM_colon; } + if (S[Pt] == '=') { Pt++; return PM_eq; } if (((S[Pt] >= '0') && (S[Pt] <= '9')) || (S[Pt] == '-')) { putstr(-1); putstr(S[Pt++]); while (((S[Pt]>='0') && (S[Pt]<='9')) || (S[Pt] == '/')) putstr(S[Pt++]); @@ -75,13 +83,17 @@ int PMlex_aux() { } if (((S[Pt] >= 'A') && (S[Pt] <= 'Z')) || ((S[Pt] >= 'a') && (S[Pt] <= 'z')) || - (S[Pt] == '_')) { - putstr(-1); putstr(S[Pt++]); - while (((S[Pt] >= 'A') && (S[Pt] <= 'Z')) || - ((S[Pt] >= 'a') && (S[Pt] <= 'z')) || - (S[Pt] == '_')) putstr(S[Pt++]); - PMlval = pmNewStrObject(putstr(0)); - return PM_keyword; + (S[Pt] == '_') || S[Pt] == '!') { + if (S[Pt] != '!') {putstr(-1); putstr(S[Pt++]);} + else { + putstr(-1); Pt++; + putstr('N'); putstr('O'); putstr('T'); putstr('_'); putstr('_'); + } + while (((S[Pt] >= 'A') && (S[Pt] <= 'Z')) || + ((S[Pt] >= 'a') && (S[Pt] <= 'z')) || + (S[Pt] == '_')) putstr(S[Pt++]); + PMlval = pmNewStrObject(putstr(0)); + return PM_keyword; } Pt++; return PM_unknown; }