Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeffrey Overbey2008-07-22 20:15:17 +0000
committerJeffrey Overbey2008-07-22 20:15:17 +0000
commit0e557bfc793878e2edbf7eea6ec9c3e401ff5c49 (patch)
tree83b8771ed64adcea1c8aa6d5a2514d8d08188c5a
parent9d45c92e142a7be0b51338bc4c280d257c115d42 (diff)
downloadorg.eclipse.photran-0e557bfc793878e2edbf7eea6ec9c3e401ff5c49.tar.gz
org.eclipse.photran-0e557bfc793878e2edbf7eea6ec9c3e401ff5c49.tar.xz
org.eclipse.photran-0e557bfc793878e2edbf7eea6ec9c3e401ff5c49.zip
Added PARAMETER to attributes in Definition
-rw-r--r--org.eclipse.photran.core.vpg/src/org/eclipse/photran/internal/core/analysis/binding/Definition.java14
-rw-r--r--org.eclipse.photran.core.vpg/src/org/eclipse/photran/internal/core/analysis/binding/SpecificationCollector.java18
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);
+ }
+ }
}
}

Back to the top