diff options
author | Jeffrey Overbey | 2008-07-22 20:15:17 +0000 |
---|---|---|
committer | Jeffrey Overbey | 2008-07-22 20:15:17 +0000 |
commit | 0e557bfc793878e2edbf7eea6ec9c3e401ff5c49 (patch) | |
tree | 83b8771ed64adcea1c8aa6d5a2514d8d08188c5a | |
parent | 9d45c92e142a7be0b51338bc4c280d257c115d42 (diff) | |
download | org.eclipse.photran-0e557bfc793878e2edbf7eea6ec9c3e401ff5c49.tar.gz org.eclipse.photran-0e557bfc793878e2edbf7eea6ec9c3e401ff5c49.tar.xz org.eclipse.photran-0e557bfc793878e2edbf7eea6ec9c3e401ff5c49.zip |
Added PARAMETER to attributes in Definition
2 files changed, 31 insertions, 1 deletions
diff --git a/org.eclipse.photran.core.vpg/src/org/eclipse/photran/internal/core/analysis/binding/Definition.java b/org.eclipse.photran.core.vpg/src/org/eclipse/photran/internal/core/analysis/binding/Definition.java index 4b7e1fe1..e5cb7f6b 100644 --- a/org.eclipse.photran.core.vpg/src/org/eclipse/photran/internal/core/analysis/binding/Definition.java +++ b/org.eclipse.photran.core.vpg/src/org/eclipse/photran/internal/core/analysis/binding/Definition.java @@ -106,6 +106,7 @@ public class Definition implements Serializable, Comparable<Definition> protected ArraySpec arraySpec; private boolean subprogramArgument = false; + private boolean parameter = false; protected Definition() {} @@ -342,6 +343,8 @@ public class Definition implements Serializable, Comparable<Definition> setArraySpec(arraySpec); else if (accessSpec != null) setVisibility(accessSpec); + else if (attrSpec.isParameter()) + setParameter(); // TODO: Intent, etc. } @@ -359,6 +362,17 @@ public class Definition implements Serializable, Comparable<Definition> this.visibility = Visibility.PRIVATE; } + void setParameter() + { + this.parameter = true; + } + + /** @return true iff this entity was declared as a PARAMETER (i.e., it a constant variable) */ + public boolean isParameter() + { + return parameter; + } + boolean isPublic() { // TODO: Can interface blocks contain PRIVATE statements or can their members have visibilities specified? diff --git a/org.eclipse.photran.core.vpg/src/org/eclipse/photran/internal/core/analysis/binding/SpecificationCollector.java b/org.eclipse.photran.core.vpg/src/org/eclipse/photran/internal/core/analysis/binding/SpecificationCollector.java index 3daa9a77..13b86f9f 100644 --- a/org.eclipse.photran.core.vpg/src/org/eclipse/photran/internal/core/analysis/binding/SpecificationCollector.java +++ b/org.eclipse.photran.core.vpg/src/org/eclipse/photran/internal/core/analysis/binding/SpecificationCollector.java @@ -278,6 +278,22 @@ class SpecificationCollector extends BindingCollector IASTListNode<ASTNamedConstantDefNode> list = node.getNamedConstantDefList(); for (int i = 0; i < list.size(); i++) - bind(list.get(i).getNamedConstant()); + { + List<PhotranTokenRef> bindings = bind(list.get(i).getNamedConstant()); + + try + { + for (PhotranTokenRef tr : bindings) + { + Definition def = vpg.getDefinitionFor(tr); + def.setParameter(); + vpg.setDefinitionFor(tr, def); + } + } + catch (Exception e) + { + throw new Error(e); + } + } } } |