Ошибка интерпретатора Eclipse Antlr
Следующая грамматика успешно генерирует парсер для обработки строки 'ccdunion'
, Но когда я пытаюсь с переводчиком, у меня есть NoViableAltException
ошибка, почему?
grammar SimpleCalc;
options {
k = 2;
output = AST;
backtrack = true;
}
tokens {
UNION = 'union';
}
@header {
package myPack;
import java.io.File;
import java.io.FileWriter;
import java.io.PrintWriter;
}
@lexer::header {
package myPack;
}
@members {
public static void main(String[] args) throws Exception {
File fileOut = new File("src/ARFF.arff");
FileWriter fw = new FileWriter(fileOut);
PrintWriter pw = new PrintWriter(fw);
pw.print("a ");
pw.println("b");
pw.println(12);
fw.close();
SimpleCalcLexer lex = new SimpleCalcLexer(new ANTLRFileStream(args[0]));
CommonTokenStream tokens = new CommonTokenStream(lex);
SimpleCalcParser parser = new SimpleCalcParser(tokens);
try {
parser.expr();
} catch (RecognitionException e) {
e.printStackTrace();
}
}
}
expr
: filsPiquets EOF
{
System.out.println("base mono: ");
}
;
filsPiquets
: chars UNION
{
System.out.println("TXTunionII"+$chars.text);
}
;
chars
: CHAR
| . chars
;
CHAR
: .
;
1 ответ
... когда я пытаюсь использовать интерпретатор, возникает ошибка NoViableAltException, почему?
Потому что переводчик глючит: не используйте его. Вместо этого используйте отладчик. То же самое касается ANTLRWorks.