Package de.monticore.grammar.cocos
Class NoNestedGenericsInAdditionalAttributes
java.lang.Object
de.monticore.grammar.cocos.NoNestedGenericsInAdditionalAttributes
- All Implemented Interfaces:
GrammarASTMCGrammarCoCo,GrammarVisitor2,de.monticore.visitor.IVisitor
public class NoNestedGenericsInAdditionalAttributes
extends Object
implements GrammarASTMCGrammarCoCo
CoCo that checks if in a additional attribute of an astrule, symbolrule or scoperule a generic type does not contain a MCCustomTypeArgument
with the *,+,? and min, max notation this can be created in different ways
these cases are covered e.g.:
A<B<C>>
A<B>*, A<B>+, A<B>?
A<B> min = 0, A<B> max = 5, A<B> max = *
because these cases cannot be handled in the generator so far and will generate the wrong type-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidcheck(ASTMCGrammar node) protected voidfindMultipleGenericAttributes(List<ASTAdditionalAttribute> astAdditionalAttributes, String ruleName, String grammarName, String prodName) protected booleanhasGenericIteration(ASTAdditionalAttribute astAdditionalAttribute) for e.g.protected booleanhasGenericMaxValue(ASTAdditionalAttribute astAdditionalAttribute) for e.g.protected booleanhasNestedGeneric(ASTMCType mcType) for e.g.protected voidlogError(String ruleName, String grammarName, String prodName, ASTAdditionalAttribute astAdditionalAttribute) protected StringprintASTAdditionalAttribute(ASTAdditionalAttribute astAdditionalAttribute) Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface de.monticore.grammar.grammar._cocos.GrammarASTMCGrammarCoCo
visitMethods inherited from interface de.monticore.grammar.grammar._visitor.GrammarVisitor2
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, 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, 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, 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, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visitMethods inherited from interface de.monticore.visitor.IVisitor
endVisit, endVisit, endVisit, endVisit, visit, visit, visit, visit
-
Field Details
-
ERROR_CODE
- See Also:
-
ERROR_MSG_FORMAT
- See Also:
-
-
Constructor Details
-
NoNestedGenericsInAdditionalAttributes
public NoNestedGenericsInAdditionalAttributes()
-
-
Method Details
-
check
- Specified by:
checkin interfaceGrammarASTMCGrammarCoCo
-
findMultipleGenericAttributes
protected void findMultipleGenericAttributes(List<ASTAdditionalAttribute> astAdditionalAttributes, String ruleName, String grammarName, String prodName) -
hasNestedGeneric
for e.g.A<B<C>> -
hasGenericIteration
for e.g.A<B>*,A<B>+,A<B>? -
hasGenericMaxValue
for e.g.A<B> min=0,A<B> max=2,A<B> max=* -
logError
protected void logError(String ruleName, String grammarName, String prodName, ASTAdditionalAttribute astAdditionalAttribute) -
printASTAdditionalAttribute
-