summaryrefslogtreecommitdiff
path: root/src/main/java/io/devnulllabs/openjava/ptree/Variable.java
diff options
context:
space:
mode:
authorKenny Ballou <kballou@devnulllabs.io>2018-11-19 22:59:50 -0700
committerKenny Ballou <kballou@devnulllabs.io>2018-11-19 22:59:50 -0700
commitea3e1b949dcbdc09518f17eee0bcf21d41d76896 (patch)
tree7ec7a7fb4df67815a9b7bb0e4d95d67c4050e2a2 /src/main/java/io/devnulllabs/openjava/ptree/Variable.java
downloadopenjava-ea3e1b949dcbdc09518f17eee0bcf21d41d76896.tar.gz
openjava-ea3e1b949dcbdc09518f17eee0bcf21d41d76896.tar.xz
OJ (aka OpenJava) modernization/mirroring
Signed-off-by: Kenny Ballou <kballou@devnulllabs.io>
Diffstat (limited to 'src/main/java/io/devnulllabs/openjava/ptree/Variable.java')
-rw-r--r--src/main/java/io/devnulllabs/openjava/ptree/Variable.java58
1 files changed, 58 insertions, 0 deletions
diff --git a/src/main/java/io/devnulllabs/openjava/ptree/Variable.java b/src/main/java/io/devnulllabs/openjava/ptree/Variable.java
new file mode 100644
index 0000000..cca642f
--- /dev/null
+++ b/src/main/java/io/devnulllabs/openjava/ptree/Variable.java
@@ -0,0 +1,58 @@
+/*
+ * Variable.java 1.0
+ *
+ * This interface is made to type ptree-node into the type
+ * specifier in the body of class.
+ *
+ * Jun 20, 1997 by mich
+ * Sep 29, 1997 by bv
+ * Oct 11, 1997 by mich
+ * Dec 27, 1998 by mich
+ *
+ * @see io.devnulllabs.openjava.ptree.ParseTree
+ * @version 1.0 last updated: Oct 11, 1997
+ * @author Michiaki Tatsubori
+ */
+package io.devnulllabs.openjava.ptree;
+
+import io.devnulllabs.openjava.mop.Environment;
+import io.devnulllabs.openjava.mop.OJClass;
+import io.devnulllabs.openjava.ptree.util.ParseTreeVisitor;
+
+/**
+ * The <code>Variable</code> class represents a type specifier
+ * node of parse tree.
+ *
+ * @see io.devnulllabs.openjava.ptree.ParseTree
+ * @see io.devnulllabs.openjava.ptree.NonLeaf
+ */
+public class Variable extends Leaf implements Expression {
+ private static int variableID = 0;
+
+ /**
+ * Allocates a new object.
+ *
+ * @param name name of variable
+ */
+ public Variable(String name) {
+ super(name);
+ }
+
+ public OJClass getType(Environment env) throws Exception {
+ return env.lookupBind(toString());
+ }
+
+ /**
+ * Generates an uniquely named variable
+ */
+ public static Variable generateUniqueVariable() {
+ String name = "oj_var" + variableID;
+ ++variableID;
+ return new Variable(name);
+ }
+
+ public void accept(ParseTreeVisitor v) throws ParseTreeException {
+ v.visit(this);
+ }
+
+}