3
在Java中有這條線parser.getInterpreter().setSLL(true);
可以將ANTLR4解析器切換爲SLL(*)。 C#中的等價物是什麼?C#Antlr4最大速度
謝謝你在前進,WIDI
在Java中有這條線parser.getInterpreter().setSLL(true);
可以將ANTLR4解析器切換爲SLL(*)。 C#中的等價物是什麼?C#Antlr4最大速度
謝謝你在前進,WIDI
我找不到setSLL任何引用。 wiki頁面here正在使用setPredictionMode方法來啓用sll。這是來自頁面的Java代碼片段。
CharStream input = new ANTLRFileStream(args[0]);
ExprLexer lexer = new ExprLexer(input);
CommonTokenStream tokens = new CommonTokenStream(lexer);
ExprParser parser = new ExprParser(tokens);
parser.getInterpreter().setPredictionMode(PredictionMode.SLL);
try {
parser.stat(); // STAGE 1
}
catch (Exception ex) {
tokens.reset(); // rewind input stream
parser.reset();
parser.getInterpreter().setPredictionMode(PredictionMode.LL);
parser.stat(); // STAGE 2
// if we parse ok, it's LL not SLL
}
下面介紹如何在C#中設置預測模式。
parser.Interpreter.PredictionMode = Antlr4.Runtime.Atn.PredictionMode.Sll;
'parser.getInterpreter()'會'parser.Interpreter'在C#中,但似乎沒有'SLL'財產... – Onur 2015-03-13 15:19:54
這就是爲什麼我問:d – 2015-03-13 16:32:04