public class XbaseCompiler extends FeatureCallCompiler
| Constructor and Description |
|---|
XbaseCompiler() |
| Modifier and Type | Method and Description |
|---|---|
protected void |
_toJavaExpression(XAnnotation annotation,
ITreeAppendable b) |
protected void |
_toJavaExpression(XBlockExpression expr,
ITreeAppendable b) |
protected void |
_toJavaExpression(XCastedExpression expr,
ITreeAppendable b) |
protected void |
_toJavaExpression(XClosure closure,
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(XListLiteral literal,
ITreeAppendable b) |
protected void |
_toJavaExpression(XReturnExpression returnExpression,
ITreeAppendable b) |
protected void |
_toJavaExpression(XSetLiteral literal,
ITreeAppendable b) |
protected void |
_toJavaExpression(XSwitchExpression expr,
ITreeAppendable b) |
protected void |
_toJavaExpression(XSynchronizedExpression synchronizedExpression,
ITreeAppendable b) |
protected void |
_toJavaExpression(XThrowExpression throwExpression,
ITreeAppendable b) |
protected void |
_toJavaExpression(XTryCatchFinallyExpression expr,
ITreeAppendable b) |
protected void |
_toJavaIfElseStatement(XSwitchExpression expr,
ITreeAppendable b,
boolean isReferenced) |
protected void |
_toJavaIfStatement(XCasePart casePart,
java.util.List<XCasePart> fallThroughCases,
XSwitchExpression expr,
XExpression then,
ITreeAppendable b,
boolean isReferenced,
java.lang.String switchResultName,
java.lang.String matchedVariable,
java.lang.String variableName,
XSwitchExpressionCompilationState state) |
protected void |
_toJavaStatement(XBasicForLoopExpression expr,
ITreeAppendable b,
boolean isReferenced) |
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(XListLiteral literal,
ITreeAppendable b,
boolean isReferenced) |
protected void |
_toJavaStatement(XReturnExpression expr,
ITreeAppendable b,
boolean isReferenced) |
protected void |
_toJavaStatement(XSetLiteral literal,
ITreeAppendable b,
boolean isReferenced) |
protected void |
_toJavaStatement(XSwitchExpression expr,
ITreeAppendable b,
boolean isReferenced) |
protected void |
_toJavaStatement(XSynchronizedExpression synchronizedExpression,
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 |
_toJavaSwitchStatement(XSwitchExpression expr,
ITreeAppendable b,
boolean isReferenced) |
protected boolean |
allCasesAreExitedEarly(XSwitchExpression expr) |
protected void |
appendCatchAndFinally(XTryCatchFinallyExpression expr,
ITreeAppendable b,
boolean isReferenced) |
protected void |
appendCatchClause(XCatchClause catchClause,
boolean parentIsReferenced,
java.lang.String parentVariable,
ITreeAppendable appendable) |
protected void |
appendCatchClauseParameter(XCatchClause catchClause,
org.eclipse.xtext.common.types.JvmTypeReference parameterType,
java.lang.String parameterName,
ITreeAppendable appendable) |
protected ITreeAppendable |
appendCloseIfStatement(XCasePart casePart,
ITreeAppendable caseAppendable,
XSwitchExpressionCompilationState state) |
protected void |
appendClosureParameter(org.eclipse.xtext.common.types.JvmFormalParameter closureParam,
LightweightTypeReference parameterType,
ITreeAppendable appendable) |
protected void |
appendConstructedTypeName(XConstructorCall constructorCall,
ITreeAppendable typeAppendable) |
protected void |
appendForLoopParameter(XForLoopExpression expr,
ITreeAppendable appendable) |
protected void |
appendImmutableCollectionExpression(XCollectionLiteral literal,
ITreeAppendable b,
java.lang.String collectionsMethod,
java.lang.Class<?> guavaHelper,
java.lang.String guavaHelperMethod) |
protected ITreeAppendable |
appendOpenIfStatement(XCasePart casePart,
ITreeAppendable b,
java.lang.String matchedVariable,
java.lang.String variableName,
XSwitchExpressionCompilationState state) |
protected void |
appendOperationVisibility(ITreeAppendable b,
org.eclipse.xtext.common.types.JvmOperation operation) |
protected ITreeAppendable |
appendTypeArguments(XAbstractFeatureCall call,
ITreeAppendable original) |
protected LightweightTypeReference |
appendVariableTypeAndName(XVariableDeclaration varDeclaration,
ITreeAppendable appendable) |
protected boolean |
bracesAreAddedByOuterStructure(XExpression expression) |
protected boolean |
canCompileToJavaBasicForStatement(XBasicForLoopExpression expr,
ITreeAppendable b) |
protected boolean |
canCompileToJavaLambda(XClosure closure,
LightweightTypeReference typeRef,
org.eclipse.xtext.common.types.JvmOperation operation) |
protected boolean |
canUseArrayInitializer(XListLiteral literal,
ITreeAppendable appendable) |
protected boolean |
canUseArrayInitializerImpl(XListLiteral literal,
ITreeAppendable appendable) |
protected void |
constructorCallToJavaExpression(XConstructorCall expr,
ITreeAppendable b) |
protected java.lang.String |
createSwitchLocalVariableName(XSwitchExpression expr) |
protected java.lang.String |
declareAndAppendSwitchSyntheticLocalVariable(XSwitchExpression expr,
java.lang.String name,
ITreeAppendable b) |
protected java.lang.String |
declareLocalVariable(XSwitchExpression expr,
ITreeAppendable b) |
protected java.lang.String |
declareSwitchResultVariable(XSwitchExpression expr,
ITreeAppendable b,
boolean isReferenced) |
protected void |
doInternalToJavaStatement(XExpression obj,
ITreeAppendable appendable,
boolean isReferenced) |
protected void |
executeThenPart(XSwitchExpression expr,
java.lang.String switchResultName,
XExpression then,
ITreeAppendable b,
boolean isReferenced) |
protected java.util.List<XExpression> |
getActualArguments(XAbstractFeatureCall featureCall) |
protected LightweightTypeReference |
getClosureOperationParameterType(LightweightTypeReference closureType,
org.eclipse.xtext.common.types.JvmOperation operation,
int i) |
protected LightweightTypeReference |
getClosureOperationReturnType(LightweightTypeReference closureType,
org.eclipse.xtext.common.types.JvmOperation operation) |
protected LightweightTypeReference |
getCollectionElementType(XCollectionLiteral literal) |
protected org.eclipse.xtext.common.types.JvmTypeReference |
getForLoopParameterType(XForLoopExpression expr) |
protected org.eclipse.xtext.generator.trace.ILocationData |
getLocationOfDefault(XSwitchExpression expression) |
protected org.eclipse.xtext.generator.trace.ILocationData |
getLocationWithNewKeyword(XConstructorCall call) |
protected org.eclipse.xtext.common.types.JvmTypeReference |
getParameterType(org.eclipse.xtext.common.types.JvmFormalParameter declaredParam) |
protected java.lang.String |
getReferenceName(XExpression expr,
ITreeAppendable b) |
protected java.lang.Object |
getSwitchExpressionKey(XSwitchExpression expr) |
protected java.lang.String |
getSwitchLocalVariableName(XSwitchExpression expr,
ITreeAppendable b) |
protected java.lang.String |
getSwitchLocalVariableSimpleName(XSwitchExpression expr) |
protected org.eclipse.xtext.common.types.JvmTypeReference |
getSwitchLocalVariableType(XSwitchExpression expr) |
protected boolean |
internalCanCompileToJavaExpression(XExpression expression,
ITreeAppendable appendable) |
protected void |
internalToConvertedExpression(XExpression obj,
ITreeAppendable appendable) |
protected boolean |
isCompiledToJava7Switch(XSwitchExpression expr)
Determine whether the given switch expression should be compiled to a Java switch for Java version 7 or higher.
|
protected boolean |
isCompiledToJavaSwitch(XSwitchExpression expr)
Determine whether the given switch expression should be compiled to a Java switch for Java version 6 or lower.
|
protected boolean |
isSimpleFeatureCall(XExpression switch1) |
protected boolean |
isType(XExpression element,
java.lang.Class<?> clazz) |
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.
|
protected boolean |
needSyntheticSelfVariable(XClosure closure,
LightweightTypeReference typeRef) |
protected LightweightTypeReference |
resolveType(XExpression element,
java.lang.Class<?> clazz) |
protected ITreeAppendable |
toAnonymousClass(XClosure closure,
ITreeAppendable b,
LightweightTypeReference type,
org.eclipse.xtext.common.types.JvmOperation operation) |
protected void |
toJavaBasicForStatement(XBasicForLoopExpression expr,
ITreeAppendable b,
boolean isReferenced) |
protected void |
toJavaWhileStatement(XBasicForLoopExpression expr,
ITreeAppendable b,
boolean isReferenced) |
protected ITreeAppendable |
toLambda(XClosure closure,
ITreeAppendable b,
LightweightTypeReference type,
org.eclipse.xtext.common.types.JvmOperation operation,
boolean writeExplicitTargetType) |
_toJavaExpression, _toJavaStatement, _toJavaStatement, appendArgument, appendArgument, appendArguments, appendArguments, appendFeatureCall, appendInlineFeatureCall, appendLeftOperand, appendNullValue, appendNullValueUntyped, appendReceiver, assignmentToJavaExpression, featureCalltoJavaExpression, generateShortCircuitInvocation, getActualReceiver, getDefaultLiteral, getFeatureCall, getLocationInFileProvider, getLocationOfTypeArguments, getLocationWithoutTypeArguments, getLocationWithTypeArguments, getLogicalContainerProvider, isDeclaredInNewLine, isHidden, isMemberCall, isReferenceToSelf, isVariableDeclarationRequired, isVariableDeclarationRequired, needMultiAssignment, nullSafeMemberFeatureCallExpressionNeedsPreparation, prepareExpression, toLocationData_toJavaExpression, _toJavaExpression, _toJavaExpression, _toJavaExpression, _toJavaExpression, _toJavaStatement, _toJavaStatement, _toJavaStatement, _toJavaStatement, _toJavaStatement, generateComment, generateComment, toJavaExpression, toJavaStatementdoConversion, doReassignThisInClosure, findImplementingOperation, internalToConvertedExpression, internalToJavaExpression, normalizeBlockExpression, normalizeBlockExpression, reassignThisInClosure_toJavaExpression, _toJavaStatement, appendDefaultLiteral, canCompileToJavaExpression, compile, compile, compile, compile, compileAsJavaExpression, compileAsJavaExpression, compileWithJvmConstructorCall, declareFreshLocalVariable, declareSyntheticVariable, findKnownTopLevelType, findKnownType, generateCheckedExceptionHandling, getDefaultValueLiteral, getExpectedType, getFavoriteVariableName, getLightweightExpectedType, getLightweightReturnType, getLightweightType, getLightweightType, getNameProvider, getResolvedTypes, getType, getType, getTypeComputationServices, getTypeForVariableDeclaration, getTypeReferenceSerializer, getVarName, hasJvmConstructorCall, hasUnhandledException, internalToJavaStatement, isEarlyExit, isJavaConformant, isPrimitiveVoid, isPrimitiveVoid, isReferenceToForeignTypeParameter, isUnhandledException, makeJavaIdentifier, needsSneakyThrow, newTypeReferenceOwner, resolveMultiType, serialize, serialize, serialize, setNameProvider, toJavaExpression, toJavaStatement, toLightweightprotected void _toJavaStatement(XListLiteral literal, ITreeAppendable b, boolean isReferenced)
isReferenced - unused in this context but necessary for dispatch signatureprotected void _toJavaStatement(XSetLiteral literal, ITreeAppendable b, boolean isReferenced)
isReferenced - unused in this context but necessary for dispatch signatureprotected boolean isType(XExpression element, java.lang.Class<?> clazz)
protected LightweightTypeReference resolveType(XExpression element, java.lang.Class<?> clazz)
protected LightweightTypeReference getCollectionElementType(XCollectionLiteral literal)
protected void _toJavaExpression(XListLiteral literal, ITreeAppendable b)
protected void _toJavaExpression(XSetLiteral literal, ITreeAppendable b)
protected void appendImmutableCollectionExpression(XCollectionLiteral literal, ITreeAppendable b, java.lang.String collectionsMethod, java.lang.Class<?> guavaHelper, java.lang.String guavaHelperMethod)
protected boolean canUseArrayInitializer(XListLiteral literal, ITreeAppendable appendable)
protected boolean canUseArrayInitializerImpl(XListLiteral literal, ITreeAppendable appendable)
protected java.util.List<XExpression> getActualArguments(XAbstractFeatureCall featureCall)
getActualArguments in class FeatureCallCompilerprotected ITreeAppendable appendTypeArguments(XAbstractFeatureCall call, ITreeAppendable original)
appendTypeArguments in class FeatureCallCompilerprotected void internalToConvertedExpression(XExpression obj, ITreeAppendable appendable)
internalToConvertedExpression in class FeatureCallCompilerprotected void doInternalToJavaStatement(XExpression obj, ITreeAppendable appendable, boolean isReferenced)
doInternalToJavaStatement in class FeatureCallCompilerprotected void _toJavaStatement(XBlockExpression expr, ITreeAppendable b, boolean isReferenced)
protected boolean bracesAreAddedByOuterStructure(XExpression expression)
protected void _toJavaExpression(XBlockExpression expr, ITreeAppendable b)
protected void _toJavaStatement(XTryCatchFinallyExpression expr, ITreeAppendable outerAppendable, boolean isReferenced)
protected void appendCatchAndFinally(XTryCatchFinallyExpression expr, ITreeAppendable b, boolean isReferenced)
protected void appendCatchClause(XCatchClause catchClause, boolean parentIsReferenced, java.lang.String parentVariable, ITreeAppendable appendable)
protected void appendCatchClauseParameter(XCatchClause catchClause, org.eclipse.xtext.common.types.JvmTypeReference parameterType, java.lang.String parameterName, ITreeAppendable appendable)
protected void _toJavaExpression(XTryCatchFinallyExpression expr, ITreeAppendable b)
protected void _toJavaStatement(XThrowExpression expr, ITreeAppendable b, boolean isReferenced)
isReferenced - unused in this context but necessary for dispatch signatureprotected void _toJavaExpression(XInstanceOfExpression expr, ITreeAppendable b)
protected void _toJavaStatement(XInstanceOfExpression expr, ITreeAppendable b, boolean isReferenced)
isReferenced - unused in this context but necessary for dispatch signatureprotected void _toJavaStatement(XVariableDeclaration varDeclaration, ITreeAppendable b, boolean isReferenced)
isReferenced - unused in this context but necessary for dispatch signatureprotected LightweightTypeReference appendVariableTypeAndName(XVariableDeclaration varDeclaration, ITreeAppendable appendable)
protected void _toJavaStatement(XWhileExpression expr, ITreeAppendable b, boolean isReferenced)
isReferenced - unused in this context but necessary for dispatch signatureprotected void _toJavaStatement(XDoWhileExpression expr, ITreeAppendable b, boolean isReferenced)
isReferenced - unused in this context but necessary for dispatch signatureprotected void _toJavaStatement(XBasicForLoopExpression expr, ITreeAppendable b, boolean isReferenced)
protected boolean canCompileToJavaBasicForStatement(XBasicForLoopExpression expr, ITreeAppendable b)
protected void toJavaBasicForStatement(XBasicForLoopExpression expr, ITreeAppendable b, boolean isReferenced)
isReferenced - unused in this context but necessary for dispatch signatureprotected void toJavaWhileStatement(XBasicForLoopExpression expr, ITreeAppendable b, boolean isReferenced)
protected void _toJavaStatement(XForLoopExpression expr, ITreeAppendable b, boolean isReferenced)
isReferenced - unused in this context but necessary for dispatch signatureprotected void appendForLoopParameter(XForLoopExpression expr, ITreeAppendable appendable)
protected org.eclipse.xtext.common.types.JvmTypeReference getForLoopParameterType(XForLoopExpression expr)
protected org.eclipse.xtext.common.types.JvmTypeReference getParameterType(org.eclipse.xtext.common.types.JvmFormalParameter declaredParam)
protected void _toJavaStatement(XConstructorCall expr, ITreeAppendable b, boolean isReferenced)
protected void constructorCallToJavaExpression(XConstructorCall expr, ITreeAppendable b)
protected void appendConstructedTypeName(XConstructorCall constructorCall, ITreeAppendable typeAppendable)
protected org.eclipse.xtext.generator.trace.ILocationData getLocationWithNewKeyword(XConstructorCall call)
protected void _toJavaExpression(XConstructorCall expr, ITreeAppendable b)
protected void _toJavaStatement(XReturnExpression expr, ITreeAppendable b, boolean isReferenced)
isReferenced - unused in this context but necessary for dispatch signatureprotected void _toJavaExpression(XCastedExpression expr, ITreeAppendable b)
protected void _toJavaStatement(XCastedExpression expr, ITreeAppendable b, boolean isReferenced)
protected void _toJavaStatement(XIfExpression expr, ITreeAppendable b, boolean isReferenced)
protected void _toJavaExpression(XIfExpression expr, ITreeAppendable b)
protected void _toJavaStatement(XSwitchExpression expr, ITreeAppendable b, boolean isReferenced)
protected void _toJavaSwitchStatement(XSwitchExpression expr, ITreeAppendable b, boolean isReferenced)
protected java.lang.String declareLocalVariable(XSwitchExpression expr, ITreeAppendable b)
protected java.lang.String getSwitchLocalVariableName(XSwitchExpression expr, ITreeAppendable b)
protected java.lang.String declareAndAppendSwitchSyntheticLocalVariable(XSwitchExpression expr, java.lang.String name, ITreeAppendable b)
protected java.lang.String createSwitchLocalVariableName(XSwitchExpression expr)
protected java.lang.String getSwitchLocalVariableSimpleName(XSwitchExpression expr)
protected org.eclipse.xtext.common.types.JvmTypeReference getSwitchLocalVariableType(XSwitchExpression expr)
protected java.lang.String declareSwitchResultVariable(XSwitchExpression expr, ITreeAppendable b, boolean isReferenced)
protected void executeThenPart(XSwitchExpression expr, java.lang.String switchResultName, XExpression then, ITreeAppendable b, boolean isReferenced)
protected void _toJavaIfElseStatement(XSwitchExpression expr, ITreeAppendable b, boolean isReferenced)
protected void _toJavaIfStatement(XCasePart casePart, java.util.List<XCasePart> fallThroughCases, XSwitchExpression expr, XExpression then, ITreeAppendable b, boolean isReferenced, java.lang.String switchResultName, java.lang.String matchedVariable, java.lang.String variableName, XSwitchExpressionCompilationState state)
protected ITreeAppendable appendOpenIfStatement(XCasePart casePart, ITreeAppendable b, java.lang.String matchedVariable, java.lang.String variableName, XSwitchExpressionCompilationState state)
protected ITreeAppendable appendCloseIfStatement(XCasePart casePart, ITreeAppendable caseAppendable, XSwitchExpressionCompilationState state)
protected boolean isCompiledToJavaSwitch(XSwitchExpression expr)
protected boolean isCompiledToJava7Switch(XSwitchExpression expr)
protected boolean allCasesAreExitedEarly(XSwitchExpression expr)
protected boolean isSimpleFeatureCall(XExpression switch1)
protected java.lang.Object getSwitchExpressionKey(XSwitchExpression expr)
protected java.lang.String getReferenceName(XExpression expr, ITreeAppendable b)
getReferenceName in class AbstractXbaseCompilernull if the
expression hasn't been assigned to a local variable before.protected org.eclipse.xtext.generator.trace.ILocationData getLocationOfDefault(XSwitchExpression expression)
protected void _toJavaExpression(XSwitchExpression expr, ITreeAppendable b)
protected void _toJavaStatement(XSynchronizedExpression synchronizedExpression, ITreeAppendable b, boolean isReferenced)
protected void _toJavaExpression(XSynchronizedExpression synchronizedExpression, ITreeAppendable b)
protected void _toJavaExpression(XReturnExpression returnExpression, ITreeAppendable b)
protected void _toJavaExpression(XThrowExpression throwExpression, ITreeAppendable b)
protected void _toJavaStatement(XClosure closure, ITreeAppendable b, boolean isReferenced)
protected ITreeAppendable toAnonymousClass(XClosure closure, ITreeAppendable b, LightweightTypeReference type, org.eclipse.xtext.common.types.JvmOperation operation)
protected boolean needSyntheticSelfVariable(XClosure closure, LightweightTypeReference typeRef)
protected void appendClosureParameter(org.eclipse.xtext.common.types.JvmFormalParameter closureParam,
LightweightTypeReference parameterType,
ITreeAppendable appendable)
protected void appendOperationVisibility(ITreeAppendable b, org.eclipse.xtext.common.types.JvmOperation operation)
protected LightweightTypeReference getClosureOperationParameterType(LightweightTypeReference closureType, org.eclipse.xtext.common.types.JvmOperation operation, int i)
protected LightweightTypeReference getClosureOperationReturnType(LightweightTypeReference closureType, org.eclipse.xtext.common.types.JvmOperation operation)
protected ITreeAppendable toLambda(XClosure closure, ITreeAppendable b, LightweightTypeReference type, org.eclipse.xtext.common.types.JvmOperation operation, boolean writeExplicitTargetType)
protected void _toJavaExpression(XClosure closure, ITreeAppendable b)
protected boolean canCompileToJavaLambda(XClosure closure, LightweightTypeReference typeRef, org.eclipse.xtext.common.types.JvmOperation operation)
protected boolean internalCanCompileToJavaExpression(XExpression expression, ITreeAppendable appendable)
internalCanCompileToJavaExpression in class FeatureCallCompilerexpression - to be used by subtypesappendable - to be used by subtypesprotected boolean isVariableDeclarationRequired(XExpression expr, ITreeAppendable b)
AbstractXbaseCompilerisVariableDeclarationRequired in class FeatureCallCompilerexpr - the checked expressionb - the appendable which represents the current compiler stateprotected void _toJavaExpression(XAnnotation annotation, ITreeAppendable b)