@Override public void visit(Comparison obj) { if (allowImplictConversion(obj)) { Function left = (Function) obj.getLeftExpression(); obj.setLeftExpression(left.getParameters().get(0)); Function right = (Function) obj.getRightExpression(); obj.setRightExpression(right.getParameters().get(0)); } super.visit(obj); }
@Override public void visit(Comparison obj) { if (isFixedChar(obj.getLeftExpression())) { if (obj.getRightExpression() instanceof Literal) { Literal l = (Literal)obj.getRightExpression(); l.setType(FixedCharType.class); } else if (obj.getRightExpression() instanceof Parameter) { Parameter p = (Parameter)obj.getRightExpression(); p.setType(FixedCharType.class); } } if (obj.getLeftExpression().getType() == TypeFacility.RUNTIME_TYPES.BOOLEAN && (obj.getLeftExpression() instanceof Function) && obj.getRightExpression() instanceof Literal) { Function f = (Function)obj.getLeftExpression(); if (STRING_BOOLEAN_FUNCTIONS.contains(f.getName())) { Boolean b = (Boolean)((Literal)obj.getRightExpression()).getValue(); obj.setRightExpression(new Literal(b!=null?(b?"TRUE":"FALSE"):null, TypeFacility.RUNTIME_TYPES.STRING)); //$NON-NLS-1$ //$NON-NLS-2$ } } super.visit(obj); }