通过Antlr4中的所有OP属性迭代



我试图通过我的访客类中的所有OP属性迭代。

这是我的语法:

where: expression ( op=( AND | OR ) expressions)* EOF;

我要分析的字符串是:

string str = "Name = 'John Doe' AND Age = 20 OR Age = 30";

对于我的访客课,我有一个简单的替代方法:

public override object VisitWhere([NotNull] WhereContext context)
{
    string operator = context.op.Text;
    return base.VisitWhere(context);
}

解析字符串后,运算符变量返回"或" OP属性的最后一次出现。我如何获得'和'?

如果规则中多次出现规则或令牌,则将在关联上下文中表示为数组。在您的情况下,您应该有一个数组context.op[]。这样的数组或简单的op属性只是访问子列表的便利手段。如果您想完全访问规则中所述的所有内容,请查看该上下文的孩子们。

相关内容

  • 没有找到相关文章

最新更新