diff --git a/prism/src/parser/ast/Module.java b/prism/src/parser/ast/Module.java index 1dc84ab1..696c4a5f 100644 --- a/prism/src/parser/ast/Module.java +++ b/prism/src/parser/ast/Module.java @@ -43,6 +43,8 @@ public class Module extends ASTElement private ArrayList commands; // Parent ModulesFile private ModulesFile parent; + // Base module (if was constructed through renaming) + private String baseModule; // Constructor @@ -51,6 +53,8 @@ public class Module extends ASTElement name = n; decls = new ArrayList(); commands = new ArrayList(); + parent = null; + baseModule = null; } // Set methods @@ -92,6 +96,11 @@ public class Module extends ASTElement parent = mf; } + public void setBaseModule(String b) + { + baseModule = b; + } + // Get methods public String getName() @@ -129,6 +138,11 @@ public class Module extends ASTElement return parent; } + public String getBaseModule() + { + return baseModule; + } + public Vector getAllSynchs() { int i, n; diff --git a/prism/src/parser/ast/ModulesFile.java b/prism/src/parser/ast/ModulesFile.java index b69f0499..a02ecd8e 100644 --- a/prism/src/parser/ast/ModulesFile.java +++ b/prism/src/parser/ast/ModulesFile.java @@ -433,8 +433,10 @@ public class ModulesFile extends ASTElement } } // Then rename (a copy of) base module and replace + // (note: also store name of base module for later reference) newModule = (Module) getModule(j).deepCopy().rename(module); newModule.setNameASTElement(module.getNameASTElement()); + newModule.setBaseModule(module.getBaseModule()); setModule(i, newModule); } }