- public Tree(Token.Location loc, T head) { this(loc, head, null); }
- public Tree(Token.Location loc, T head, Tree<T>[] children) {
+ /** get the input region that this tree was parsed from */
+ public Input.Region getRegion() { return location; }
+
+ public Tree(Input.Region loc, NodeType head) { this(loc, head, null); }
+ public Tree(Input.Region loc, NodeType head, Tree<NodeType>[] children) { this(loc, head, children, false); }
+
+ // FIXME: fairly inefficient because we keep copying arrays
+ /** package-private constructor, allows setting the "lift" bit */
+ Tree(Input.Region loc, NodeType head, Tree<NodeType>[] children, boolean lift) {