Class ExpressionTranslator
java.lang.Object
net.ssehub.easy.dslCore.translation.MessageReceiver
net.ssehub.easy.dslCore.translation.ExpressionTranslator
de.uni_hildesheim.sse.vil.expressions.translation.ExpressionTranslator<net.ssehub.easy.instantiation.core.model.templateModel.VariableDeclaration,net.ssehub.easy.instantiation.core.model.templateModel.Resolver,net.ssehub.easy.instantiation.core.model.templateModel.ExpressionStatement>
de.uni_hildesheim.sse.vil.templatelang.templateLanguageTranslation.ExpressionTranslator
- All Implemented Interfaces:
net.ssehub.easy.dslCore.translation.IMessageReceiver,net.ssehub.easy.instantiation.core.model.expressions.ResolutionListener,net.ssehub.easy.instantiation.core.model.expressions.StringResolver.IExpressionTranslator<net.ssehub.easy.instantiation.core.model.templateModel.VariableDeclaration,net.ssehub.easy.instantiation.core.model.templateModel.Resolver>
public class ExpressionTranslator
extends de.uni_hildesheim.sse.vil.expressions.translation.ExpressionTranslator<net.ssehub.easy.instantiation.core.model.templateModel.VariableDeclaration,net.ssehub.easy.instantiation.core.model.templateModel.Resolver,net.ssehub.easy.instantiation.core.model.templateModel.ExpressionStatement>
A specific expression translator for the template language.
- Author:
- Holger Eichelberger
-
Nested Class Summary
Nested ClassesNested classes/interfaces inherited from class de.uni_hildesheim.sse.vil.expressions.translation.ExpressionTranslator
de.uni_hildesheim.sse.vil.expressions.translation.ExpressionTranslator.CallType -
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected Stringprotected net.ssehub.easy.instantiation.core.model.templateModel.ExpressionStatementcreateExpressionStatement(net.ssehub.easy.instantiation.core.model.expressions.Expression expression, net.ssehub.easy.instantiation.core.model.templateModel.Resolver resolver) protected net.ssehub.easy.instantiation.core.model.expressions.ExpressionVersionRestrictioncreateExpressionVersionRestriction(net.ssehub.easy.instantiation.core.model.expressions.Expression expr, net.ssehub.easy.instantiation.core.model.common.VariableDeclaration decl, org.eclipse.emf.ecore.EObject cause, org.eclipse.emf.ecore.EStructuralFeature feature) protected net.ssehub.easy.instantiation.core.model.templateModel.VariableDeclarationcreateImplicitVariableDeclaration(String name, net.ssehub.easy.instantiation.core.model.vilTypes.TypeDescriptor<?> type, boolean isConstant, net.ssehub.easy.instantiation.core.model.expressions.Expression expression, net.ssehub.easy.instantiation.core.model.templateModel.Resolver resolver) protected net.ssehub.easy.instantiation.core.model.templateModel.VariableDeclarationcreateVariableDeclaration(String name, net.ssehub.easy.instantiation.core.model.vilTypes.TypeDescriptor<?> type, boolean isConstant, net.ssehub.easy.instantiation.core.model.expressions.Expression expression, net.ssehub.easy.instantiation.core.model.templateModel.Resolver resolver) net.ssehub.easy.instantiation.core.model.expressions.ExpressionparseExpression(String expression, net.ssehub.easy.instantiation.core.model.templateModel.Resolver resolver, StringBuilder warnings) protected net.ssehub.easy.instantiation.core.model.expressions.ExpressionprocessCall(net.ssehub.easy.instantiation.core.model.expressions.Expression firstParam, de.uni_hildesheim.sse.vil.expressions.expressionDsl.Call call, de.uni_hildesheim.sse.vil.expressions.translation.ExpressionTranslator.CallType type, de.uni_hildesheim.sse.vil.expressions.expressionDsl.Expression arrayEx, net.ssehub.easy.instantiation.core.model.templateModel.Resolver resolver) Processes a function call.protected net.ssehub.easy.instantiation.core.model.expressions.ExpressionprocessSubCall(net.ssehub.easy.instantiation.core.model.expressions.Expression result, de.uni_hildesheim.sse.vil.expressions.expressionDsl.SubCall call, de.uni_hildesheim.sse.vil.expressions.translation.ExpressionTranslator.CallType callType, net.ssehub.easy.instantiation.core.model.templateModel.Resolver resolver) voidMethods inherited from class de.uni_hildesheim.sse.vil.expressions.translation.ExpressionTranslator
assertBooleanExpression, checkCallExpression, checkSemantics, continueResolution, createConstant, enactIvmlWarnings, error, getIvmlMessageAdapter, processAdditiveExpression, processArguments, processAssignment, processConstant, processEqualityExpression, processExpression, processExpressionStatement, processLogicalExpression, processMultiplicativeExpression, processPostfixExpression, processPrimaryExpression, processQualifiedValue, processRelationalExpression, processRestriction, processSubCalls, processType, processTypeParameter, processUnaryExpression, processVariableDeclaration, reProcessVariableDeclaration, resolveCallArguments, resolved, resolveIteratorDeclarations, setIvmlMessageAdapter, warning, warnVersionRestrictionsMethods inherited from class net.ssehub.easy.dslCore.translation.ExpressionTranslator
addMessage, clearMessages, clearMessages, collect, error, error, getErrorCount, getMessage, getMessageCount, warningMethods inherited from class net.ssehub.easy.dslCore.translation.MessageReceiver
error
-
Field Details
-
sTranslator
-
-
Constructor Details
-
ExpressionTranslator
public ExpressionTranslator()
-
-
Method Details
-
setStatementTranslator
-
processCall
protected net.ssehub.easy.instantiation.core.model.expressions.Expression processCall(net.ssehub.easy.instantiation.core.model.expressions.Expression firstParam, de.uni_hildesheim.sse.vil.expressions.expressionDsl.Call call, de.uni_hildesheim.sse.vil.expressions.translation.ExpressionTranslator.CallType type, de.uni_hildesheim.sse.vil.expressions.expressionDsl.Expression arrayEx, net.ssehub.easy.instantiation.core.model.templateModel.Resolver resolver) throws net.ssehub.easy.dslCore.translation.TranslatorException Processes a function call.- Specified by:
processCallin classde.uni_hildesheim.sse.vil.expressions.translation.ExpressionTranslator<net.ssehub.easy.instantiation.core.model.templateModel.VariableDeclaration,net.ssehub.easy.instantiation.core.model.templateModel.Resolver, net.ssehub.easy.instantiation.core.model.templateModel.ExpressionStatement> - Parameters:
firstParam- the first parameter (may be null)call- the function all (may be null, but thenarrayExis required)arrayEx- an array access expression (may be null, but thencallis required)resolver- a resolver instance for resolving variables etc.- Returns:
- the resulting expression node
- Throws:
net.ssehub.easy.dslCore.translation.TranslatorException- in case that the translation fails for some reason
-
createVariableDeclaration
protected net.ssehub.easy.instantiation.core.model.templateModel.VariableDeclaration createVariableDeclaration(String name, net.ssehub.easy.instantiation.core.model.vilTypes.TypeDescriptor<?> type, boolean isConstant, net.ssehub.easy.instantiation.core.model.expressions.Expression expression, net.ssehub.easy.instantiation.core.model.templateModel.Resolver resolver) - Specified by:
createVariableDeclarationin classde.uni_hildesheim.sse.vil.expressions.translation.ExpressionTranslator<net.ssehub.easy.instantiation.core.model.templateModel.VariableDeclaration,net.ssehub.easy.instantiation.core.model.templateModel.Resolver, net.ssehub.easy.instantiation.core.model.templateModel.ExpressionStatement>
-
createImplicitVariableDeclaration
protected net.ssehub.easy.instantiation.core.model.templateModel.VariableDeclaration createImplicitVariableDeclaration(String name, net.ssehub.easy.instantiation.core.model.vilTypes.TypeDescriptor<?> type, boolean isConstant, net.ssehub.easy.instantiation.core.model.expressions.Expression expression, net.ssehub.easy.instantiation.core.model.templateModel.Resolver resolver) - Specified by:
createImplicitVariableDeclarationin classde.uni_hildesheim.sse.vil.expressions.translation.ExpressionTranslator<net.ssehub.easy.instantiation.core.model.templateModel.VariableDeclaration,net.ssehub.easy.instantiation.core.model.templateModel.Resolver, net.ssehub.easy.instantiation.core.model.templateModel.ExpressionStatement>
-
createExpressionVersionRestriction
protected net.ssehub.easy.instantiation.core.model.expressions.ExpressionVersionRestriction createExpressionVersionRestriction(net.ssehub.easy.instantiation.core.model.expressions.Expression expr, net.ssehub.easy.instantiation.core.model.common.VariableDeclaration decl, org.eclipse.emf.ecore.EObject cause, org.eclipse.emf.ecore.EStructuralFeature feature) throws net.ssehub.easy.basics.modelManagement.RestrictionEvaluationException - Specified by:
createExpressionVersionRestrictionin classde.uni_hildesheim.sse.vil.expressions.translation.ExpressionTranslator<net.ssehub.easy.instantiation.core.model.templateModel.VariableDeclaration,net.ssehub.easy.instantiation.core.model.templateModel.Resolver, net.ssehub.easy.instantiation.core.model.templateModel.ExpressionStatement> - Throws:
net.ssehub.easy.basics.modelManagement.RestrictionEvaluationException
-
parseExpression
public net.ssehub.easy.instantiation.core.model.expressions.Expression parseExpression(String expression, net.ssehub.easy.instantiation.core.model.templateModel.Resolver resolver, StringBuilder warnings) throws net.ssehub.easy.instantiation.core.model.common.VilException - Specified by:
parseExpressionin interfacenet.ssehub.easy.instantiation.core.model.expressions.StringResolver.IExpressionTranslator<net.ssehub.easy.instantiation.core.model.templateModel.VariableDeclaration,net.ssehub.easy.instantiation.core.model.templateModel.Resolver> - Specified by:
parseExpressionin classde.uni_hildesheim.sse.vil.expressions.translation.ExpressionTranslator<net.ssehub.easy.instantiation.core.model.templateModel.VariableDeclaration,net.ssehub.easy.instantiation.core.model.templateModel.Resolver, net.ssehub.easy.instantiation.core.model.templateModel.ExpressionStatement> - Throws:
net.ssehub.easy.instantiation.core.model.common.VilException
-
createExpressionStatement
protected net.ssehub.easy.instantiation.core.model.templateModel.ExpressionStatement createExpressionStatement(net.ssehub.easy.instantiation.core.model.expressions.Expression expression, net.ssehub.easy.instantiation.core.model.templateModel.Resolver resolver) - Specified by:
createExpressionStatementin classde.uni_hildesheim.sse.vil.expressions.translation.ExpressionTranslator<net.ssehub.easy.instantiation.core.model.templateModel.VariableDeclaration,net.ssehub.easy.instantiation.core.model.templateModel.Resolver, net.ssehub.easy.instantiation.core.model.templateModel.ExpressionStatement>
-
cannotAssignHint
- Specified by:
cannotAssignHintin classde.uni_hildesheim.sse.vil.expressions.translation.ExpressionTranslator<net.ssehub.easy.instantiation.core.model.templateModel.VariableDeclaration,net.ssehub.easy.instantiation.core.model.templateModel.Resolver, net.ssehub.easy.instantiation.core.model.templateModel.ExpressionStatement>
-
processSubCall
protected net.ssehub.easy.instantiation.core.model.expressions.Expression processSubCall(net.ssehub.easy.instantiation.core.model.expressions.Expression result, de.uni_hildesheim.sse.vil.expressions.expressionDsl.SubCall call, de.uni_hildesheim.sse.vil.expressions.translation.ExpressionTranslator.CallType callType, net.ssehub.easy.instantiation.core.model.templateModel.Resolver resolver) throws net.ssehub.easy.dslCore.translation.TranslatorException - Overrides:
processSubCallin classde.uni_hildesheim.sse.vil.expressions.translation.ExpressionTranslator<net.ssehub.easy.instantiation.core.model.templateModel.VariableDeclaration,net.ssehub.easy.instantiation.core.model.templateModel.Resolver, net.ssehub.easy.instantiation.core.model.templateModel.ExpressionStatement> - Throws:
net.ssehub.easy.dslCore.translation.TranslatorException
-