Package com.dragome.compiler.ast

Examples of com.dragome.compiler.ast.PrefixExpression


    return binOp;
  }

  private PrefixExpression createPrefix(PrefixExpression.Operator op, ASTNode operand, Type type)
  {
    PrefixExpression pe= new PrefixExpression();
    pe.setOperator(op);
    pe.setTypeBinding(type);
    pe.setOperand(operand);
    return pe;
  }
View Full Code Here


    tempDecls= theTempDecls;
  }

  public static Expression negate(Expression expr)
  {
    PrefixExpression pe= new PrefixExpression();
    pe.setOperator(PrefixExpression.NOT);
    pe.setOperand(expr);
    return pe;
  }
View Full Code Here

  public static Expression simplifyBooleanExpression(Expression expr, boolean negate)
  {
    if (expr instanceof PrefixExpression)
    {
      PrefixExpression pe= (PrefixExpression) expr;
      if (pe.getOperator() != PrefixExpression.NOT)
        return expr;
      return simplifyBooleanExpression((Expression) pe.getOperand(), !negate);
    }

    if (expr instanceof InfixExpression && expr.getTypeBinding() == Type.BOOLEAN)
    {
      InfixExpression in= (InfixExpression) expr;
      InfixExpression.Operator op= in.getOperator();
      if (negate)
      {
        op= op.getComplement();
        if (op != InfixExpression.Operator.CONDITIONAL_AND && op != InfixExpression.Operator.CONDITIONAL_OR)
          negate= false;
      }
      InfixExpression out= new InfixExpression(op);
      out.widen(in);
      out.setOperands(simplifyBooleanExpression(in.getLeftOperand(), negate), simplifyBooleanExpression(in.getRightOperand(), negate));
      return out;
    }

    if (negate)
    {
      PrefixExpression pe= new PrefixExpression();
      pe.setOperator(PrefixExpression.NOT);
      pe.setOperand(expr);
      return pe;
    }

    return expr;
  }
View Full Code Here

    Expression replacement= null;

    PStarExpression.Operator operator= getOp(infixExpr);
    if (operator != null)
    {
      PrefixExpression p= new PrefixExpression();
      p.setOperand((Expression) fa1);
      p.setOperator(operator);
      replacement= p;
    }
    else
    {
      InfixExpression.Operator op= infixExpr.getOperator();
View Full Code Here

TOP

Related Classes of com.dragome.compiler.ast.PrefixExpression

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.