初めてレキシングモードを試しています。 私は「メイン」文法にインポートするモードのレクサー文法を持っています。 文法のレクサー用のJavaクラスを生成するときにこのエラーが発生しますレクサーのモードを追加するときのAntlrエラー
'ルールDESCRIPTION_FIELDには、認識できない定数値を持つlexerコマンドが含まれています。私が手に生成GrammarLexer.javaでとても
grammar Grammar;
import TestLexerGrammar;
descriptionElement
:
DESCRIPTION_FIELD freeTextFields
;
freeTextFields
:
FREE_TEXT_FIELD_FORMAT+
;
:
lexer grammar TestLexerGrammar;
DESCRIPTION_FIELD
:
'DESCRIPTION:'-> pushMode(FREETEXTMODE)
;
mode FREETEXTMODE;
FREE_TEXT_FIELD_FORMAT
:
STR+
;
fragment
STR
:
(
LETTER
| DIGIT
)
;
私のメインの文法:レクサー通訳が」
を誤った出力を生成することが、私はこのarticle マイレクサー文法は以下の通りです続きますエラー:「FREETEXTMODEを変数に解決できません」
これは間違ったアプローチですか?解析ルールを使ってモードを変更する方法がありますか?
あなたが提案した文法(レターを追加した後、桁規則は)大丈夫です。それは私のために働いた... – Divisadero
あなたは正しいです、申し訳ありません私は構文解析文法にトークャのDESCRIPTION_FIELDを使用してレクサー文法をインポートしていることを忘れて忘れて (投稿の編集) –