面试题答案
一键面试- 抽象表达式(Abstract Expression):
- 职责:定义解释器的接口,声明一个抽象的解释操作,这个接口为抽象语法树中所有的节点所共享。
- 终结符表达式(Terminal Expression):
- 职责:实现与文法中的终结符相关联的解释操作,一个句子中的每个终结符都有一个具体的终结符表达式与之对应。
- 非终结符表达式(Non - Terminal Expression):
- 职责:为文法中的非终结符实现解释操作。对文法中每一条规则R1、R2…Rn都需要一个具体的非终结符表达式类。非终结符表达式根据逻辑的复杂程度可以包含一个或多个成员变量,用于保存各个组成部分。
- 环境(Context):
- 职责:包含解释器之外的一些全局信息,如变量的定义、状态等,在解释过程中,解释器可能需要访问这些信息。
- 客户端(Client):
- 职责:构建(或被给定)一个抽象语法树,然后调用解释操作,让解释器工作。