Package de.monticore.types.check.helpers
Class SubExprNameExtractionVisitor
- java.lang.Object
-
- de.monticore.types.check.helpers.SubExprNameExtractionVisitor
-
- All Implemented Interfaces:
CommonExpressionsVisitor2,ExpressionsBasisVisitor2,de.monticore.visitor.IVisitor
public class SubExprNameExtractionVisitor extends java.lang.Object implements CommonExpressionsVisitor2, ExpressionsBasisVisitor2
The usage of this class is to collect information about a call expression so that it is easier to resolve in the TypeCheck We take the call expression, and split it into a qualified name and an expression having a type such that type.qualifiedName(args) has the type of the call expression if no type can be found, the expression is set to the inner expression for compatibility reasons This makes it far easier to calculate the type of call expressions. To use this class:- Create an inheritance traverser
- Create an instance of this class and set
subExpressions. This is a shared state object that should be synchronized among the all name extracting visitors of the different languages - Register the instance of this class to be a visitor for ExpressionsBasis and CommonExpressions in the traverser.
DeriveSymTypeOfCommonExpressions.
-
-
Field Summary
Fields Modifier and Type Field Description protected SubExprNameExtractionResultsubExpressionsCollects the name parts of the expression that the visitor is applied to.
-
Constructor Summary
Constructors Constructor Description SubExprNameExtractionVisitor(SubExprNameExtractionResult commonNamePartsRecord)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description SubExprNameExtractionResultgetSubExpressions()voidvisit(ASTFieldAccessExpression expr)voidvisit(ASTExpression expr)Default implementation that marks an expression as *not* being a name part.voidvisit(ASTNameExpression expr)-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface de.monticore.expressions.commonexpressions._visitor.CommonExpressionsVisitor2
endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit
-
-
-
-
Field Detail
-
subExpressions
protected SubExprNameExtractionResult subExpressions
Collects the name parts of the expression that the visitor is applied to.
-
-
Constructor Detail
-
SubExprNameExtractionVisitor
public SubExprNameExtractionVisitor(SubExprNameExtractionResult commonNamePartsRecord)
-
-
Method Detail
-
getSubExpressions
public SubExprNameExtractionResult getSubExpressions()
- See Also:
subExpressions
-
visit
public void visit(ASTExpression expr)
Default implementation that marks an expression as *not* being a name part. This marking will be ignored if the expression indeed represents a valid name. UseSubExprNameExtractionResult.putNameAtStart(ASTExpression, String)onsubExpressionsin the visit implementations of the expressions representing names to overwrite this "invalidity" marking.- Specified by:
visitin interfaceExpressionsBasisVisitor2
-
visit
public void visit(ASTFieldAccessExpression expr)
- Specified by:
visitin interfaceCommonExpressionsVisitor2
-
visit
public void visit(ASTNameExpression expr)
- Specified by:
visitin interfaceExpressionsBasisVisitor2
-
-