如何在ANTLR4中设置标签(insert(index,element)
)大小?例如,在ANTLR2中有'\t'
属性。
tabSize
答案 0 :(得分:0)
我想要类似的东西(在图形用户界面中)显示词法错误的位置。我在词法分析器上使用覆盖来报告错误的StartIndex,然后使用该StartIndex将光标放在错误的位置。它在我的测试中正确处理标签,因为它从输入流的开头计算:
public class BailLexer : LISBASICLexer
{
public BailLexer(ICharStream input) : base(input)
{
}
public override void Recover(LexerNoViableAltException e)
{
string message = string.Format("lex error at position {0} ", e.StartIndex);
BasicEnvironment.SyntaxError = message;
BasicEnvironment.ErrorStartIndex = e.StartIndex; // save off value here for use later...
throw new ParseCanceledException(BasicEnvironment.SyntaxError);
}
}