Ocaml “走抽象语法树”是什么意思?

Ocaml “走抽象语法树”是什么意思?,ocaml,abstract-syntax-tree,Ocaml,Abstract Syntax Tree,我在一个编译器类中,在这个类中我们必须用OCaml编写一个编译器,我一直听说一个必要的步骤是遍历抽象语法树。这在理论上和实际编写代码方面都意味着什么?这意味着您需要使用AST并遍历节点来做一些事情,就像遍历列表一样。像这样的 match ast_token with | INT_LITERAL(x) -> dsw x | IF_EXPRESSION(p, e1, e2) -> dsw p e1 e2 ... @Thomas因为这是一个编译器类,而不是解释器类,所以我不希望对任何内容

我在一个编译器类中,在这个类中我们必须用OCaml编写一个编译器,我一直听说一个必要的步骤是遍历抽象语法树。这在理论上和实际编写代码方面都意味着什么?

这意味着您需要使用AST并遍历节点来做一些事情,就像遍历列表一样。像这样的

match ast_token with
| INT_LITERAL(x) -> dsw x
| IF_EXPRESSION(p, e1, e2) -> dsw p e1 e2
...

@Thomas因为这是一个编译器类,而不是解释器类,所以我不希望对任何内容进行评估。除了评估AST之外,还有很多原因可以解释为什么您希望遍历AST。在本文中,它与“遍历”同义:您需要遍历AST。这样做的一个原因可能是用字体装饰AST。就实际编写代码而言,可能会涉及一个递归函数,该函数的模式与抽象语法的构造相匹配。