抽象语法树(Abstract Syntax Tree)

时间:2014-06-20 11:33:28   收藏:0   阅读:200

抽象语法树(Abstract Syntax Tree)

 

抽象语法树(AST)表示组成程序的结构,可以让程序员更容易使用,F# 适宜这种开发的一个原因就是它的联合类型。这种类型非常适合表示语言,因为它可以用来表示相关而结构不相同的项目。下面就是抽象语法树的例子:

 

type Ast =

    | Ident of string

    | Val of System.Double

    | Multi of Ast * Ast

    | Div of Ast * Ast

    | Plus of Ast * Ast

    | Minus of Ast * Ast

 

树非常简单,只包含一种类型;复杂的树可能包含很多类型,但都遵循这一基本模式。对于这个树,它是Ast [ 原文有误,忘记修改了] 类型,包含了标识符(Ident 类型),标识符的名字由字符串表示,还包含了值(Val 类型),值由System.Double 表示。Ast 类型还包含了另外四个类型(Multi、Div、Plus、Minus),表示算术运算,并使用递归,由此组成其他表达式。

抽象语法树(Abstract Syntax Tree),布布扣,bubuko.com

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!