identifier [\._a-zA-Z0-9\/]+
comment "//"
<*>{comment} {
cout<<"Comment\n";
char c;
while((c= yyinput()) != '\n')
{
}
}
<INITIAL>{s}{e}{t} {
BEGIN(SAMPLE_STATE);
return SET;
}
<SAMPLE_STATE>{identifier} {
strncpy(yylval.str, yytext,1023);
yylval.str[1023] = '\0';
return IDENTIFIER;
}
上記の lex コードでは、「// set name」が解析されるときにエラーは発生しません。解析された文の「//」の後のスペースに注意してください。ただし、「//セット名」が解析されると、エラーが報告されます。識別子とコメントの両方に表示されるスラッシュと関係があると思います。私が間違っているところを指摘できますか?ありがとう。
エラーは yyerror によってキャッチされます