(@Bart Kiers の最初のコメントに基づいて質問を編集しました - ありがとう!)
私は次の文法を持っています:
SPACE : (' '|'\t'|'\n'|'\r')+ {$channel = HIDDEN;};
START : 'START:';
STRING_LITERAL : ('"' .* '"')+;
rule : START STRING_LITERAL;
'START: "abcd" START: "img src="test.jpg""' (文字列リテラルは文字列リテラル内にある可能性があります) のような言語を解析したいと考えています。
言語 'START: "img src="test.jpg""' の場合、レクサーはそれを次のトークンに変換するため、文字列リテラル内に文字列リテラルがある場合、上記で定義された文法は機能しません: START('START:') STRING_LITERAL("img src=") test.jpg.
私の問題に適した文法を定義する方法はありますか?