概念:给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。
解释器结构图

java代码
public class InteroreterTest {public static void main(String[] args) {List<AbstractExpression> list = new ArrayList<>();list.add(new TerminalExpression());list.add(new NonterminalExpression());list.add(new TerminalExpression());list.add(new NonterminalExpression());Context context = new Context();for (AbstractExpression abstractExpression : list) {abstractExpression.Interpret(context);}System.out.println(context.getInput());}}public class Context {private String input = "";public String getInput() {return input;}public void setInput(String input) {this.input = input;}}//解释器抽象类public abstract class AbstractExpression {public abstract void Interpret(Context context);}//解释器实现类public class NonterminalExpression extends AbstractExpression {@Overridepublic void Interpret(Context context) {context.setInput(context.getInput() + "非终端解释器");}}//解释器实现类public class TerminalExpression extends AbstractExpression {@Overridepublic void Interpret(Context context) {context.setInput(context.getInput() + "终端解释器");}}
