最初のエラーでANTLR3.2を終了させる方法を教えてください。これは役に立ちます。
ただし、文法がおかしくなることなく、これらの「@」ルールを追加することはできないようです。私の文法ファイルは単純です:
grammar Exp;
options {
output=AST;
}
program
: includes decls (procedure)* main -> ^(SMALLCPROGRAM includes decls (procedure)* main) //AST - PROGRAM root
;
//Lexer and Parser rules continue below as normal..tested thoroughly and works
しかし、これらの@ルールのいずれかを追加しようとすると、次のようなエラーが発生します。
grammar file Exp.g has no rules
と:
Exp.g:0:1: syntax error: assign.types: org.antlr.runtime.EarlyExitException
org\antlr\grammar\v3\DefineGrammarItemsWalker.g: node from line 202:4 required (...)+ loop did not match anything at input ';'
誰もが問題が何であるかについての考えを持っていますか?文法を変更して、別のメインクラスから実行すると(ANTLRStringStreamなどを使用して入力を渡す)、構文上の問題がある場合に、次のようなことを言うのではなく、実際にメインクラスでエラーがスローされるようにします。
line 1:57 missing RPAREN at '{'
残りの入力を正常に解析し続ける前に。最終的に、私のメインクラスは、文法で定義されている構文上の不正な入力の解析を拒否し、エラーをユーザーに報告する必要があります。