Package org.eclipse.dltk.ti.goals

Examples of org.eclipse.dltk.ti.goals.ExpressionTypeGoal


                .getContext() instanceof IModelCacheContext) {
          ((IModelCacheContext) context)
              .setCache(((IModelCacheContext) ClassVariableDeclarationEvaluator.this.goal
                  .getContext()).getCache());
        }
        subGoals.add(new ExpressionTypeGoal(context, entry.getKey()));
      }
    } catch (Exception e) {
      if (DLTKCore.DEBUG) {
        e.printStackTrace();
      }
View Full Code Here


                    && this.goal.getContext() instanceof IModelCacheContext) {
                  ((IModelCacheContext) context2)
                      .setCache(((IModelCacheContext) this.goal
                          .getContext()).getCache());
                }
                subGoals.add(new ExpressionTypeGoal(context2,
                    decl.getNode()));
              }
            }
          } catch (Exception e) {
            if (DLTKCore.DEBUG) {
View Full Code Here

  public ArrayVariableReferenceEvaluator(IGoal goal) {
    super(goal);
  }

  public IGoal[] init() {
    ExpressionTypeGoal typedGoal = (ExpressionTypeGoal) goal;
    ArrayVariableReference reference = (ArrayVariableReference) typedGoal
        .getExpression();
    return new IGoal[] { new ExpressionTypeGoal(goal.getContext(),
        new VariableReference(reference.sourceStart(),
            reference.sourceEnd(), reference.getName())) };
  }
View Full Code Here

  public InfixExpressionEvaluator(IGoal goal) {
    super(goal);
  }

  public IGoal[] init() {
    ExpressionTypeGoal typedGoal = (ExpressionTypeGoal) goal;
    InfixExpression infixExpression = (InfixExpression) typedGoal
        .getExpression();
    int operator = infixExpression.getOperatorType();
    switch (operator) {
    case InfixExpression.OP_IS_IDENTICAL:
    case InfixExpression.OP_IS_NOT_IDENTICAL:
View Full Code Here

  public CastEvaluator(IGoal goal) {
    super(goal);
  }

  public IGoal[] init() {
    ExpressionTypeGoal typedGoal = (ExpressionTypeGoal) goal;
    CastExpression castExpression = (CastExpression) typedGoal
        .getExpression();
    int operator = castExpression.getCastType();
    switch (operator) {
    case CastExpression.TYPE_INT:
    case CastExpression.TYPE_REAL:
      result = new SimpleType(SimpleType.TYPE_NUMBER);
      break;
    case CastExpression.TYPE_STRING:
      result = new SimpleType(SimpleType.TYPE_STRING);
      break;
    case CastExpression.TYPE_ARRAY:
      result = new SimpleType(SimpleType.TYPE_ARRAY);
      break;
    case CastExpression.TYPE_OBJECT:
      return new IGoal[] { new ExpressionTypeGoal(typedGoal.getContext(),
          castExpression.getExpr()) };
    case CastExpression.TYPE_BOOL:
      result = new SimpleType(SimpleType.TYPE_BOOLEAN);
      break;
    case CastExpression.TYPE_UNSET:
View Full Code Here

  public GoalEvaluator createEvaluator(IGoal goal) {

    Class<?> goalClass = goal.getClass();

    if (goalClass == ExpressionTypeGoal.class) {
      ExpressionTypeGoal exprGoal = (ExpressionTypeGoal) goal;
      return createExpressionEvaluator(exprGoal);
    }
    if (goalClass == MethodElementReturnTypeGoal.class) {
      return new MethodReturnTypeEvaluator(goal);
    }
View Full Code Here

  public ArrayCreationEvaluator(IGoal goal) {
    super(goal);
  }

  public IGoal[] init() {
    ExpressionTypeGoal typedGoal = (ExpressionTypeGoal) goal;
    ArrayCreation arrayCreation = (ArrayCreation) typedGoal.getExpression();

    List<IGoal> subGoals = new LinkedList<IGoal>();
    for (ArrayElement arrayElement : arrayCreation.getElements()) {
      subGoals.add(new ExpressionTypeGoal(typedGoal.getContext(),
          arrayElement.getValue()));
    }
    return subGoals.toArray(new IGoal[subGoals.size()]);
  }
View Full Code Here

  public PrefixExpressionEvaluator(IGoal goal) {
    super(goal);
  }

  public IGoal[] init() {
    ExpressionTypeGoal typedGoal = (ExpressionTypeGoal) goal;
    PrefixExpression prefixExpression = (PrefixExpression) typedGoal
        .getExpression();

    // XXX: actually, we have to check the contents of the variable here,
    // since for example typeof(++"abc")=string, but typeof(++"123")=integer
    // ...
    return new IGoal[] { new ExpressionTypeGoal(goal.getContext(),
        prefixExpression.getVariable()) };
  }
View Full Code Here

    super(goal);
  }

  public IGoal[] init() {
    IteratorTypeGoal typedGoal = (IteratorTypeGoal) goal;
    return new IGoal[] { new ExpressionTypeGoal(goal.getContext(),
        typedGoal.getExpression()) };
  }
View Full Code Here

  }

  private IGoal[] produceNextSubgoal(IGoal previousGoal,
      IEvaluatedType previousResult, GoalState goalState) {

    ExpressionTypeGoal typedGoal = (ExpressionTypeGoal) goal;
    Expression expression = (Expression) typedGoal.getExpression();

    Expression receiver;
    Expression field;
    if (expression instanceof FieldAccess) {
      FieldAccess fieldAccess = (FieldAccess) expression;
      receiver = fieldAccess.getDispatcher();
      field = fieldAccess.getField();
    } else if (expression instanceof StaticFieldAccess) {
      StaticFieldAccess fieldAccess = (StaticFieldAccess) expression;
      receiver = fieldAccess.getDispatcher();
      field = fieldAccess.getField();
    } else {
      return null;
    }

    String variableName;
    int offset = 0;
    if (field instanceof VariableReference) { // static access
      variableName = ((VariableReference) field).getName();
      offset = ((VariableReference) field).sourceStart();
    } else if (field instanceof SimpleReference) { // object access
      variableName = '$' + ((SimpleReference) field).getName();
      offset = ((SimpleReference) field).sourceStart();
    } else {
      return null;
    }

    // just starting to evaluate method, evaluate method receiver first:
    if (state == STATE_INIT) {

      if (receiver == null) {
        state = STATE_GOT_RECEIVER;
      } else {
        state = STATE_WAITING_RECEIVER;
        return new IGoal[] { new ExpressionTypeGoal(goal.getContext(),
            receiver) };
      }
    }

    // receiver must been evaluated now:
View Full Code Here

TOP

Related Classes of org.eclipse.dltk.ti.goals.ExpressionTypeGoal

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.