首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

DSL之三 DSL兑现

2012-11-09 
DSL之三 DSL实现?在解析为语义模型的过程中,一般隐含着一个概念——语法树(Syntax Tree)在内部DSL中,语法树

DSL之三 DSL实现

?

在解析为语义模型的过程中,一般隐含着一个概念——语法树(Syntax Tree)

DSL之三 DSL兑现

在内部DSL中,语法树的实现是以函数参数调用(嵌套函数 Nested Function)及嵌套对象(方法链)的形式。有时语言并没有强制的层次结构,那么就需要借助函数序列(Function Sequence)和上下文变量(Context Variables)来模拟层次结构。

语法(grammar)是用于描述文本流如何转换为语法树的规则集。

语法树和语义模型的不同之处在于:同样的语法树可能有不同的语义模型,反义亦然。

?

在解析生成语法树的过程中,解析器可能需要存储一些数据。为解决这个问题,引入了符号表(Symbol Table)

DSL之三 DSL兑现

本质上来讲,符号表是一个字典,键为标识符,值为语法树中对应的对象。

DSL的测试可以分为三部分,对语义模型的测试,对解析器的测试,以及对DSL脚本测试。

热点排行