version 1.1, 1996/07/04 20:34:40 |
version 1.2, 1997/01/20 19:43:19 |
|
|
%Start A strng sc reg comment |
%Start A str sc reg comment |
|
|
%{ |
%{ |
/**************************************************************** |
/**************************************************************** |
|
|
} |
} |
} |
} |
} |
} |
<A>\" { BEGIN strng; caddreset(gs); } |
<A>\" { BEGIN str; caddreset(gs); } |
|
|
<A>"}" { if (--bracecnt < 0) ERROR "extra }" SYNTAX; BEGIN sc; RET(';'); } |
<A>"}" { if (--bracecnt < 0) ERROR "extra }" SYNTAX; BEGIN sc; RET(';'); } |
<A>"]" { if (--brackcnt < 0) ERROR "extra ]" SYNTAX; RET(']'); } |
<A>"]" { if (--brackcnt < 0) ERROR "extra ]" SYNTAX; RET(']'); } |
|
|
RET(REGEXPR); } |
RET(REGEXPR); } |
<reg>. { CADD; } |
<reg>. { CADD; } |
|
|
<strng>\" { BEGIN A; |
<str>\" { BEGIN A; |
cadd(gs, 0); s = tostring(gs->cbuf); |
cadd(gs, 0); s = tostring(gs->cbuf); |
cunadd(gs); |
cunadd(gs); |
cadd(gs, ' '); cadd(gs, 0); |
cadd(gs, ' '); cadd(gs, 0); |
yylval.cp = setsymtab(gs->cbuf, s, 0.0, CON|STR, symtab); |
yylval.cp = setsymtab(gs->cbuf, s, 0.0, CON|STR, symtab); |
RET(STRING); } |
RET(STRING); } |
<strng>\n { ERROR "newline in string %.10s...", gs->cbuf SYNTAX; lineno++; BEGIN A; } |
<str>\n { ERROR "newline in string %.10s...", gs->cbuf SYNTAX; lineno++; BEGIN A; } |
<strng>"\\\"" { cadd(gs, '"'); } |
<str>"\\\"" { cadd(gs, '"'); } |
<strng>"\\"n { cadd(gs, '\n'); } |
<str>"\\"n { cadd(gs, '\n'); } |
<strng>"\\"t { cadd(gs, '\t'); } |
<str>"\\"t { cadd(gs, '\t'); } |
<strng>"\\"f { cadd(gs, '\f'); } |
<str>"\\"f { cadd(gs, '\f'); } |
<strng>"\\"r { cadd(gs, '\r'); } |
<str>"\\"r { cadd(gs, '\r'); } |
<strng>"\\"b { cadd(gs, '\b'); } |
<str>"\\"b { cadd(gs, '\b'); } |
<strng>"\\"v { cadd(gs, '\v'); } /* these ANSIisms may not be known by */ |
<str>"\\"v { cadd(gs, '\v'); } /* these ANSIisms may not be known by */ |
<strng>"\\"a { cadd(gs, '\007'); } /* your compiler. hence 007 for bell */ |
<str>"\\"a { cadd(gs, '\007'); } /* your compiler. hence 007 for bell */ |
<strng>"\\\\" { cadd(gs, '\\'); } |
<str>"\\\\" { cadd(gs, '\\'); } |
<strng>"\\"({O}{O}{O}|{O}{O}|{O}) { int n; |
<str>"\\"({O}{O}{O}|{O}{O}|{O}) { int n; |
sscanf(yytext+1, "%o", &n); cadd(gs, n); } |
sscanf(yytext+1, "%o", &n); cadd(gs, n); } |
<strng>"\\"x({H}+) { int n; /* ANSI permits any number! */ |
<str>"\\"x({H}+) { int n; /* ANSI permits any number! */ |
sscanf(yytext+2, "%x", &n); cadd(gs, n); } |
sscanf(yytext+2, "%x", &n); cadd(gs, n); } |
<strng>"\\". { cadd(gs, yytext[1]); } |
<str>"\\". { cadd(gs, yytext[1]); } |
<strng>. { CADD; } |
<str>. { CADD; } |
|
|
%% |
%% |
|
|