1/*
2 * yymore.lex: An example of using yymore()
3 *             to good effect.
4 */
5
6%{
7#include <memory.h>
8
9void yyerror(char *message)
10{
11  printf("Error: %s\n",message);
12}
13
14%}
15
16%x STRING
17
18%%
19\"   BEGIN(STRING);
20
21<STRING>[^\\\n"]*  yymore();
22<STRING><<EOF>>    yyerror("EOF in string.");       BEGIN(INITIAL);
23<STRING>\n         yyerror("Unterminated string."); BEGIN(INITIAL);
24<STRING>\\\n      {
25                     bcopy(yytext,yytext+2,yyleng-2);
26                     yytext += 2; yyleng -= 2;
27                     yymore();
28                  }
29<STRING>\"        {
30                     yyleng -= 1; yytext[yyleng] = '\0';
31                     printf("string = \"%s\"",yytext); BEGIN(INITIAL);
32                  }
33%%
34