以下の文法では、 で始まる行を'
1 行のコメントと の間の任意の行に設定しようとしています/' Multiline Comment '/
。1 行のコメントは正常に機能します。しかし、何らかの理由で/
または'
または「;」を押すとすぐに または<
'>' 以下のエラーが表示されます。上記の文字が設定されていません。それらはデフォルトと見なされ、解析をスキップするべきではありませんか?
エラー
Lexical error at line 0, column 0. Encountered: "\"" (34), after : ""
Lexical error at line 0, column 0. Encountered: ">" (62), after : ""
Lexical error at line 0, column 0. Encountered: "\n" (10), after : "-"
簡潔にするために、以下のコードの一部のみを含めました。完全なレクサーの定義については、リンクにアクセスしてください
TOKEN :
{
< WHITESPACE:
" "
| "\t"
| "\n"
| "\r"
| "\f">
}
/* COMMENTS */
MORE :
{
<"/'"> { input_stream.backup(1); } : IN_MULTI_LINE_COMMENT
}
<IN_MULTI_LINE_COMMENT>
TOKEN :
{
<MULTI_LINE_COMMENT: "'/" > : DEFAULT
}
<IN_MULTI_LINE_COMMENT>
MORE :
{
< ~[] >
}
TOKEN :
{
<SINGLE_LINE_COMMENT: "'" (~["\n", "\r"])* ("\n" | "\r" | "\r\n")?>
}