antlr4中的visitChildren实际做什么? Java

问题描述

antlr4(对于Java)中的visitChildren()实际上是做什么的?这是基本访问者中所有内容功能,它似乎做了很多我不知道的事情。例如,这些解析器规则有什么用?

1)

a: b | c | d;
e: F g H;
i: j k l+;
m: N O P?;

还有其他示例来说明它的作用吗?

解决方法

visitChildren遍历给定节点的所有子节点,并为每个子节点触发accept方法。查看生成的解析器,以了解accept方法的作用。通常,它调用链中下一个孩子的访问函数,或者只是通过再次调用visitChildren来访问其自己的孩子(基本上具有相同的效果,只是以更一般的方式)。请参见类AbstractParseTreeVisitor,以了解visitChildren的默认实现以及您可以重写以自定义访问者行为的其他方法。