C# Antlr4 最大化速度

C# Antlr4 Maximize Speed

在 Java 中有这一行 parser.getInterpreter().setSLL(true); 将 ANTLR4 解析器切换到 SLL(*)。 C# 中的等价物是什么?

提前谢谢你,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;