访问TerminalNode时如何获取当前的RuleContext类?

时间:2017-12-20 17:17:27

标签: antlr4

如果我有

        @Override public void visitTerminal(TerminalNode node) {
              node.getRuleContext(); // doesn't build
         }

如何获取当前的RuleContext类?

1 个答案:

答案 0 :(得分:0)

我找到了。

void NHTVScene::EntitiesGrounded()
{
    std::vector<Entity*>::iterator it = platformVector.begin();
    while (it != platformVector.end())
    {
        if (player->isColliding((*it)))
        {
            player->velocity = Vector2(0, 0);
            player->grounded = true;
            break; // exit criteria met
        }
        else
        {
            player->grounded = false;
        }
        it++;
    }
}

此方法返回表示此注释中数据的任何对象。例如,对于解析树,有效载荷可以是表示叶节点的令牌或表示规则调用的RuleContext对象。对于抽象语法树(AST),这是一个Token对象。