在AST中,IF节点是否应该有大量的分支?

In an AST, should IF nodes have a huge amount of branches?

这是我描述的图片: 我的问题是,在抽象语法树中,一个 IF 节点是否应该有大量的分支?想象一个直接连接到数百个语句的 IF 节点。它感觉不对,而且在视觉形式上看起来绝对荒谬。这是 AST 的正确构成还是我理解错了?

这样试试。这也是您使用 CodeDOM.

之类的东西时得到的结果

实际上 TrueBodyFalseBody 将各有一个 child - StatementGroup。这反过来将有与该块中的语句一样多的 children。类似地,如果有多个 and/or 条件,那么 Condition 节点将有一个节点,例如 AndCondition 与 children 一样多条款。