1 给定一种语言,定义他的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中句子。
interface Expression{ public boolean interpret(String context); } class TerminalExpression implements Expression{ String str; public TerminalExpression(String str){ this.str = str; } @Override public boolean interpret(String context) { if (context.contains(str)){ return true; } return false; } } class OrExpression implements Expression{ private Expression expression1 = null; private Expression expression2 = null; public OrExpression(Expression expression1, Expression expression2){ this.expression1 = expression1; this.expression2 = expression2; } @Override public boolean interpret(String context) { return expression1.interpret(context) || expression2.interpret(context); } } public class Test{ public static Expression getExpression(){ Expression expression1 = new TerminalExpression("exp1"); Expression expression2 = new TerminalExpression("exp2"); return new OrExpression(expression1, expression2); } public static void main(String[] args){ Expression expression = getExpression(); System.out.println(expression.interpret("exp1")); } }