diff --git a/monticore-generator/src/main/resources/dstlgen/rule2od/ComponentLists.ftl b/monticore-generator/src/main/resources/dstlgen/rule2od/ComponentLists.ftl index 4642da4f62..54fb727a04 100644 --- a/monticore-generator/src/main/resources/dstlgen/rule2od/ComponentLists.ftl +++ b/monticore-generator/src/main/resources/dstlgen/rule2od/ComponentLists.ftl @@ -4,7 +4,11 @@ <#assign Type = attributeHelper.getType(ast)> <#assign typePackage = attributeHelper.getTypePackage(ast)> <#assign isAttributeOptional = attributeHelper.isAttributeOptional(ast)> - <#assign fullType = typePackage?remove_ending(".tr") + "." + attributeHelper.getTypeGrammarName(ast) + "._ast.AST" + Type > + <#if typePackage == "tr"> + <#assign fullType = attributeHelper.getTypeGrammarName(ast) + "._ast.AST" + Type > + <#else> + <#assign fullType = typePackage?remove_ending(".tr") + "." + attributeHelper.getTypeGrammarName(ast) + "._ast.AST" + Type > + <#if attributeHelper.isAttributeExternal(ast)> <#assign fullType = fullType + "Ext" > diff --git a/monticore-grammar/src/main/java/de/monticore/tf/odrules/ChangeOperationFactory.java b/monticore-grammar/src/main/java/de/monticore/tf/odrules/ChangeOperationFactory.java index 37b111cb39..8594767298 100644 --- a/monticore-grammar/src/main/java/de/monticore/tf/odrules/ChangeOperationFactory.java +++ b/monticore-grammar/src/main/java/de/monticore/tf/odrules/ChangeOperationFactory.java @@ -595,9 +595,13 @@ private ASTDeleteOperation createDelete(ASTMCType type, String variableName, boo builder.setList(isListObject); builder.setSimpleType(simpleType); builder.setGrammarType(simpleType.substring(3)); + + String packagePrefix = rule.getGrammarPackageName(); + if (!packagePrefix.isEmpty()) { + packagePrefix = packagePrefix + "."; + } - builder.setTypepackage(rule.getGrammarPackageName() + - "." + rule.getGrammarName().toLowerCase() + "._ast"); + builder.setTypepackage(packagePrefix + rule.getGrammarName().toLowerCase() + "._ast"); return builder.build(); } @@ -612,8 +616,12 @@ private ASTCreateOperation createCreate(ASTMCType type, String variable, boolean builder.setType(typeName); builder.setSimpleType(simpleType); - builder.setFactoryName(rule.getGrammarPackageName() - + "." + rule.getGrammarName().toLowerCase() + String packagePrefix = rule.getGrammarPackageName(); + if (!packagePrefix.isEmpty()) { + packagePrefix = packagePrefix + "."; + } + + builder.setFactoryName(packagePrefix + rule.getGrammarName().toLowerCase() + "." + rule.getGrammarName() + "Mill");