定义一个语言的文法,并创建一个解释器去解释该语言中的句子,这里的“语言”是指使用规定格式和语法的代码。
结构图
角色与理解
定义一个语言的文法,并创建一个解释器去解释该语言中的句子,这里的“语言”是指使用规定格式和语法的代码。
解释器模式共分为三种角色:
AbstractExpression(抽象表达式):终结符表达式与非终结符表达式的共同父类,声明了抽象的解释行为。
TerminalException(终结符表达式):抽象表达式的子类,包含文法中终结符的解释操作。
NonterminalException(非终结符表达式):抽象表达式的子类,实现了文法中非终结符的解释操作,内部包含非终结符表达式或者终结符表达式。
Context(环境类):上下文环境
终结符表达式是“一句话”中包含的所有最终解释单元,非终结符表达式将一组终结符表达式连接,完成“一句话”的解释,非终结符表达式将“几句话”连接,完成一段话的解释。
核心代码
- 抽象表达式
- 具体处理者
- 非中介表达式
- 处理类