我想知道 Perl 中有哪些方法可以遍历作为字符串给出的递归结构(例如二叉树)。
更具体地说:
这是一棵树,为简单起见是解析树并且非常短。想象它是没有花哨的制表符和空格的字符串。
tree(Sentence,
tree(NounPhrase,
leaf(Determiner, "a"),
leaf(Noun, "man", "singular")
),
tree(VerbPhrase,
leaf(Verb, "walks", "present", "3rd person")
)
)
现在我想访问根的两个直接子节点,但我不能简单地使用正则表达式来做到这一点。
m/tree \( \w+ , (group1) , (group2) \) /x
我想正确捕获 group1 和 group2,即 group1 和 group2 具有偶数个左括号和右括号。
这似乎是一项相当复杂的任务,想知道它的常见/最简单的解决方案是什么?
例如,prolog 很容易消化这个任务。