org.eclipse.xtext.xbase.compiler
Class XbaseCompiler

java.lang.Object
  extended by org.eclipse.xtext.xbase.compiler.AbstractXbaseCompiler
      extended by org.eclipse.xtext.xbase.compiler.TypeConvertingCompiler
          extended by org.eclipse.xtext.xbase.compiler.LiteralsCompiler
              extended by org.eclipse.xtext.xbase.compiler.FeatureCallCompiler
                  extended by org.eclipse.xtext.xbase.compiler.XbaseCompiler
Direct Known Subclasses:
XtendCompiler

@NonNullByDefault
public class XbaseCompiler
extends FeatureCallCompiler

Author:
Sven Efftinge - Initial contribution and API

Constructor Summary
XbaseCompiler()
           
 
Method Summary
protected  void _toJavaExpression(XBlockExpression expr, ITreeAppendable b)
           
protected  void _toJavaExpression(XCastedExpression expr, ITreeAppendable b)
           
protected  void _toJavaExpression(XClosure call, ITreeAppendable b)
           
protected  void _toJavaExpression(XConstructorCall expr, ITreeAppendable b)
           
protected  void _toJavaExpression(XIfExpression expr, ITreeAppendable b)
           
protected  void _toJavaExpression(XInstanceOfExpression expr, ITreeAppendable b)
           
protected  void _toJavaExpression(XSwitchExpression expr, ITreeAppendable b)
           
protected  void _toJavaExpression(XTryCatchFinallyExpression expr, ITreeAppendable b)
           
protected  void _toJavaStatement(XBlockExpression expr, ITreeAppendable b, boolean isReferenced)
           
protected  void _toJavaStatement(XCastedExpression expr, ITreeAppendable b, boolean isReferenced)
           
protected  void _toJavaStatement(XClosure closure, ITreeAppendable b, boolean isReferenced)
           
protected  void _toJavaStatement(XConstructorCall expr, ITreeAppendable b, boolean isReferenced)
           
protected  void _toJavaStatement(XDoWhileExpression expr, ITreeAppendable b, boolean isReferenced)
           
protected  void _toJavaStatement(XForLoopExpression expr, ITreeAppendable b, boolean isReferenced)
           
protected  void _toJavaStatement(XIfExpression expr, ITreeAppendable b, boolean isReferenced)
           
protected  void _toJavaStatement(XInstanceOfExpression expr, ITreeAppendable b, boolean isReferenced)
           
protected  void _toJavaStatement(XReturnExpression expr, ITreeAppendable b, boolean isReferenced)
           
protected  void _toJavaStatement(XSwitchExpression expr, ITreeAppendable b, boolean isReferenced)
           
protected  void _toJavaStatement(XThrowExpression expr, ITreeAppendable b, boolean isReferenced)
           
protected  void _toJavaStatement(XTryCatchFinallyExpression expr, ITreeAppendable outerAppendable, boolean isReferenced)
           
protected  void _toJavaStatement(XVariableDeclaration varDeclaration, ITreeAppendable b, boolean isReferenced)
           
protected  void _toJavaStatement(XWhileExpression expr, ITreeAppendable b, boolean isReferenced)
           
protected  void appendCatchAndFinally(XTryCatchFinallyExpression expr, ITreeAppendable b, boolean isReferenced)
           
protected  boolean bracesAreAddedByOuterStructure(XBlockExpression block)
           
protected  void doInternalToJavaStatement(XExpression obj, ITreeAppendable appendable, boolean isReferenced)
           
protected  ILocationData getLocationOfDefault(XSwitchExpression expression)
           
protected  ILocationData getLocationWithNewKeyword(XConstructorCall call)
           
protected  java.lang.String getReferenceName(XExpression expr, ITreeAppendable b)
           
protected  java.lang.Object getSwitchExpressionKey(XSwitchExpression expr)
           
protected  boolean internalCanCompileToJavaExpression(XExpression expression, ITreeAppendable appendable)
           
protected  void internalToConvertedExpression(XExpression obj, ITreeAppendable appendable)
           
protected  boolean isVariableDeclarationRequired(XExpression expr, ITreeAppendable b)
          whether an expression needs to be declared in a statement If an expression has side effects this method must return true for it.
 
Methods inherited from class org.eclipse.xtext.xbase.compiler.FeatureCallCompiler
_toJavaExpression, _toJavaStatement, _toJavaStatement, appendArgument, appendArgument, appendArguments, appendArguments, appendFeatureCall, appendInlineFeatureCall, appendNullValue, appendReceiver, appendTypeArguments, assignmentToJavaExpression, featureCalltoJavaExpression, generateShortCircuitInvocation, getDefaultLiteral, getLocationInFileProvider, getLocationOfTypeArguments, getLocationWithoutTypeArguments, getLocationWithTypeArguments, getLogicalContainerProvider, getStaticQualifierLocation, getUpperBound, isDeclaredInNewLine, isHidden, isMemberCall, isStatic, prepareExpression, toLocationData
 
Methods inherited from class org.eclipse.xtext.xbase.compiler.LiteralsCompiler
_toJavaExpression, _toJavaExpression, _toJavaExpression, _toJavaExpression, _toJavaExpression, _toJavaStatement, _toJavaStatement, _toJavaStatement, _toJavaStatement, _toJavaStatement, generateComment, generateComment
 
Methods inherited from class org.eclipse.xtext.xbase.compiler.TypeConvertingCompiler
convertArrayToList, convertFunctionType, convertListToArray, convertMultiType, convertPrimitiveToWrapper, convertWrapperToPrimitive, doConversion, getContextProvider, identifierStartWith, internalToConvertedExpression, internalToJavaExpression, isFunction, isList, isProcedure
 
Methods inherited from class org.eclipse.xtext.xbase.compiler.AbstractXbaseCompiler
_toJavaExpression, _toJavaStatement, appendDefaultLiteral, canCompileToJavaExpression, compile, compile, compile, compileAsJavaExpression, declareFreshLocalVariable, declareSyntheticVariable, generateCheckedExceptionHandling, getDefaultValueLiteral, getFavoriteVariableName, getNameProvider, getPrimitives, getTypeConformanceComputer, getTypeForVariableDeclaration, getTypeProvider, getTypeReferences, getVarName, internalToJavaStatement, isPrimitiveVoid, isReferenceToForeignTypeParameter, makeJavaIdentifier, needsSneakyThrow, resolveMultiType, serialize, serialize, serialize, setNameProvider, setTypeReferences, toJavaExpression, toJavaStatement
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

XbaseCompiler

public XbaseCompiler()
Method Detail

internalToConvertedExpression

protected void internalToConvertedExpression(XExpression obj,
                                             ITreeAppendable appendable)
Overrides:
internalToConvertedExpression in class FeatureCallCompiler

doInternalToJavaStatement

protected void doInternalToJavaStatement(XExpression obj,
                                         ITreeAppendable appendable,
                                         boolean isReferenced)
Overrides:
doInternalToJavaStatement in class FeatureCallCompiler

_toJavaStatement

protected void _toJavaStatement(XBlockExpression expr,
                                ITreeAppendable b,
                                boolean isReferenced)

bracesAreAddedByOuterStructure

protected boolean bracesAreAddedByOuterStructure(XBlockExpression block)

_toJavaExpression

protected void _toJavaExpression(XBlockExpression expr,
                                 ITreeAppendable b)

_toJavaStatement

protected void _toJavaStatement(XTryCatchFinallyExpression expr,
                                ITreeAppendable outerAppendable,
                                boolean isReferenced)

appendCatchAndFinally

protected void appendCatchAndFinally(XTryCatchFinallyExpression expr,
                                     ITreeAppendable b,
                                     boolean isReferenced)

_toJavaExpression

protected void _toJavaExpression(XTryCatchFinallyExpression expr,
                                 ITreeAppendable b)

_toJavaStatement

protected void _toJavaStatement(XThrowExpression expr,
                                ITreeAppendable b,
                                boolean isReferenced)
Parameters:
isReferenced - unused in this context but necessary for dispatch signature

_toJavaExpression

protected void _toJavaExpression(XInstanceOfExpression expr,
                                 ITreeAppendable b)

_toJavaStatement

protected void _toJavaStatement(XInstanceOfExpression expr,
                                ITreeAppendable b,
                                boolean isReferenced)
Parameters:
isReferenced - unused in this context but necessary for dispatch signature

_toJavaStatement

protected void _toJavaStatement(XVariableDeclaration varDeclaration,
                                ITreeAppendable b,
                                boolean isReferenced)
Parameters:
isReferenced - unused in this context but necessary for dispatch signature

_toJavaStatement

protected void _toJavaStatement(XWhileExpression expr,
                                ITreeAppendable b,
                                boolean isReferenced)
Parameters:
isReferenced - unused in this context but necessary for dispatch signature

_toJavaStatement

protected void _toJavaStatement(XDoWhileExpression expr,
                                ITreeAppendable b,
                                boolean isReferenced)
Parameters:
isReferenced - unused in this context but necessary for dispatch signature

_toJavaStatement

protected void _toJavaStatement(XForLoopExpression expr,
                                ITreeAppendable b,
                                boolean isReferenced)
Parameters:
isReferenced - unused in this context but necessary for dispatch signature

_toJavaStatement

protected void _toJavaStatement(XConstructorCall expr,
                                ITreeAppendable b,
                                boolean isReferenced)

getLocationWithNewKeyword

@Nullable
protected ILocationData getLocationWithNewKeyword(XConstructorCall call)

_toJavaExpression

protected void _toJavaExpression(XConstructorCall expr,
                                 ITreeAppendable b)

_toJavaStatement

protected void _toJavaStatement(XReturnExpression expr,
                                ITreeAppendable b,
                                boolean isReferenced)
Parameters:
isReferenced - unused in this context but necessary for dispatch signature

_toJavaExpression

protected void _toJavaExpression(XCastedExpression expr,
                                 ITreeAppendable b)

_toJavaStatement

protected void _toJavaStatement(XCastedExpression expr,
                                ITreeAppendable b,
                                boolean isReferenced)

_toJavaStatement

protected void _toJavaStatement(XIfExpression expr,
                                ITreeAppendable b,
                                boolean isReferenced)

_toJavaExpression

protected void _toJavaExpression(XIfExpression expr,
                                 ITreeAppendable b)

_toJavaStatement

protected void _toJavaStatement(XSwitchExpression expr,
                                ITreeAppendable b,
                                boolean isReferenced)

getSwitchExpressionKey

protected java.lang.Object getSwitchExpressionKey(XSwitchExpression expr)

getReferenceName

@Nullable
protected java.lang.String getReferenceName(XExpression expr,
                                                     ITreeAppendable b)
Overrides:
getReferenceName in class AbstractXbaseCompiler
Returns:
the variable name under which the result of the expression is stored. Returns null if the expression hasn't been assigned to a local variable before.

getLocationOfDefault

@Nullable
protected ILocationData getLocationOfDefault(XSwitchExpression expression)

_toJavaExpression

protected void _toJavaExpression(XSwitchExpression expr,
                                 ITreeAppendable b)

_toJavaStatement

protected void _toJavaStatement(XClosure closure,
                                ITreeAppendable b,
                                boolean isReferenced)

_toJavaExpression

protected void _toJavaExpression(XClosure call,
                                 ITreeAppendable b)

internalCanCompileToJavaExpression

protected boolean internalCanCompileToJavaExpression(XExpression expression,
                                                     ITreeAppendable appendable)
Overrides:
internalCanCompileToJavaExpression in class AbstractXbaseCompiler

isVariableDeclarationRequired

protected boolean isVariableDeclarationRequired(XExpression expr,
                                                ITreeAppendable b)
Description copied from class: AbstractXbaseCompiler
whether an expression needs to be declared in a statement If an expression has side effects this method must return true for it.

Overrides:
isVariableDeclarationRequired in class FeatureCallCompiler
Parameters:
expr - the checked expression
b - the appendable which represents the current compiler state