目录
1.3.5 ParseWarningException异常类
1.Interpreter模式
1.1 作用
在Interpreter模式中,程序要解决的问题会被用非常简单的“迷你语言”表述出来,即用“迷你语言”编写的“迷你程序”把具体的问题表述出来,迷你程序是无法单独工作的,还需要用Java语言编写一个负责“翻译”的程序,这段翻译程序称为解释器。这样的话,当需要解决的问题发生变化时,不需要修改Java语言程序,只需要修改迷你语言程序即可应对,提高了Java程序的复用性。
1.2 示例迷你语言
1.2.1 迷你语言的命令
-
go:前进1米
-
right:右转
-
left:左转
-
repeat:重复
1.2.2 迷你语言的语法
<program> ::= program <command list><command list> ::= <command>* end<command> ::= <repeat command> | <primitive command><repeat command> ::= repeat <number> <command list><primitive command> ::= go | right | left
1.2.3 迷你语言的语法树
迷你程序program repeat 4 go right end end的语法树:
1.3 示例程序
示例程序就是实现了一个迷你程序的语法解析器。将迷你程序推导成结构(语法树)的处理,就是语法解析。语法解析时的处理单位为标记token。
1.3.1 示例程序类图
1.3.2 Node抽象类
//语法树中各个部分(节点)中的最顶层的类
public abstract class Node {
//进行语法解析处理
public abstract void parse(Context context) throws ParseWarningException;
}