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;
在 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;