| /* |
| * yymore.lex: An example of using yymore() |
| * to good effect. |
| */ |
| |
| %{ |
| #include <memory.h> |
| |
| void yyerror(char *message) |
| { |
| printf("Error: %s\n",message); |
| } |
| |
| %} |
| |
| %x STRING |
| |
| %% |
| \" BEGIN(STRING); |
| |
| <STRING>[^\\\n"]* yymore(); |
| <STRING><<EOF>> yyerror("EOF in string."); BEGIN(INITIAL); |
| <STRING>\n yyerror("Unterminated string."); BEGIN(INITIAL); |
| <STRING>\\\n { |
| bcopy(yytext,yytext+2,yyleng-2); |
| yytext += 2; yyleng -= 2; |
| yymore(); |
| } |
| <STRING>\" { |
| yyleng -= 1; yytext[yyleng] = '\0'; |
| printf("string = \"%s\"",yytext); BEGIN(INITIAL); |
| } |
| %% |