%{
  unsigned lineno = 1;
%}

PC	[^\"]
AN	[A-Z_a-z0-9]
%%

error_table	return ERROR_TABLE;
et		return ERROR_TABLE;
error_code	return ERROR_CODE_ENTRY;
ec		return ERROR_CODE_ENTRY;
end		return END;

[\t ]		;
\n		++lineno;

\"{PC}*\"	{ char *p; yylval.dynstr = ds(yytext+1);
		  if ((p = strrchr(yylval.dynstr, '"'))) *p = '\0';
		  return QUOTED_STRING;
		}

{AN}*	{ yylval.dynstr = ds(yytext); return STRING; }

#.*\n		++lineno;

.		{ return *yytext; }
%%
