解释器模式(interpreter),给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。
编译原理的内容,定义一种语言,总结其文法,将其翻译成另一种语言(代码)。
package interpreter; public abstract class AbstractExpression { public abstract void interpret(String context); }
package interpreter; public class NonTerminalExpression extends AbstractExpression{ @Override public void interpret(String context) { System.out.println("NonTerminalExpression "+context); } }
package interpreter; import java.util.ArrayList; //终结符表达式,对终结符的解释操作。 public class TerminalExpression extends AbstractExpression { @Override public void interpret(String context) { //对终结符的解释操作。 System.out.println("TerminalExpression "+context); } public static void main(String[] args) { String context="context"; ArrayList<AbstractExpression> expressions=new ArrayList<AbstractExpression>(); expressions.add(new TerminalExpression()); expressions.add(new NonTerminalExpression()); expressions.add(new TerminalExpression()); expressions.add(new TerminalExpression()); for (AbstractExpression abstractExpression : expressions) { abstractExpression.interpret(context); } } }
复杂的文法,应该使用语法分析程序。