示例#1
0
        static void Main(string[] args)
        {
            Context ctx = new Context();
            ctx.SetValue( "x", true );
            ctx.SetValue( "y", false );

            AbstractExpression left = new UnaryExpression(new ConstExpression(new ConstToken(false)), new Negation());
            AbstractExpression right_x = new ConstExpression(new VariableToken("x"));
            AbstractExpression right_y = new ConstExpression(new VariableToken("y"));
            AbstractExpression expr = new BinaryExpression( left, right_x, new Conjunction() );
            AbstractExpression expr2 = new BinaryExpression( left, right_y, new Conjunction() );
            AbstractExpression expr3 = new BinaryExpression( left, right_y, new Alternative() );

            Console.WriteLine(expr.Interpret(ctx));
            Console.WriteLine(expr2.Interpret(ctx));
            Console.WriteLine(expr3.Interpret(ctx));
            Console.ReadKey();
        }
示例#2
0
 public abstract bool Interpret(Context context);
示例#3
0
 public override bool Interpret(Context context)
 {
     return token.Interpret(context);
 }
示例#4
0
 public override bool Interpret(Context context, AbstractExpression left, AbstractExpression right)
 {
     return left.Interpret(context) && right.Interpret(context);
 }
示例#5
0
 public override bool Interpret(Context context)
 {
     return binaryOperator.Interpret( context, leftExpression, rightExpression );
 }
示例#6
0
 public override bool Interpret(Context context)
 {
     return unaryOperator.Interpret( context, expression );
 }
示例#7
0
 public abstract bool Interpret(Context context, AbstractExpression expression);
 public abstract bool Interpret(Context context, AbstractExpression left, AbstractExpression right);
示例#9
0
 public override bool Interpret(Context context)
 {
     return value;
 }
示例#10
0
 public override bool Interpret(Context context, AbstractExpression expression)
 {
     return !expression.Interpret( context );
 }
示例#11
0
 public override bool Interpret(Context context)
 {
     return context.GetValue( variableName );
 }