diff options
author | Kenny Ballou <kballou@devnulllabs.io> | 2018-11-19 22:59:50 -0700 |
---|---|---|
committer | Kenny Ballou <kballou@devnulllabs.io> | 2018-11-19 22:59:50 -0700 |
commit | ea3e1b949dcbdc09518f17eee0bcf21d41d76896 (patch) | |
tree | 7ec7a7fb4df67815a9b7bb0e4d95d67c4050e2a2 /src/main/java/io/devnulllabs/openjava/ptree/Variable.java | |
download | openjava-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.java | 58 |
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); + } + +} |