version 1.13, 2003/11/17 11:20:13 |
version 1.14, 2003/12/02 09:00:07 |
|
|
%} |
%} |
|
|
DIGIT [0-9A-F] |
DIGIT [0-9A-F] |
|
ALPHA [a-z_] |
|
ALPHANUM [a-z_0-9] |
|
|
%x comment string number |
%x comment string number |
|
|
%% |
%% |
|
|
"{" return LBRACE; |
"{" return LBRACE; |
"}" return RBRACE; |
"}" return RBRACE; |
|
|
[a-z] yylval.str = yytext; return LETTER; |
{ALPHA}{ALPHANUM}* { |
|
/* alloc an extra byte for the type marker */ |
|
char *p = malloc(yyleng + 2); |
|
if (p == NULL) |
|
err(1, NULL); |
|
strlcpy(p, yytext, yyleng + 1); |
|
yylval.astr = p; |
|
return LETTER; |
|
} |
|
|
\\\n lineno++; |
\\\n lineno++; |
\n lineno++; return NEWLINE; |
\n lineno++; return NEWLINE; |
|
|
#[^\n]* ; |
#[^\n]* ; |
[ \t] ; |
[ \t] ; |
|
<<EOF>> return QUIT; |
. yyerror("illegal character"); |
. yyerror("illegal character"); |
|
|
%% |
%% |
|
|
|
|
arglen = strlen(str); |
arglen = strlen(str); |
|
|
if (strlen(strbuf) + arglen + 1> strbuf_sz) { |
if (strlen(strbuf) + arglen + 1 > strbuf_sz) { |
size_t newsize; |
size_t newsize; |
char *p; |
char *p; |
|
|