diff options
author | Iru Cai <mytbk920423@gmail.com> | 2014-10-08 21:15:43 +0800 |
---|---|---|
committer | Iru Cai <mytbk920423@gmail.com> | 2014-10-08 21:15:43 +0800 |
commit | 748308e11e6791284b302f61e5bc0d99a0957b6a (patch) | |
tree | 31b88d40d043f39d54ab90393656300656aaa209 /src/kanga/syntaxtree/NodeOptional.java | |
download | minijava-748308e11e6791284b302f61e5bc0d99a0957b6a.tar.xz |
First commit
Diffstat (limited to 'src/kanga/syntaxtree/NodeOptional.java')
-rw-r--r-- | src/kanga/syntaxtree/NodeOptional.java | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/src/kanga/syntaxtree/NodeOptional.java b/src/kanga/syntaxtree/NodeOptional.java new file mode 100644 index 0000000..5f60850 --- /dev/null +++ b/src/kanga/syntaxtree/NodeOptional.java @@ -0,0 +1,41 @@ +// +// Generated by JTB 1.3.2 +//
+
+package kanga.syntaxtree; + +/** + * Represents an grammar optional node, e.g. ( A )? or [ A ] + */ +public class NodeOptional implements Node { + public NodeOptional() { + node = null; + } + + public NodeOptional(Node n) { + addNode(n); + } + + public void addNode(Node n) { + if ( node != null) // Oh oh! + throw new Error("Attempt to set optional node twice"); + + node = n; + } + public void accept(kanga.visitor.Visitor v) { + v.visit(this); + } + public <R,A> R accept(kanga.visitor.GJVisitor<R,A> v, A argu) { + return v.visit(this,argu); + } + public <R> R accept(kanga.visitor.GJNoArguVisitor<R> v) { + return v.visit(this); + } + public <A> void accept(kanga.visitor.GJVoidVisitor<A> v, A argu) { + v.visit(this,argu); + } + public boolean present() { return node != null; } + + public Node node; +} +
|