书城计算机大话设计模式
11030400000194

第194章 3 解释器模式的组成

大B:“抽象表达式角色:声明一个抽象的解释操作,这个接口为所有具体表达式角色,抽象语法树中的节点,都要实现的。”

小A:“什么叫做抽象语法树呢?”

大B:“抽象语法树的每一个节点都代表一个语句,而在每个节点上都可以执行解释方法。这个解释方法的执行就代表这个语句被解释。由于每一个语句都代表这个语句被解释。由于每一个语句都代表一个常见的问题的实例,因此每一个节点上的解释操作都代表对一个问题实例的解答。”

小A:“这样啊!”

大B:“解释器模式还包括终结符表达式角色:具体表达式。1、与文法中的终结符相关联的解释操作2、句子中的每个终结符需要该类的一个实例与之对应。3、终结符表达式角色:具体表达式。a、法中的每条规则R:=R1R2……Rn都需要一个非终结符表带式角色。b、从R1到Rn的每个符号都维护一个抽象表达式角色的实例变量。c、现解释操作,解释一般要递归地调用表示从R1到Rn的那些对象的解释操作。4、下文(环境)角色:包含解释器之外的一些全局信息。5、用户角色:a、建(或者被给定)表示该文法定义的语言中的一个特定的句子的抽象语法树。b、用解释操作。”