345 |
return STRING;} |
return STRING;} |
346 |
{WS} ; |
{WS} ; |
347 |
{WORD} { yylval.string = strdup (yytext); return STRING;} |
{WORD} { yylval.string = strdup (yytext); return STRING;} |
348 |
"<"{WS}{WORD} { char *p; |
^{WS}?"<"{WS}?{WORD} { char *p; |
349 |
|
for (p = yytext; p < yytext + yyleng && isblank(*p); p++) |
350 |
for (p = yytext + 1; p < yytext + yyleng; p++) |
; |
351 |
|
for (p++; p < yytext + yyleng; p++) |
352 |
if (!isspace (*p)) |
if (!isspace (*p)) |
353 |
break; |
break; |
354 |
push_source (p, 1); } |
push_source (p, 1); } |
355 |
|
"<"{WORD} { yylval.string = xmalloc (yyleng + 2); |
356 |
|
yylval.string[0] = '<'; |
357 |
|
memcpy(yylval.string, yytext, yyleng); |
358 |
|
yylval.string[yyleng+1] = 0; |
359 |
|
return STRING;} |
360 |
=|\*|\+|,|:|\; return yytext[0]; |
=|\*|\+|,|:|\; return yytext[0]; |
361 |
. { char *p; |
. { char *p; |
362 |
asprintf (&p, |
asprintf (&p, |