diff --git a/src/main/java/org/sablecc/sablecc/node/Node.java b/src/main/java/org/sablecc/sablecc/node/Node.java index 816c105ac6f3fceb47930e0fdf8186167b3c7cb0..f37caa17aa10369ec626ddc9a28edc095347f5e2 100644 --- a/src/main/java/org/sablecc/sablecc/node/Node.java +++ b/src/main/java/org/sablecc/sablecc/node/Node.java @@ -2,17 +2,19 @@ package org.sablecc.sablecc.node; -import java.util.*; +import java.util.LinkedList; +import java.util.List; + import de.hhu.stups.sablecc.patch.PositionedNode; public abstract class Node extends PositionedNode implements Switchable, Cloneable { private Node parent; - public Node() + protected Node() {} - public Node(Node node) + protected Node(Node node) { super(node); // Copy constructor intentionally does not keep parent! @@ -41,7 +43,7 @@ public abstract class Node extends PositionedNode implements Switchable, Cloneab this.parent.replaceChild(this, node); } - protected String toString(Node node) + protected static String toString(Node node) { if(node != null) { @@ -51,9 +53,9 @@ public abstract class Node extends PositionedNode implements Switchable, Cloneab return ""; } - protected String toString(List<?> list) + protected static String toString(List<?> list) { - StringBuffer s = new StringBuffer(); + StringBuilder s = new StringBuilder(); for(Object o : list) { @@ -64,7 +66,7 @@ public abstract class Node extends PositionedNode implements Switchable, Cloneab } @SuppressWarnings("unchecked") - protected <T extends Node> T cloneNode(T node) + protected static <T extends Node> T cloneNode(T node) { if(node != null) { @@ -75,7 +77,7 @@ public abstract class Node extends PositionedNode implements Switchable, Cloneab } @SuppressWarnings("unchecked") - protected <T extends Node> List<T> cloneList(List<T> list) + protected static <T extends Node> List<T> cloneList(List<T> list) { List<T> clone = new LinkedList<T>(); diff --git a/src/main/java/org/sablecc/sablecc/node/Token.java b/src/main/java/org/sablecc/sablecc/node/Token.java index 54631a1e1e8a664268881b61f64ee33e28f87ad7..bc0376a9cfbf59aabfc228576aa2befa4d6f9914 100644 --- a/src/main/java/org/sablecc/sablecc/node/Token.java +++ b/src/main/java/org/sablecc/sablecc/node/Token.java @@ -12,24 +12,24 @@ public abstract class Token extends Node implements IToken private int line; private int pos; - public Token(String text, int line, int pos) + protected Token(String text, int line, int pos) { this.text = text; this.line = line; this.pos = pos; } - public Token(String text) + protected Token(String text) { this(text, 0, 0); } - public Token() + protected Token() { this((String)null); } - public Token(Token token) + protected Token(Token token) { super(token); this.text = token.text; @@ -37,6 +37,9 @@ public abstract class Token extends Node implements IToken this.pos = token.pos; } + @Override + public abstract Token clone(); + @Override public String getText() { diff --git a/src/main/resources/org/sablecc/sablecc/utils.txt b/src/main/resources/org/sablecc/sablecc/utils.txt index 9c698dc3d793b18590b2454355485aa8279bb159..13ce65183810bdd68b5171378238c8e11090b6e0 100644 --- a/src/main/resources/org/sablecc/sablecc/utils.txt +++ b/src/main/resources/org/sablecc/sablecc/utils.txt @@ -201,24 +201,24 @@ public abstract class Token extends Node implements IToken private int line; private int pos; - public Token(String text, int line, int pos) + protected Token(String text, int line, int pos) { this.text = text; this.line = line; this.pos = pos; } - public Token(String text) + protected Token(String text) { this(text, 0, 0); } - public Token() + protected Token() { this((String)null); } - public Token(Token token) + protected Token(Token token) { super(token); this.text = token.text; @@ -226,6 +226,9 @@ public abstract class Token extends Node implements IToken this.pos = token.pos; } + @Override + public abstract Token clone(); + @Override public String getText() { @@ -323,17 +326,19 @@ Macro:Node package $0$; -import java.util.*; +import java.util.LinkedList; +import java.util.List; + import de.hhu.stups.sablecc.patch.PositionedNode; public abstract class Node extends PositionedNode implements Switchable, Cloneable { private Node parent; - public Node() + protected Node() {} - public Node(Node node) + protected Node(Node node) { super(node); // Copy constructor intentionally does not keep parent! @@ -362,7 +367,7 @@ public abstract class Node extends PositionedNode implements Switchable, Cloneab this.parent.replaceChild(this, node); } - protected String toString(Node node) + protected static String toString(Node node) { if(node != null) { @@ -372,9 +377,9 @@ public abstract class Node extends PositionedNode implements Switchable, Cloneab return ""; } - protected String toString(List<?> list) + protected static String toString(List<?> list) { - StringBuffer s = new StringBuffer(); + StringBuilder s = new StringBuilder(); for(Object o : list) { @@ -385,7 +390,7 @@ public abstract class Node extends PositionedNode implements Switchable, Cloneab } @SuppressWarnings("unchecked") - protected <T extends Node> T cloneNode(T node) + protected static <T extends Node> T cloneNode(T node) { if(node != null) { @@ -396,7 +401,7 @@ public abstract class Node extends PositionedNode implements Switchable, Cloneab } @SuppressWarnings("unchecked") - protected <T extends Node> List<T> cloneList(List<T> list) + protected static <T extends Node> List<T> cloneList(List<T> list) { List<T> clone = new LinkedList<T>();