将元数据添加到AST OCaml

时间:2018-02-28 21:36:08

标签: compiler-construction ocaml abstract-syntax-tree

我创建了一个AST,语法定义为:

type expr =
| Cons of const
| Var of string
| List of ( expr list )
| Sum of ( expr * expr )
| Less_than of ( expr * expr ) 
| Conditional of ( expr * expr * expr )
| Array_literal of ( expr )
| Array_read of ( expr * expr )

我想为此添加一些元数据。元数据,如行号,字符号跟踪等。我该怎么办呢?我该如何申报我的astNode?应该是这样的:

type 'a astNode = 
{
data: 'a;
metadata: meta;
}

除此之外,我该如何存储这些信息?在解析树时我是否必须存储它?如果是这种情况,如何将此信息从解析树传输到AST?

我对编译器和OCaml本身很新。所以,这里的任何帮助将不胜感激。

0 个答案:

没有答案