org.eclipse.internal.xtend.expression.ast
Class Expression

java.lang.Object
  extended by org.eclipse.internal.xtend.expression.ast.SyntaxElement
      extended by org.eclipse.internal.xtend.expression.ast.Expression
All Implemented Interfaces:
ISyntaxElement, Analyzable, Evaluatable
Direct Known Subclasses:
BooleanOperation, Cast, ChainExpression, ConstructorCallExpression, FeatureCall, GlobalVarExpression, IfExpression, LetExpression, ListLiteral, Literal, SwitchExpression

public abstract class Expression
extends SyntaxElement
implements Analyzable, Evaluatable

Author:
Sven Efftinge - Initial contribution and API, Bernd Kolb

Field Summary
 
Fields inherited from class org.eclipse.internal.xtend.expression.ast.SyntaxElement
end, line, start
 
Constructor Summary
Expression()
           
 
Method Summary
 Type analyze(ExecutionContext ctx, java.util.Set<AnalysationIssue> issues)
           
protected abstract  Type analyzeInternal(ExecutionContext ctx, java.util.Set<AnalysationIssue> issues)
           
 java.lang.Object evaluate(ExecutionContext ctx)
           
protected abstract  java.lang.Object evaluateInternal(ExecutionContext ctx)
           
protected  Type findType(Identifier type, ExecutionContext ctx, java.util.Set<AnalysationIssue> issues)
           
 java.lang.String toString()
           
protected abstract  java.lang.String toStringInternal()
           
 
Methods inherited from class org.eclipse.internal.xtend.expression.ast.SyntaxElement
accept, getEnd, getFileName, getLine, getNameString, getStart, setEnd, setFileName, setLine, setStart
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

Expression

public Expression()
Method Detail

findType

protected Type findType(Identifier type,
                        ExecutionContext ctx,
                        java.util.Set<AnalysationIssue> issues)

evaluate

public final java.lang.Object evaluate(ExecutionContext ctx)
Specified by:
evaluate in interface Evaluatable

analyze

public Type analyze(ExecutionContext ctx,
                    java.util.Set<AnalysationIssue> issues)
Specified by:
analyze in interface Analyzable

analyzeInternal

protected abstract Type analyzeInternal(ExecutionContext ctx,
                                        java.util.Set<AnalysationIssue> issues)

toString

public final java.lang.String toString()
Overrides:
toString in class java.lang.Object

toStringInternal

protected abstract java.lang.String toStringInternal()

evaluateInternal

protected abstract java.lang.Object evaluateInternal(ExecutionContext ctx)