From c06b09a0e513074341d743a06f77cbe062e6959f Mon Sep 17 00:00:00 2001 From: dgelessus <dgelessus@users.noreply.github.com> Date: Wed, 20 Apr 2022 13:23:59 +0200 Subject: [PATCH] Improve a few minor things in Node and Token templates --- .../java/org/sablecc/sablecc/node/Node.java | 18 +++++++----- .../java/org/sablecc/sablecc/node/Token.java | 11 ++++--- .../resources/org/sablecc/sablecc/utils.txt | 29 +++++++++++-------- 3 files changed, 34 insertions(+), 24 deletions(-) diff --git a/src/main/java/org/sablecc/sablecc/node/Node.java b/src/main/java/org/sablecc/sablecc/node/Node.java index 816c105..f37caa1 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 54631a1..bc0376a 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 9c698dc..13ce651 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>(); -- GitLab