基本上,我想象一些看起来像这样的伪代码
build_command_list {
add_command("cmd 1")
add_command("cmd 2")
conditional_branch( some_cond ) {
add_command("cmd3")
add_command("cmd4")
}
conditional_branch( some_other_cond ) {
add_command("cmd 5")
}
}
该方法build_command_list
将获取一段代码,然后递归地构建一个树结构,其中每个节点都是一个命令,一些解释器将获取该树并从根执行它,这是该代码块中的第一个命令(在这种情况下, "cmd 1"
)
add_command
并且conditional_branch
是确定如何创建节点的其他方法。
有些命令conditional branch
告诉解释器评估条件,如果为真,它将处理其命令列表。
我想知道 ruby 是否有一些东西可以让我像上面的例子一样编写一段代码并获取代码并解析它?
如果没有,也许有人可以为我建议一种方法来编写输入,以便我可以从一组命令构建正确的命令树?