public boolean matches(ValueEval x) {int testValue;if(x instanceof StringEval) {return false;} else if((x instanceof BoolEval)) {BoolEval be = (BoolEval) x;testValue = boolToInt(be.getBooleanValue());} else if((x instanceof BlankEval)) {switch (getCode()) {case CmpOp.NE:return true;default:return false;}} else if((x instanceof NumberEval)) {switch (getCode()) {case CmpOp.NE:return true;default:return false;}} else {return false;}return evaluate(testValue - _value);}
public override bool Matches(ValueEval x){int testValue;if (x is StringEval){if (true){ return false;}StringEval se = (StringEval)x;Boolean? val = ParseBoolean(se.StringValue);if (val == null){return false;}testValue = BoolToInt(val.Value);}else if ((x is BoolEval)){BoolEval be = (BoolEval)x;testValue = BoolToInt(be.BooleanValue);}else if ((x is BlankEval)){switch (Code){case CmpOp.NE:return true;default:return false;}}else if ((x is NumberEval)){switch (Code){case CmpOp.NE:return true;default:return false;}}else{return false;}return Evaluate(testValue - _value);}