From 5f0d1ab24a85919dab3e427cebcbf1ded8d2da77 Mon Sep 17 00:00:00 2001 From: dgelessus <dgelessus@users.noreply.github.com> Date: Thu, 25 Apr 2024 15:15:14 +0200 Subject: [PATCH] Remove copy constructors from generated nodes again To prevent ambiguous constructor calls for alternatives that have exactly one child node from the same production. --- .../stups/sablecc/patch/PositionedNode.java | 13 +++++- .../java/org/sablecc/sablecc/node/AAlt.java | 15 +++---- .../sablecc/sablecc/node/AAltTransform.java | 15 +++---- .../java/org/sablecc/sablecc/node/AAst.java | 11 ++--- .../org/sablecc/sablecc/node/AAstAlt.java | 13 +++--- .../org/sablecc/sablecc/node/AAstProd.java | 13 +++--- .../org/sablecc/sablecc/node/ACharBasic.java | 11 ++--- .../org/sablecc/sablecc/node/ACharChar.java | 11 ++--- .../org/sablecc/sablecc/node/AConcat.java | 11 ++--- .../org/sablecc/sablecc/node/ADecChar.java | 11 ++--- .../java/org/sablecc/sablecc/node/AElem.java | 17 ++++---- .../org/sablecc/sablecc/node/AGrammar.java | 23 +++++----- .../org/sablecc/sablecc/node/AHelperDef.java | 13 +++--- .../org/sablecc/sablecc/node/AHelpers.java | 11 ++--- .../org/sablecc/sablecc/node/AHexChar.java | 11 ++--- .../org/sablecc/sablecc/node/AIdBasic.java | 11 ++--- .../org/sablecc/sablecc/node/AIgnTokens.java | 11 ++--- .../sablecc/sablecc/node/AIntervalSet.java | 13 +++--- .../org/sablecc/sablecc/node/AListTerm.java | 13 +++--- .../org/sablecc/sablecc/node/AMinusBinOp.java | 9 ++-- .../sablecc/sablecc/node/ANewListTerm.java | 15 +++---- .../org/sablecc/sablecc/node/ANewTerm.java | 15 +++---- .../org/sablecc/sablecc/node/ANullTerm.java | 9 ++-- .../sablecc/sablecc/node/AOperationSet.java | 15 +++---- .../org/sablecc/sablecc/node/APlusBinOp.java | 9 ++-- .../org/sablecc/sablecc/node/APlusUnOp.java | 11 ++--- .../java/org/sablecc/sablecc/node/AProd.java | 17 ++++---- .../org/sablecc/sablecc/node/AProdName.java | 13 +++--- .../sablecc/node/AProductionSpecifier.java | 9 ++-- .../sablecc/sablecc/node/AProductions.java | 11 ++--- .../org/sablecc/sablecc/node/AQMarkUnOp.java | 11 ++--- .../org/sablecc/sablecc/node/ARegExp.java | 11 ++--- .../sablecc/sablecc/node/ARegExpBasic.java | 11 ++--- .../org/sablecc/sablecc/node/ASetBasic.java | 11 ++--- .../sablecc/sablecc/node/ASimpleListTerm.java | 15 +++---- .../org/sablecc/sablecc/node/ASimpleTerm.java | 15 +++---- .../org/sablecc/sablecc/node/AStarUnOp.java | 11 ++--- .../org/sablecc/sablecc/node/AStateList.java | 15 +++---- .../sablecc/sablecc/node/AStateListTail.java | 13 +++--- .../org/sablecc/sablecc/node/AStates.java | 11 ++--- .../sablecc/sablecc/node/AStringBasic.java | 11 ++--- .../org/sablecc/sablecc/node/ATokenDef.java | 19 ++++----- .../sablecc/sablecc/node/ATokenSpecifier.java | 9 ++-- .../org/sablecc/sablecc/node/ATokens.java | 11 ++--- .../org/sablecc/sablecc/node/ATransition.java | 11 ++--- .../java/org/sablecc/sablecc/node/AUnExp.java | 13 +++--- .../java/org/sablecc/sablecc/node/EOF.java | 9 ++-- .../java/org/sablecc/sablecc/node/Node.java | 10 +---- .../java/org/sablecc/sablecc/node/PAlt.java | 5 --- .../sablecc/sablecc/node/PAltTransform.java | 5 --- .../java/org/sablecc/sablecc/node/PAst.java | 5 --- .../org/sablecc/sablecc/node/PAstAlt.java | 5 --- .../org/sablecc/sablecc/node/PAstProd.java | 5 --- .../java/org/sablecc/sablecc/node/PBasic.java | 5 --- .../java/org/sablecc/sablecc/node/PBinOp.java | 5 --- .../java/org/sablecc/sablecc/node/PChar.java | 5 --- .../org/sablecc/sablecc/node/PConcat.java | 5 --- .../java/org/sablecc/sablecc/node/PElem.java | 5 --- .../org/sablecc/sablecc/node/PGrammar.java | 5 --- .../org/sablecc/sablecc/node/PHelperDef.java | 5 --- .../org/sablecc/sablecc/node/PHelpers.java | 5 --- .../org/sablecc/sablecc/node/PIgnTokens.java | 5 --- .../org/sablecc/sablecc/node/PListTerm.java | 5 --- .../java/org/sablecc/sablecc/node/PProd.java | 5 --- .../org/sablecc/sablecc/node/PProdName.java | 5 --- .../sablecc/sablecc/node/PProductions.java | 5 --- .../org/sablecc/sablecc/node/PRegExp.java | 5 --- .../java/org/sablecc/sablecc/node/PSet.java | 5 --- .../org/sablecc/sablecc/node/PSpecifier.java | 5 --- .../org/sablecc/sablecc/node/PStateList.java | 5 --- .../sablecc/sablecc/node/PStateListTail.java | 5 --- .../org/sablecc/sablecc/node/PStates.java | 5 --- .../java/org/sablecc/sablecc/node/PTerm.java | 5 --- .../org/sablecc/sablecc/node/PTokenDef.java | 5 --- .../org/sablecc/sablecc/node/PTokens.java | 5 --- .../org/sablecc/sablecc/node/PTransition.java | 5 --- .../java/org/sablecc/sablecc/node/PUnExp.java | 5 --- .../java/org/sablecc/sablecc/node/PUnOp.java | 5 --- .../java/org/sablecc/sablecc/node/Start.java | 13 +++--- .../org/sablecc/sablecc/node/TAbstract.java | 9 ++-- .../java/org/sablecc/sablecc/node/TArrow.java | 9 ++-- .../java/org/sablecc/sablecc/node/TBar.java | 9 ++-- .../java/org/sablecc/sablecc/node/TBlank.java | 9 ++-- .../java/org/sablecc/sablecc/node/TChar.java | 9 ++-- .../java/org/sablecc/sablecc/node/TColon.java | 9 ++-- .../java/org/sablecc/sablecc/node/TComma.java | 9 ++-- .../org/sablecc/sablecc/node/TComment.java | 9 ++-- .../java/org/sablecc/sablecc/node/TDDot.java | 9 ++-- .../org/sablecc/sablecc/node/TDecChar.java | 9 ++-- .../java/org/sablecc/sablecc/node/TDot.java | 9 ++-- .../java/org/sablecc/sablecc/node/TEqual.java | 9 ++-- .../org/sablecc/sablecc/node/THelpers.java | 9 ++-- .../org/sablecc/sablecc/node/THexChar.java | 9 ++-- .../java/org/sablecc/sablecc/node/TId.java | 9 ++-- .../org/sablecc/sablecc/node/TIgnored.java | 9 ++-- .../java/org/sablecc/sablecc/node/TLBkt.java | 9 ++-- .../org/sablecc/sablecc/node/TLBrace.java | 9 ++-- .../java/org/sablecc/sablecc/node/TLPar.java | 9 ++-- .../java/org/sablecc/sablecc/node/TMinus.java | 9 ++-- .../java/org/sablecc/sablecc/node/TNew.java | 9 ++-- .../java/org/sablecc/sablecc/node/TNull.java | 9 ++-- .../org/sablecc/sablecc/node/TPackage.java | 9 ++-- .../java/org/sablecc/sablecc/node/TPkgId.java | 9 ++-- .../java/org/sablecc/sablecc/node/TPlus.java | 9 ++-- .../sablecc/node/TProductionSpecifier.java | 9 ++-- .../sablecc/sablecc/node/TProductions.java | 9 ++-- .../java/org/sablecc/sablecc/node/TQMark.java | 9 ++-- .../java/org/sablecc/sablecc/node/TRBkt.java | 9 ++-- .../org/sablecc/sablecc/node/TRBrace.java | 9 ++-- .../java/org/sablecc/sablecc/node/TRPar.java | 9 ++-- .../org/sablecc/sablecc/node/TSemicolon.java | 9 ++-- .../java/org/sablecc/sablecc/node/TSlash.java | 9 ++-- .../java/org/sablecc/sablecc/node/TStar.java | 9 ++-- .../org/sablecc/sablecc/node/TStates.java | 9 ++-- .../org/sablecc/sablecc/node/TString.java | 9 ++-- .../org/sablecc/sablecc/node/TSyntax.java | 9 ++-- .../sablecc/sablecc/node/TTokenSpecifier.java | 9 ++-- .../org/sablecc/sablecc/node/TTokens.java | 9 ++-- .../java/org/sablecc/sablecc/node/TTree.java | 9 ++-- .../java/org/sablecc/sablecc/node/Token.java | 10 +---- .../org/sablecc/sablecc/alternatives.txt | 17 ++++---- .../org/sablecc/sablecc/productions.txt | 5 --- .../resources/org/sablecc/sablecc/tokens.txt | 18 +++----- .../resources/org/sablecc/sablecc/utils.txt | 42 +++++-------------- 124 files changed, 381 insertions(+), 831 deletions(-) diff --git a/sablecc-runtime/src/main/java/de/hhu/stups/sablecc/patch/PositionedNode.java b/sablecc-runtime/src/main/java/de/hhu/stups/sablecc/patch/PositionedNode.java index dea3bfe..ecd166a 100644 --- a/sablecc-runtime/src/main/java/de/hhu/stups/sablecc/patch/PositionedNode.java +++ b/sablecc-runtime/src/main/java/de/hhu/stups/sablecc/patch/PositionedNode.java @@ -19,8 +19,17 @@ public class PositionedNode { this(null, null); } - public PositionedNode(final PositionedNode node) { - this(node.startPos, node.endPos); + /** + * Copies the {@link SourcePosition}s from the given node to this node. + * This is an internal helper method for use in {@link Object#clone()} implementations. + * + * @param node the node from which to copy the source positions + */ + protected final void initSourcePositionsFrom(PositionedNode node) { + // Intentionally do not use the accessors (getStartPos, getEndPos) here + // so that cloning a Token does not trigger lazy creation of SourcePosition objects. + this.startPos = node.startPos; + this.endPos = node.endPos; } public SourcePosition getStartPos() { diff --git a/src/main/java/org/sablecc/sablecc/node/AAlt.java b/src/main/java/org/sablecc/sablecc/node/AAlt.java index 868516d..85c748f 100644 --- a/src/main/java/org/sablecc/sablecc/node/AAlt.java +++ b/src/main/java/org/sablecc/sablecc/node/AAlt.java @@ -31,18 +31,15 @@ public final class AAlt extends PAlt } - public AAlt(AAlt node) - { - super(node); - setAltName(cloneNode(node._altName_)); - setElems(cloneList(node._elems_)); - setAltTransform(cloneNode(node._altTransform_)); - } - @Override public AAlt clone() { - return new AAlt(this); + AAlt cloned = new AAlt(); + cloned.setAltName(cloneNode(this._altName_)); + cloned.setElems(cloneList(this._elems_)); + cloned.setAltTransform(cloneNode(this._altTransform_)); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/AAltTransform.java b/src/main/java/org/sablecc/sablecc/node/AAltTransform.java index 7a3711c..d6e9126 100644 --- a/src/main/java/org/sablecc/sablecc/node/AAltTransform.java +++ b/src/main/java/org/sablecc/sablecc/node/AAltTransform.java @@ -31,18 +31,15 @@ public final class AAltTransform extends PAltTransform } - public AAltTransform(AAltTransform node) - { - super(node); - setLBrace(cloneNode(node._lBrace_)); - setTerms(cloneList(node._terms_)); - setRBrace(cloneNode(node._rBrace_)); - } - @Override public AAltTransform clone() { - return new AAltTransform(this); + AAltTransform cloned = new AAltTransform(); + cloned.setLBrace(cloneNode(this._lBrace_)); + cloned.setTerms(cloneList(this._terms_)); + cloned.setRBrace(cloneNode(this._rBrace_)); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/AAst.java b/src/main/java/org/sablecc/sablecc/node/AAst.java index a0c94e0..b373a77 100644 --- a/src/main/java/org/sablecc/sablecc/node/AAst.java +++ b/src/main/java/org/sablecc/sablecc/node/AAst.java @@ -23,16 +23,13 @@ public final class AAst extends PAst } - public AAst(AAst node) - { - super(node); - setProds(cloneList(node._prods_)); - } - @Override public AAst clone() { - return new AAst(this); + AAst cloned = new AAst(); + cloned.setProds(cloneList(this._prods_)); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/AAstAlt.java b/src/main/java/org/sablecc/sablecc/node/AAstAlt.java index e08e5cf..1e7afed 100644 --- a/src/main/java/org/sablecc/sablecc/node/AAstAlt.java +++ b/src/main/java/org/sablecc/sablecc/node/AAstAlt.java @@ -27,17 +27,14 @@ public final class AAstAlt extends PAstAlt } - public AAstAlt(AAstAlt node) - { - super(node); - setAltName(cloneNode(node._altName_)); - setElems(cloneList(node._elems_)); - } - @Override public AAstAlt clone() { - return new AAstAlt(this); + AAstAlt cloned = new AAstAlt(); + cloned.setAltName(cloneNode(this._altName_)); + cloned.setElems(cloneList(this._elems_)); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/AAstProd.java b/src/main/java/org/sablecc/sablecc/node/AAstProd.java index aaa856e..5c15b3d 100644 --- a/src/main/java/org/sablecc/sablecc/node/AAstProd.java +++ b/src/main/java/org/sablecc/sablecc/node/AAstProd.java @@ -27,17 +27,14 @@ public final class AAstProd extends PAstProd } - public AAstProd(AAstProd node) - { - super(node); - setId(cloneNode(node._id_)); - setAlts(cloneList(node._alts_)); - } - @Override public AAstProd clone() { - return new AAstProd(this); + AAstProd cloned = new AAstProd(); + cloned.setId(cloneNode(this._id_)); + cloned.setAlts(cloneList(this._alts_)); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/ACharBasic.java b/src/main/java/org/sablecc/sablecc/node/ACharBasic.java index 925d938..30775a7 100644 --- a/src/main/java/org/sablecc/sablecc/node/ACharBasic.java +++ b/src/main/java/org/sablecc/sablecc/node/ACharBasic.java @@ -19,16 +19,13 @@ public final class ACharBasic extends PBasic } - public ACharBasic(ACharBasic node) - { - super(node); - setChar(cloneNode(node._char_)); - } - @Override public ACharBasic clone() { - return new ACharBasic(this); + ACharBasic cloned = new ACharBasic(); + cloned.setChar(cloneNode(this._char_)); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/ACharChar.java b/src/main/java/org/sablecc/sablecc/node/ACharChar.java index 188050b..e8c8e61 100644 --- a/src/main/java/org/sablecc/sablecc/node/ACharChar.java +++ b/src/main/java/org/sablecc/sablecc/node/ACharChar.java @@ -19,16 +19,13 @@ public final class ACharChar extends PChar } - public ACharChar(ACharChar node) - { - super(node); - setChar(cloneNode(node._char_)); - } - @Override public ACharChar clone() { - return new ACharChar(this); + ACharChar cloned = new ACharChar(); + cloned.setChar(cloneNode(this._char_)); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/AConcat.java b/src/main/java/org/sablecc/sablecc/node/AConcat.java index 1ade31e..c83c0f7 100644 --- a/src/main/java/org/sablecc/sablecc/node/AConcat.java +++ b/src/main/java/org/sablecc/sablecc/node/AConcat.java @@ -23,16 +23,13 @@ public final class AConcat extends PConcat } - public AConcat(AConcat node) - { - super(node); - setUnExps(cloneList(node._unExps_)); - } - @Override public AConcat clone() { - return new AConcat(this); + AConcat cloned = new AConcat(); + cloned.setUnExps(cloneList(this._unExps_)); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/ADecChar.java b/src/main/java/org/sablecc/sablecc/node/ADecChar.java index e2743bd..41091bf 100644 --- a/src/main/java/org/sablecc/sablecc/node/ADecChar.java +++ b/src/main/java/org/sablecc/sablecc/node/ADecChar.java @@ -19,16 +19,13 @@ public final class ADecChar extends PChar } - public ADecChar(ADecChar node) - { - super(node); - setDecChar(cloneNode(node._decChar_)); - } - @Override public ADecChar clone() { - return new ADecChar(this); + ADecChar cloned = new ADecChar(); + cloned.setDecChar(cloneNode(this._decChar_)); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/AElem.java b/src/main/java/org/sablecc/sablecc/node/AElem.java index ef1d47c..5f9963f 100644 --- a/src/main/java/org/sablecc/sablecc/node/AElem.java +++ b/src/main/java/org/sablecc/sablecc/node/AElem.java @@ -31,19 +31,16 @@ public final class AElem extends PElem } - public AElem(AElem node) - { - super(node); - setElemName(cloneNode(node._elemName_)); - setSpecifier(cloneNode(node._specifier_)); - setId(cloneNode(node._id_)); - setUnOp(cloneNode(node._unOp_)); - } - @Override public AElem clone() { - return new AElem(this); + AElem cloned = new AElem(); + cloned.setElemName(cloneNode(this._elemName_)); + cloned.setSpecifier(cloneNode(this._specifier_)); + cloned.setId(cloneNode(this._id_)); + cloned.setUnOp(cloneNode(this._unOp_)); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/AGrammar.java b/src/main/java/org/sablecc/sablecc/node/AGrammar.java index 6a2cd2a..07f40c9 100644 --- a/src/main/java/org/sablecc/sablecc/node/AGrammar.java +++ b/src/main/java/org/sablecc/sablecc/node/AGrammar.java @@ -47,22 +47,19 @@ public final class AGrammar extends PGrammar } - public AGrammar(AGrammar node) - { - super(node); - setPackage(cloneList(node._package_)); - setHelpers(cloneNode(node._helpers_)); - setStates(cloneNode(node._states_)); - setTokens(cloneNode(node._tokens_)); - setIgnTokens(cloneNode(node._ignTokens_)); - setProductions(cloneNode(node._productions_)); - setAst(cloneNode(node._ast_)); - } - @Override public AGrammar clone() { - return new AGrammar(this); + AGrammar cloned = new AGrammar(); + cloned.setPackage(cloneList(this._package_)); + cloned.setHelpers(cloneNode(this._helpers_)); + cloned.setStates(cloneNode(this._states_)); + cloned.setTokens(cloneNode(this._tokens_)); + cloned.setIgnTokens(cloneNode(this._ignTokens_)); + cloned.setProductions(cloneNode(this._productions_)); + cloned.setAst(cloneNode(this._ast_)); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/AHelperDef.java b/src/main/java/org/sablecc/sablecc/node/AHelperDef.java index f19e5c7..0cea096 100644 --- a/src/main/java/org/sablecc/sablecc/node/AHelperDef.java +++ b/src/main/java/org/sablecc/sablecc/node/AHelperDef.java @@ -23,17 +23,14 @@ public final class AHelperDef extends PHelperDef } - public AHelperDef(AHelperDef node) - { - super(node); - setId(cloneNode(node._id_)); - setRegExp(cloneNode(node._regExp_)); - } - @Override public AHelperDef clone() { - return new AHelperDef(this); + AHelperDef cloned = new AHelperDef(); + cloned.setId(cloneNode(this._id_)); + cloned.setRegExp(cloneNode(this._regExp_)); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/AHelpers.java b/src/main/java/org/sablecc/sablecc/node/AHelpers.java index 772d6b8..1cae38c 100644 --- a/src/main/java/org/sablecc/sablecc/node/AHelpers.java +++ b/src/main/java/org/sablecc/sablecc/node/AHelpers.java @@ -23,16 +23,13 @@ public final class AHelpers extends PHelpers } - public AHelpers(AHelpers node) - { - super(node); - setHelperDefs(cloneList(node._helperDefs_)); - } - @Override public AHelpers clone() { - return new AHelpers(this); + AHelpers cloned = new AHelpers(); + cloned.setHelperDefs(cloneList(this._helperDefs_)); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/AHexChar.java b/src/main/java/org/sablecc/sablecc/node/AHexChar.java index bde57e7..9bba9d5 100644 --- a/src/main/java/org/sablecc/sablecc/node/AHexChar.java +++ b/src/main/java/org/sablecc/sablecc/node/AHexChar.java @@ -19,16 +19,13 @@ public final class AHexChar extends PChar } - public AHexChar(AHexChar node) - { - super(node); - setHexChar(cloneNode(node._hexChar_)); - } - @Override public AHexChar clone() { - return new AHexChar(this); + AHexChar cloned = new AHexChar(); + cloned.setHexChar(cloneNode(this._hexChar_)); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/AIdBasic.java b/src/main/java/org/sablecc/sablecc/node/AIdBasic.java index 565e320..7c39424 100644 --- a/src/main/java/org/sablecc/sablecc/node/AIdBasic.java +++ b/src/main/java/org/sablecc/sablecc/node/AIdBasic.java @@ -19,16 +19,13 @@ public final class AIdBasic extends PBasic } - public AIdBasic(AIdBasic node) - { - super(node); - setId(cloneNode(node._id_)); - } - @Override public AIdBasic clone() { - return new AIdBasic(this); + AIdBasic cloned = new AIdBasic(); + cloned.setId(cloneNode(this._id_)); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/AIgnTokens.java b/src/main/java/org/sablecc/sablecc/node/AIgnTokens.java index 5290ee2..cd72f33 100644 --- a/src/main/java/org/sablecc/sablecc/node/AIgnTokens.java +++ b/src/main/java/org/sablecc/sablecc/node/AIgnTokens.java @@ -23,16 +23,13 @@ public final class AIgnTokens extends PIgnTokens } - public AIgnTokens(AIgnTokens node) - { - super(node); - setListId(cloneList(node._listId_)); - } - @Override public AIgnTokens clone() { - return new AIgnTokens(this); + AIgnTokens cloned = new AIgnTokens(); + cloned.setListId(cloneList(this._listId_)); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/AIntervalSet.java b/src/main/java/org/sablecc/sablecc/node/AIntervalSet.java index 9bff5aa..2095404 100644 --- a/src/main/java/org/sablecc/sablecc/node/AIntervalSet.java +++ b/src/main/java/org/sablecc/sablecc/node/AIntervalSet.java @@ -23,17 +23,14 @@ public final class AIntervalSet extends PSet } - public AIntervalSet(AIntervalSet node) - { - super(node); - setLeft(cloneNode(node._left_)); - setRight(cloneNode(node._right_)); - } - @Override public AIntervalSet clone() { - return new AIntervalSet(this); + AIntervalSet cloned = new AIntervalSet(); + cloned.setLeft(cloneNode(this._left_)); + cloned.setRight(cloneNode(this._right_)); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/AListTerm.java b/src/main/java/org/sablecc/sablecc/node/AListTerm.java index bfa2c59..737a840 100644 --- a/src/main/java/org/sablecc/sablecc/node/AListTerm.java +++ b/src/main/java/org/sablecc/sablecc/node/AListTerm.java @@ -27,17 +27,14 @@ public final class AListTerm extends PTerm } - public AListTerm(AListTerm node) - { - super(node); - setLBkt(cloneNode(node._lBkt_)); - setListTerms(cloneList(node._listTerms_)); - } - @Override public AListTerm clone() { - return new AListTerm(this); + AListTerm cloned = new AListTerm(); + cloned.setLBkt(cloneNode(this._lBkt_)); + cloned.setListTerms(cloneList(this._listTerms_)); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/AMinusBinOp.java b/src/main/java/org/sablecc/sablecc/node/AMinusBinOp.java index fd1e1e5..38822d8 100644 --- a/src/main/java/org/sablecc/sablecc/node/AMinusBinOp.java +++ b/src/main/java/org/sablecc/sablecc/node/AMinusBinOp.java @@ -11,15 +11,12 @@ public final class AMinusBinOp extends PBinOp { } - public AMinusBinOp(AMinusBinOp node) - { - super(node); - } - @Override public AMinusBinOp clone() { - return new AMinusBinOp(this); + AMinusBinOp cloned = new AMinusBinOp(); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/ANewListTerm.java b/src/main/java/org/sablecc/sablecc/node/ANewListTerm.java index b2c151b..c630b91 100644 --- a/src/main/java/org/sablecc/sablecc/node/ANewListTerm.java +++ b/src/main/java/org/sablecc/sablecc/node/ANewListTerm.java @@ -31,18 +31,15 @@ public final class ANewListTerm extends PListTerm } - public ANewListTerm(ANewListTerm node) - { - super(node); - setProdName(cloneNode(node._prodName_)); - setLPar(cloneNode(node._lPar_)); - setParams(cloneList(node._params_)); - } - @Override public ANewListTerm clone() { - return new ANewListTerm(this); + ANewListTerm cloned = new ANewListTerm(); + cloned.setProdName(cloneNode(this._prodName_)); + cloned.setLPar(cloneNode(this._lPar_)); + cloned.setParams(cloneList(this._params_)); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/ANewTerm.java b/src/main/java/org/sablecc/sablecc/node/ANewTerm.java index 4fb329b..0c63475 100644 --- a/src/main/java/org/sablecc/sablecc/node/ANewTerm.java +++ b/src/main/java/org/sablecc/sablecc/node/ANewTerm.java @@ -31,18 +31,15 @@ public final class ANewTerm extends PTerm } - public ANewTerm(ANewTerm node) - { - super(node); - setProdName(cloneNode(node._prodName_)); - setLPar(cloneNode(node._lPar_)); - setParams(cloneList(node._params_)); - } - @Override public ANewTerm clone() { - return new ANewTerm(this); + ANewTerm cloned = new ANewTerm(); + cloned.setProdName(cloneNode(this._prodName_)); + cloned.setLPar(cloneNode(this._lPar_)); + cloned.setParams(cloneList(this._params_)); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/ANullTerm.java b/src/main/java/org/sablecc/sablecc/node/ANullTerm.java index e5846fc..a8fc22e 100644 --- a/src/main/java/org/sablecc/sablecc/node/ANullTerm.java +++ b/src/main/java/org/sablecc/sablecc/node/ANullTerm.java @@ -11,15 +11,12 @@ public final class ANullTerm extends PTerm { } - public ANullTerm(ANullTerm node) - { - super(node); - } - @Override public ANullTerm clone() { - return new ANullTerm(this); + ANullTerm cloned = new ANullTerm(); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/AOperationSet.java b/src/main/java/org/sablecc/sablecc/node/AOperationSet.java index fc8b1c3..5ea786b 100644 --- a/src/main/java/org/sablecc/sablecc/node/AOperationSet.java +++ b/src/main/java/org/sablecc/sablecc/node/AOperationSet.java @@ -27,18 +27,15 @@ public final class AOperationSet extends PSet } - public AOperationSet(AOperationSet node) - { - super(node); - setLeft(cloneNode(node._left_)); - setBinOp(cloneNode(node._binOp_)); - setRight(cloneNode(node._right_)); - } - @Override public AOperationSet clone() { - return new AOperationSet(this); + AOperationSet cloned = new AOperationSet(); + cloned.setLeft(cloneNode(this._left_)); + cloned.setBinOp(cloneNode(this._binOp_)); + cloned.setRight(cloneNode(this._right_)); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/APlusBinOp.java b/src/main/java/org/sablecc/sablecc/node/APlusBinOp.java index e7ac89e..cfcb189 100644 --- a/src/main/java/org/sablecc/sablecc/node/APlusBinOp.java +++ b/src/main/java/org/sablecc/sablecc/node/APlusBinOp.java @@ -11,15 +11,12 @@ public final class APlusBinOp extends PBinOp { } - public APlusBinOp(APlusBinOp node) - { - super(node); - } - @Override public APlusBinOp clone() { - return new APlusBinOp(this); + APlusBinOp cloned = new APlusBinOp(); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/APlusUnOp.java b/src/main/java/org/sablecc/sablecc/node/APlusUnOp.java index 06e6fa7..c766c02 100644 --- a/src/main/java/org/sablecc/sablecc/node/APlusUnOp.java +++ b/src/main/java/org/sablecc/sablecc/node/APlusUnOp.java @@ -19,16 +19,13 @@ public final class APlusUnOp extends PUnOp } - public APlusUnOp(APlusUnOp node) - { - super(node); - setPlus(cloneNode(node._plus_)); - } - @Override public APlusUnOp clone() { - return new APlusUnOp(this); + APlusUnOp cloned = new APlusUnOp(); + cloned.setPlus(cloneNode(this._plus_)); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/AProd.java b/src/main/java/org/sablecc/sablecc/node/AProd.java index cd2f503..ca5a37d 100644 --- a/src/main/java/org/sablecc/sablecc/node/AProd.java +++ b/src/main/java/org/sablecc/sablecc/node/AProd.java @@ -35,19 +35,16 @@ public final class AProd extends PProd } - public AProd(AProd node) - { - super(node); - setId(cloneNode(node._id_)); - setArrow(cloneNode(node._arrow_)); - setProdTransform(cloneList(node._prodTransform_)); - setAlts(cloneList(node._alts_)); - } - @Override public AProd clone() { - return new AProd(this); + AProd cloned = new AProd(); + cloned.setId(cloneNode(this._id_)); + cloned.setArrow(cloneNode(this._arrow_)); + cloned.setProdTransform(cloneList(this._prodTransform_)); + cloned.setAlts(cloneList(this._alts_)); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/AProdName.java b/src/main/java/org/sablecc/sablecc/node/AProdName.java index a11a380..8e46818 100644 --- a/src/main/java/org/sablecc/sablecc/node/AProdName.java +++ b/src/main/java/org/sablecc/sablecc/node/AProdName.java @@ -23,17 +23,14 @@ public final class AProdName extends PProdName } - public AProdName(AProdName node) - { - super(node); - setId(cloneNode(node._id_)); - setProdNameTail(cloneNode(node._prodNameTail_)); - } - @Override public AProdName clone() { - return new AProdName(this); + AProdName cloned = new AProdName(); + cloned.setId(cloneNode(this._id_)); + cloned.setProdNameTail(cloneNode(this._prodNameTail_)); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/AProductionSpecifier.java b/src/main/java/org/sablecc/sablecc/node/AProductionSpecifier.java index cd822a6..74304a3 100644 --- a/src/main/java/org/sablecc/sablecc/node/AProductionSpecifier.java +++ b/src/main/java/org/sablecc/sablecc/node/AProductionSpecifier.java @@ -11,15 +11,12 @@ public final class AProductionSpecifier extends PSpecifier { } - public AProductionSpecifier(AProductionSpecifier node) - { - super(node); - } - @Override public AProductionSpecifier clone() { - return new AProductionSpecifier(this); + AProductionSpecifier cloned = new AProductionSpecifier(); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/AProductions.java b/src/main/java/org/sablecc/sablecc/node/AProductions.java index 4e73e96..569464a 100644 --- a/src/main/java/org/sablecc/sablecc/node/AProductions.java +++ b/src/main/java/org/sablecc/sablecc/node/AProductions.java @@ -23,16 +23,13 @@ public final class AProductions extends PProductions } - public AProductions(AProductions node) - { - super(node); - setProds(cloneList(node._prods_)); - } - @Override public AProductions clone() { - return new AProductions(this); + AProductions cloned = new AProductions(); + cloned.setProds(cloneList(this._prods_)); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/AQMarkUnOp.java b/src/main/java/org/sablecc/sablecc/node/AQMarkUnOp.java index c78c19f..ec754fc 100644 --- a/src/main/java/org/sablecc/sablecc/node/AQMarkUnOp.java +++ b/src/main/java/org/sablecc/sablecc/node/AQMarkUnOp.java @@ -19,16 +19,13 @@ public final class AQMarkUnOp extends PUnOp } - public AQMarkUnOp(AQMarkUnOp node) - { - super(node); - setQMark(cloneNode(node._qMark_)); - } - @Override public AQMarkUnOp clone() { - return new AQMarkUnOp(this); + AQMarkUnOp cloned = new AQMarkUnOp(); + cloned.setQMark(cloneNode(this._qMark_)); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/ARegExp.java b/src/main/java/org/sablecc/sablecc/node/ARegExp.java index 7b604e5..6ebe576 100644 --- a/src/main/java/org/sablecc/sablecc/node/ARegExp.java +++ b/src/main/java/org/sablecc/sablecc/node/ARegExp.java @@ -23,16 +23,13 @@ public final class ARegExp extends PRegExp } - public ARegExp(ARegExp node) - { - super(node); - setConcats(cloneList(node._concats_)); - } - @Override public ARegExp clone() { - return new ARegExp(this); + ARegExp cloned = new ARegExp(); + cloned.setConcats(cloneList(this._concats_)); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/ARegExpBasic.java b/src/main/java/org/sablecc/sablecc/node/ARegExpBasic.java index 4978f89..3f615ba 100644 --- a/src/main/java/org/sablecc/sablecc/node/ARegExpBasic.java +++ b/src/main/java/org/sablecc/sablecc/node/ARegExpBasic.java @@ -19,16 +19,13 @@ public final class ARegExpBasic extends PBasic } - public ARegExpBasic(ARegExpBasic node) - { - super(node); - setRegExp(cloneNode(node._regExp_)); - } - @Override public ARegExpBasic clone() { - return new ARegExpBasic(this); + ARegExpBasic cloned = new ARegExpBasic(); + cloned.setRegExp(cloneNode(this._regExp_)); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/ASetBasic.java b/src/main/java/org/sablecc/sablecc/node/ASetBasic.java index 53a957c..b45847e 100644 --- a/src/main/java/org/sablecc/sablecc/node/ASetBasic.java +++ b/src/main/java/org/sablecc/sablecc/node/ASetBasic.java @@ -19,16 +19,13 @@ public final class ASetBasic extends PBasic } - public ASetBasic(ASetBasic node) - { - super(node); - setSet(cloneNode(node._set_)); - } - @Override public ASetBasic clone() { - return new ASetBasic(this); + ASetBasic cloned = new ASetBasic(); + cloned.setSet(cloneNode(this._set_)); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/ASimpleListTerm.java b/src/main/java/org/sablecc/sablecc/node/ASimpleListTerm.java index de072dd..b2e1b64 100644 --- a/src/main/java/org/sablecc/sablecc/node/ASimpleListTerm.java +++ b/src/main/java/org/sablecc/sablecc/node/ASimpleListTerm.java @@ -27,18 +27,15 @@ public final class ASimpleListTerm extends PListTerm } - public ASimpleListTerm(ASimpleListTerm node) - { - super(node); - setSpecifier(cloneNode(node._specifier_)); - setId(cloneNode(node._id_)); - setSimpleTermTail(cloneNode(node._simpleTermTail_)); - } - @Override public ASimpleListTerm clone() { - return new ASimpleListTerm(this); + ASimpleListTerm cloned = new ASimpleListTerm(); + cloned.setSpecifier(cloneNode(this._specifier_)); + cloned.setId(cloneNode(this._id_)); + cloned.setSimpleTermTail(cloneNode(this._simpleTermTail_)); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/ASimpleTerm.java b/src/main/java/org/sablecc/sablecc/node/ASimpleTerm.java index 801c48c..54cfa95 100644 --- a/src/main/java/org/sablecc/sablecc/node/ASimpleTerm.java +++ b/src/main/java/org/sablecc/sablecc/node/ASimpleTerm.java @@ -27,18 +27,15 @@ public final class ASimpleTerm extends PTerm } - public ASimpleTerm(ASimpleTerm node) - { - super(node); - setSpecifier(cloneNode(node._specifier_)); - setId(cloneNode(node._id_)); - setSimpleTermTail(cloneNode(node._simpleTermTail_)); - } - @Override public ASimpleTerm clone() { - return new ASimpleTerm(this); + ASimpleTerm cloned = new ASimpleTerm(); + cloned.setSpecifier(cloneNode(this._specifier_)); + cloned.setId(cloneNode(this._id_)); + cloned.setSimpleTermTail(cloneNode(this._simpleTermTail_)); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/AStarUnOp.java b/src/main/java/org/sablecc/sablecc/node/AStarUnOp.java index 626ff01..429335d 100644 --- a/src/main/java/org/sablecc/sablecc/node/AStarUnOp.java +++ b/src/main/java/org/sablecc/sablecc/node/AStarUnOp.java @@ -19,16 +19,13 @@ public final class AStarUnOp extends PUnOp } - public AStarUnOp(AStarUnOp node) - { - super(node); - setStar(cloneNode(node._star_)); - } - @Override public AStarUnOp clone() { - return new AStarUnOp(this); + AStarUnOp cloned = new AStarUnOp(); + cloned.setStar(cloneNode(this._star_)); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/AStateList.java b/src/main/java/org/sablecc/sablecc/node/AStateList.java index 706d3c7..8ac649a 100644 --- a/src/main/java/org/sablecc/sablecc/node/AStateList.java +++ b/src/main/java/org/sablecc/sablecc/node/AStateList.java @@ -31,18 +31,15 @@ public final class AStateList extends PStateList } - public AStateList(AStateList node) - { - super(node); - setId(cloneNode(node._id_)); - setTransition(cloneNode(node._transition_)); - setStateLists(cloneList(node._stateLists_)); - } - @Override public AStateList clone() { - return new AStateList(this); + AStateList cloned = new AStateList(); + cloned.setId(cloneNode(this._id_)); + cloned.setTransition(cloneNode(this._transition_)); + cloned.setStateLists(cloneList(this._stateLists_)); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/AStateListTail.java b/src/main/java/org/sablecc/sablecc/node/AStateListTail.java index 6f52228..d769f96 100644 --- a/src/main/java/org/sablecc/sablecc/node/AStateListTail.java +++ b/src/main/java/org/sablecc/sablecc/node/AStateListTail.java @@ -23,17 +23,14 @@ public final class AStateListTail extends PStateListTail } - public AStateListTail(AStateListTail node) - { - super(node); - setId(cloneNode(node._id_)); - setTransition(cloneNode(node._transition_)); - } - @Override public AStateListTail clone() { - return new AStateListTail(this); + AStateListTail cloned = new AStateListTail(); + cloned.setId(cloneNode(this._id_)); + cloned.setTransition(cloneNode(this._transition_)); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/AStates.java b/src/main/java/org/sablecc/sablecc/node/AStates.java index a5bd2e0..634dbf6 100644 --- a/src/main/java/org/sablecc/sablecc/node/AStates.java +++ b/src/main/java/org/sablecc/sablecc/node/AStates.java @@ -23,16 +23,13 @@ public final class AStates extends PStates } - public AStates(AStates node) - { - super(node); - setListId(cloneList(node._listId_)); - } - @Override public AStates clone() { - return new AStates(this); + AStates cloned = new AStates(); + cloned.setListId(cloneList(this._listId_)); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/AStringBasic.java b/src/main/java/org/sablecc/sablecc/node/AStringBasic.java index ff1dd0a..5ea18ba 100644 --- a/src/main/java/org/sablecc/sablecc/node/AStringBasic.java +++ b/src/main/java/org/sablecc/sablecc/node/AStringBasic.java @@ -19,16 +19,13 @@ public final class AStringBasic extends PBasic } - public AStringBasic(AStringBasic node) - { - super(node); - setString(cloneNode(node._string_)); - } - @Override public AStringBasic clone() { - return new AStringBasic(this); + AStringBasic cloned = new AStringBasic(); + cloned.setString(cloneNode(this._string_)); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/ATokenDef.java b/src/main/java/org/sablecc/sablecc/node/ATokenDef.java index b7af970..85868b1 100644 --- a/src/main/java/org/sablecc/sablecc/node/ATokenDef.java +++ b/src/main/java/org/sablecc/sablecc/node/ATokenDef.java @@ -35,20 +35,17 @@ public final class ATokenDef extends PTokenDef } - public ATokenDef(ATokenDef node) - { - super(node); - setStateList(cloneNode(node._stateList_)); - setId(cloneNode(node._id_)); - setRegExp(cloneNode(node._regExp_)); - setSlash(cloneNode(node._slash_)); - setLookAhead(cloneNode(node._lookAhead_)); - } - @Override public ATokenDef clone() { - return new ATokenDef(this); + ATokenDef cloned = new ATokenDef(); + cloned.setStateList(cloneNode(this._stateList_)); + cloned.setId(cloneNode(this._id_)); + cloned.setRegExp(cloneNode(this._regExp_)); + cloned.setSlash(cloneNode(this._slash_)); + cloned.setLookAhead(cloneNode(this._lookAhead_)); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/ATokenSpecifier.java b/src/main/java/org/sablecc/sablecc/node/ATokenSpecifier.java index b4223d8..13242e8 100644 --- a/src/main/java/org/sablecc/sablecc/node/ATokenSpecifier.java +++ b/src/main/java/org/sablecc/sablecc/node/ATokenSpecifier.java @@ -11,15 +11,12 @@ public final class ATokenSpecifier extends PSpecifier { } - public ATokenSpecifier(ATokenSpecifier node) - { - super(node); - } - @Override public ATokenSpecifier clone() { - return new ATokenSpecifier(this); + ATokenSpecifier cloned = new ATokenSpecifier(); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/ATokens.java b/src/main/java/org/sablecc/sablecc/node/ATokens.java index d07b76d..29e0990 100644 --- a/src/main/java/org/sablecc/sablecc/node/ATokens.java +++ b/src/main/java/org/sablecc/sablecc/node/ATokens.java @@ -23,16 +23,13 @@ public final class ATokens extends PTokens } - public ATokens(ATokens node) - { - super(node); - setTokenDefs(cloneList(node._tokenDefs_)); - } - @Override public ATokens clone() { - return new ATokens(this); + ATokens cloned = new ATokens(); + cloned.setTokenDefs(cloneList(this._tokenDefs_)); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/ATransition.java b/src/main/java/org/sablecc/sablecc/node/ATransition.java index 0e5499f..e13d1cb 100644 --- a/src/main/java/org/sablecc/sablecc/node/ATransition.java +++ b/src/main/java/org/sablecc/sablecc/node/ATransition.java @@ -19,16 +19,13 @@ public final class ATransition extends PTransition } - public ATransition(ATransition node) - { - super(node); - setId(cloneNode(node._id_)); - } - @Override public ATransition clone() { - return new ATransition(this); + ATransition cloned = new ATransition(); + cloned.setId(cloneNode(this._id_)); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/AUnExp.java b/src/main/java/org/sablecc/sablecc/node/AUnExp.java index 6d7d40d..2fcf026 100644 --- a/src/main/java/org/sablecc/sablecc/node/AUnExp.java +++ b/src/main/java/org/sablecc/sablecc/node/AUnExp.java @@ -23,17 +23,14 @@ public final class AUnExp extends PUnExp } - public AUnExp(AUnExp node) - { - super(node); - setBasic(cloneNode(node._basic_)); - setUnOp(cloneNode(node._unOp_)); - } - @Override public AUnExp clone() { - return new AUnExp(this); + AUnExp cloned = new AUnExp(); + cloned.setBasic(cloneNode(this._basic_)); + cloned.setUnOp(cloneNode(this._unOp_)); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/EOF.java b/src/main/java/org/sablecc/sablecc/node/EOF.java index 8d7e017..7def3d3 100644 --- a/src/main/java/org/sablecc/sablecc/node/EOF.java +++ b/src/main/java/org/sablecc/sablecc/node/EOF.java @@ -16,15 +16,12 @@ public final class EOF extends Token super("", line, pos); } - public EOF(EOF token) - { - super(token); - } - @Override public EOF clone() { - return new EOF(this); + EOF cloned = new EOF(this.getLine(), this.getPos()); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/Node.java b/src/main/java/org/sablecc/sablecc/node/Node.java index f37caa1..625a97e 100644 --- a/src/main/java/org/sablecc/sablecc/node/Node.java +++ b/src/main/java/org/sablecc/sablecc/node/Node.java @@ -14,14 +14,8 @@ public abstract class Node extends PositionedNode implements Switchable, Cloneab protected Node() {} - protected Node(Node node) - { - super(node); - // Copy constructor intentionally does not keep parent! - // The new copied node is not a child of the original parent anymore. - this.parent = null; - } - + // clone intentionally does not keep parent! + // The new copied node is not a child of the original parent anymore. @Override public abstract Node clone(); diff --git a/src/main/java/org/sablecc/sablecc/node/PAlt.java b/src/main/java/org/sablecc/sablecc/node/PAlt.java index 805ab23..335c44a 100644 --- a/src/main/java/org/sablecc/sablecc/node/PAlt.java +++ b/src/main/java/org/sablecc/sablecc/node/PAlt.java @@ -7,11 +7,6 @@ public abstract class PAlt extends Node public PAlt() {} - public PAlt(PAlt node) - { - super(node); - } - @Override public abstract PAlt clone(); } diff --git a/src/main/java/org/sablecc/sablecc/node/PAltTransform.java b/src/main/java/org/sablecc/sablecc/node/PAltTransform.java index f0eafa2..91fdd2f 100644 --- a/src/main/java/org/sablecc/sablecc/node/PAltTransform.java +++ b/src/main/java/org/sablecc/sablecc/node/PAltTransform.java @@ -7,11 +7,6 @@ public abstract class PAltTransform extends Node public PAltTransform() {} - public PAltTransform(PAltTransform node) - { - super(node); - } - @Override public abstract PAltTransform clone(); } diff --git a/src/main/java/org/sablecc/sablecc/node/PAst.java b/src/main/java/org/sablecc/sablecc/node/PAst.java index 04d7430..7d93011 100644 --- a/src/main/java/org/sablecc/sablecc/node/PAst.java +++ b/src/main/java/org/sablecc/sablecc/node/PAst.java @@ -7,11 +7,6 @@ public abstract class PAst extends Node public PAst() {} - public PAst(PAst node) - { - super(node); - } - @Override public abstract PAst clone(); } diff --git a/src/main/java/org/sablecc/sablecc/node/PAstAlt.java b/src/main/java/org/sablecc/sablecc/node/PAstAlt.java index 7fa3763..68d3159 100644 --- a/src/main/java/org/sablecc/sablecc/node/PAstAlt.java +++ b/src/main/java/org/sablecc/sablecc/node/PAstAlt.java @@ -7,11 +7,6 @@ public abstract class PAstAlt extends Node public PAstAlt() {} - public PAstAlt(PAstAlt node) - { - super(node); - } - @Override public abstract PAstAlt clone(); } diff --git a/src/main/java/org/sablecc/sablecc/node/PAstProd.java b/src/main/java/org/sablecc/sablecc/node/PAstProd.java index de12a50..d472b41 100644 --- a/src/main/java/org/sablecc/sablecc/node/PAstProd.java +++ b/src/main/java/org/sablecc/sablecc/node/PAstProd.java @@ -7,11 +7,6 @@ public abstract class PAstProd extends Node public PAstProd() {} - public PAstProd(PAstProd node) - { - super(node); - } - @Override public abstract PAstProd clone(); } diff --git a/src/main/java/org/sablecc/sablecc/node/PBasic.java b/src/main/java/org/sablecc/sablecc/node/PBasic.java index 2a3b4b9..d2dce6e 100644 --- a/src/main/java/org/sablecc/sablecc/node/PBasic.java +++ b/src/main/java/org/sablecc/sablecc/node/PBasic.java @@ -7,11 +7,6 @@ public abstract class PBasic extends Node public PBasic() {} - public PBasic(PBasic node) - { - super(node); - } - @Override public abstract PBasic clone(); } diff --git a/src/main/java/org/sablecc/sablecc/node/PBinOp.java b/src/main/java/org/sablecc/sablecc/node/PBinOp.java index 1d35acb..4e0f605 100644 --- a/src/main/java/org/sablecc/sablecc/node/PBinOp.java +++ b/src/main/java/org/sablecc/sablecc/node/PBinOp.java @@ -7,11 +7,6 @@ public abstract class PBinOp extends Node public PBinOp() {} - public PBinOp(PBinOp node) - { - super(node); - } - @Override public abstract PBinOp clone(); } diff --git a/src/main/java/org/sablecc/sablecc/node/PChar.java b/src/main/java/org/sablecc/sablecc/node/PChar.java index 1e1975c..429049b 100644 --- a/src/main/java/org/sablecc/sablecc/node/PChar.java +++ b/src/main/java/org/sablecc/sablecc/node/PChar.java @@ -7,11 +7,6 @@ public abstract class PChar extends Node public PChar() {} - public PChar(PChar node) - { - super(node); - } - @Override public abstract PChar clone(); } diff --git a/src/main/java/org/sablecc/sablecc/node/PConcat.java b/src/main/java/org/sablecc/sablecc/node/PConcat.java index 7c9ef83..20dce0e 100644 --- a/src/main/java/org/sablecc/sablecc/node/PConcat.java +++ b/src/main/java/org/sablecc/sablecc/node/PConcat.java @@ -7,11 +7,6 @@ public abstract class PConcat extends Node public PConcat() {} - public PConcat(PConcat node) - { - super(node); - } - @Override public abstract PConcat clone(); } diff --git a/src/main/java/org/sablecc/sablecc/node/PElem.java b/src/main/java/org/sablecc/sablecc/node/PElem.java index 748f1bc..b7ec724 100644 --- a/src/main/java/org/sablecc/sablecc/node/PElem.java +++ b/src/main/java/org/sablecc/sablecc/node/PElem.java @@ -7,11 +7,6 @@ public abstract class PElem extends Node public PElem() {} - public PElem(PElem node) - { - super(node); - } - @Override public abstract PElem clone(); } diff --git a/src/main/java/org/sablecc/sablecc/node/PGrammar.java b/src/main/java/org/sablecc/sablecc/node/PGrammar.java index 8501e4c..aadfe6a 100644 --- a/src/main/java/org/sablecc/sablecc/node/PGrammar.java +++ b/src/main/java/org/sablecc/sablecc/node/PGrammar.java @@ -7,11 +7,6 @@ public abstract class PGrammar extends Node public PGrammar() {} - public PGrammar(PGrammar node) - { - super(node); - } - @Override public abstract PGrammar clone(); } diff --git a/src/main/java/org/sablecc/sablecc/node/PHelperDef.java b/src/main/java/org/sablecc/sablecc/node/PHelperDef.java index b9e501d..7a2a876 100644 --- a/src/main/java/org/sablecc/sablecc/node/PHelperDef.java +++ b/src/main/java/org/sablecc/sablecc/node/PHelperDef.java @@ -7,11 +7,6 @@ public abstract class PHelperDef extends Node public PHelperDef() {} - public PHelperDef(PHelperDef node) - { - super(node); - } - @Override public abstract PHelperDef clone(); } diff --git a/src/main/java/org/sablecc/sablecc/node/PHelpers.java b/src/main/java/org/sablecc/sablecc/node/PHelpers.java index a1ddbf2..bbff36b 100644 --- a/src/main/java/org/sablecc/sablecc/node/PHelpers.java +++ b/src/main/java/org/sablecc/sablecc/node/PHelpers.java @@ -7,11 +7,6 @@ public abstract class PHelpers extends Node public PHelpers() {} - public PHelpers(PHelpers node) - { - super(node); - } - @Override public abstract PHelpers clone(); } diff --git a/src/main/java/org/sablecc/sablecc/node/PIgnTokens.java b/src/main/java/org/sablecc/sablecc/node/PIgnTokens.java index fb53108..68cee2a 100644 --- a/src/main/java/org/sablecc/sablecc/node/PIgnTokens.java +++ b/src/main/java/org/sablecc/sablecc/node/PIgnTokens.java @@ -7,11 +7,6 @@ public abstract class PIgnTokens extends Node public PIgnTokens() {} - public PIgnTokens(PIgnTokens node) - { - super(node); - } - @Override public abstract PIgnTokens clone(); } diff --git a/src/main/java/org/sablecc/sablecc/node/PListTerm.java b/src/main/java/org/sablecc/sablecc/node/PListTerm.java index d8e7a48..5003121 100644 --- a/src/main/java/org/sablecc/sablecc/node/PListTerm.java +++ b/src/main/java/org/sablecc/sablecc/node/PListTerm.java @@ -7,11 +7,6 @@ public abstract class PListTerm extends Node public PListTerm() {} - public PListTerm(PListTerm node) - { - super(node); - } - @Override public abstract PListTerm clone(); } diff --git a/src/main/java/org/sablecc/sablecc/node/PProd.java b/src/main/java/org/sablecc/sablecc/node/PProd.java index 2d9db40..74e3acc 100644 --- a/src/main/java/org/sablecc/sablecc/node/PProd.java +++ b/src/main/java/org/sablecc/sablecc/node/PProd.java @@ -7,11 +7,6 @@ public abstract class PProd extends Node public PProd() {} - public PProd(PProd node) - { - super(node); - } - @Override public abstract PProd clone(); } diff --git a/src/main/java/org/sablecc/sablecc/node/PProdName.java b/src/main/java/org/sablecc/sablecc/node/PProdName.java index 380e8da..04b99c5 100644 --- a/src/main/java/org/sablecc/sablecc/node/PProdName.java +++ b/src/main/java/org/sablecc/sablecc/node/PProdName.java @@ -7,11 +7,6 @@ public abstract class PProdName extends Node public PProdName() {} - public PProdName(PProdName node) - { - super(node); - } - @Override public abstract PProdName clone(); } diff --git a/src/main/java/org/sablecc/sablecc/node/PProductions.java b/src/main/java/org/sablecc/sablecc/node/PProductions.java index 98da826..d908b9b 100644 --- a/src/main/java/org/sablecc/sablecc/node/PProductions.java +++ b/src/main/java/org/sablecc/sablecc/node/PProductions.java @@ -7,11 +7,6 @@ public abstract class PProductions extends Node public PProductions() {} - public PProductions(PProductions node) - { - super(node); - } - @Override public abstract PProductions clone(); } diff --git a/src/main/java/org/sablecc/sablecc/node/PRegExp.java b/src/main/java/org/sablecc/sablecc/node/PRegExp.java index 3ebc5a2..93ddece 100644 --- a/src/main/java/org/sablecc/sablecc/node/PRegExp.java +++ b/src/main/java/org/sablecc/sablecc/node/PRegExp.java @@ -7,11 +7,6 @@ public abstract class PRegExp extends Node public PRegExp() {} - public PRegExp(PRegExp node) - { - super(node); - } - @Override public abstract PRegExp clone(); } diff --git a/src/main/java/org/sablecc/sablecc/node/PSet.java b/src/main/java/org/sablecc/sablecc/node/PSet.java index e9d6593..a4ca9c1 100644 --- a/src/main/java/org/sablecc/sablecc/node/PSet.java +++ b/src/main/java/org/sablecc/sablecc/node/PSet.java @@ -7,11 +7,6 @@ public abstract class PSet extends Node public PSet() {} - public PSet(PSet node) - { - super(node); - } - @Override public abstract PSet clone(); } diff --git a/src/main/java/org/sablecc/sablecc/node/PSpecifier.java b/src/main/java/org/sablecc/sablecc/node/PSpecifier.java index 39fc626..ded4e7d 100644 --- a/src/main/java/org/sablecc/sablecc/node/PSpecifier.java +++ b/src/main/java/org/sablecc/sablecc/node/PSpecifier.java @@ -7,11 +7,6 @@ public abstract class PSpecifier extends Node public PSpecifier() {} - public PSpecifier(PSpecifier node) - { - super(node); - } - @Override public abstract PSpecifier clone(); } diff --git a/src/main/java/org/sablecc/sablecc/node/PStateList.java b/src/main/java/org/sablecc/sablecc/node/PStateList.java index b8509d1..42a20d5 100644 --- a/src/main/java/org/sablecc/sablecc/node/PStateList.java +++ b/src/main/java/org/sablecc/sablecc/node/PStateList.java @@ -7,11 +7,6 @@ public abstract class PStateList extends Node public PStateList() {} - public PStateList(PStateList node) - { - super(node); - } - @Override public abstract PStateList clone(); } diff --git a/src/main/java/org/sablecc/sablecc/node/PStateListTail.java b/src/main/java/org/sablecc/sablecc/node/PStateListTail.java index 3968b10..efe93df 100644 --- a/src/main/java/org/sablecc/sablecc/node/PStateListTail.java +++ b/src/main/java/org/sablecc/sablecc/node/PStateListTail.java @@ -7,11 +7,6 @@ public abstract class PStateListTail extends Node public PStateListTail() {} - public PStateListTail(PStateListTail node) - { - super(node); - } - @Override public abstract PStateListTail clone(); } diff --git a/src/main/java/org/sablecc/sablecc/node/PStates.java b/src/main/java/org/sablecc/sablecc/node/PStates.java index c0f22d4..d0e1df0 100644 --- a/src/main/java/org/sablecc/sablecc/node/PStates.java +++ b/src/main/java/org/sablecc/sablecc/node/PStates.java @@ -7,11 +7,6 @@ public abstract class PStates extends Node public PStates() {} - public PStates(PStates node) - { - super(node); - } - @Override public abstract PStates clone(); } diff --git a/src/main/java/org/sablecc/sablecc/node/PTerm.java b/src/main/java/org/sablecc/sablecc/node/PTerm.java index e3e9373..cef531e 100644 --- a/src/main/java/org/sablecc/sablecc/node/PTerm.java +++ b/src/main/java/org/sablecc/sablecc/node/PTerm.java @@ -7,11 +7,6 @@ public abstract class PTerm extends Node public PTerm() {} - public PTerm(PTerm node) - { - super(node); - } - @Override public abstract PTerm clone(); } diff --git a/src/main/java/org/sablecc/sablecc/node/PTokenDef.java b/src/main/java/org/sablecc/sablecc/node/PTokenDef.java index 783f742..b5d33a2 100644 --- a/src/main/java/org/sablecc/sablecc/node/PTokenDef.java +++ b/src/main/java/org/sablecc/sablecc/node/PTokenDef.java @@ -7,11 +7,6 @@ public abstract class PTokenDef extends Node public PTokenDef() {} - public PTokenDef(PTokenDef node) - { - super(node); - } - @Override public abstract PTokenDef clone(); } diff --git a/src/main/java/org/sablecc/sablecc/node/PTokens.java b/src/main/java/org/sablecc/sablecc/node/PTokens.java index d0b4af8..bf5b100 100644 --- a/src/main/java/org/sablecc/sablecc/node/PTokens.java +++ b/src/main/java/org/sablecc/sablecc/node/PTokens.java @@ -7,11 +7,6 @@ public abstract class PTokens extends Node public PTokens() {} - public PTokens(PTokens node) - { - super(node); - } - @Override public abstract PTokens clone(); } diff --git a/src/main/java/org/sablecc/sablecc/node/PTransition.java b/src/main/java/org/sablecc/sablecc/node/PTransition.java index d8b166d..a03a228 100644 --- a/src/main/java/org/sablecc/sablecc/node/PTransition.java +++ b/src/main/java/org/sablecc/sablecc/node/PTransition.java @@ -7,11 +7,6 @@ public abstract class PTransition extends Node public PTransition() {} - public PTransition(PTransition node) - { - super(node); - } - @Override public abstract PTransition clone(); } diff --git a/src/main/java/org/sablecc/sablecc/node/PUnExp.java b/src/main/java/org/sablecc/sablecc/node/PUnExp.java index 28f0cba..202c349 100644 --- a/src/main/java/org/sablecc/sablecc/node/PUnExp.java +++ b/src/main/java/org/sablecc/sablecc/node/PUnExp.java @@ -7,11 +7,6 @@ public abstract class PUnExp extends Node public PUnExp() {} - public PUnExp(PUnExp node) - { - super(node); - } - @Override public abstract PUnExp clone(); } diff --git a/src/main/java/org/sablecc/sablecc/node/PUnOp.java b/src/main/java/org/sablecc/sablecc/node/PUnOp.java index fc09a33..8df12aa 100644 --- a/src/main/java/org/sablecc/sablecc/node/PUnOp.java +++ b/src/main/java/org/sablecc/sablecc/node/PUnOp.java @@ -7,11 +7,6 @@ public abstract class PUnOp extends Node public PUnOp() {} - public PUnOp(PUnOp node) - { - super(node); - } - @Override public abstract PUnOp clone(); } diff --git a/src/main/java/org/sablecc/sablecc/node/Start.java b/src/main/java/org/sablecc/sablecc/node/Start.java index 751cb6f..a94f2e8 100644 --- a/src/main/java/org/sablecc/sablecc/node/Start.java +++ b/src/main/java/org/sablecc/sablecc/node/Start.java @@ -20,17 +20,14 @@ public final class Start extends Node setEOF(_eof_); } - public Start(Start node) - { - super(node); - setPGrammar(cloneNode(node._pGrammar_)); - setEOF(cloneNode(node._eof_)); - } - @Override public Start clone() { - return new Start(this); + Start cloned = new Start(); + cloned.setPGrammar(cloneNode(this._pGrammar_)); + cloned.setEOF(cloneNode(this._eof_)); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/TAbstract.java b/src/main/java/org/sablecc/sablecc/node/TAbstract.java index ba9a910..9eb16f4 100644 --- a/src/main/java/org/sablecc/sablecc/node/TAbstract.java +++ b/src/main/java/org/sablecc/sablecc/node/TAbstract.java @@ -16,15 +16,12 @@ public final class TAbstract extends Token super("Abstract", line, pos); } - public TAbstract(TAbstract token) - { - super(token); - } - @Override public TAbstract clone() { - return new TAbstract(this); + TAbstract cloned = new TAbstract(this.getLine(), this.getPos()); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/TArrow.java b/src/main/java/org/sablecc/sablecc/node/TArrow.java index 9a22211..e57d2dd 100644 --- a/src/main/java/org/sablecc/sablecc/node/TArrow.java +++ b/src/main/java/org/sablecc/sablecc/node/TArrow.java @@ -16,15 +16,12 @@ public final class TArrow extends Token super("->", line, pos); } - public TArrow(TArrow token) - { - super(token); - } - @Override public TArrow clone() { - return new TArrow(this); + TArrow cloned = new TArrow(this.getLine(), this.getPos()); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/TBar.java b/src/main/java/org/sablecc/sablecc/node/TBar.java index 36d967f..a8a646b 100644 --- a/src/main/java/org/sablecc/sablecc/node/TBar.java +++ b/src/main/java/org/sablecc/sablecc/node/TBar.java @@ -16,15 +16,12 @@ public final class TBar extends Token super("|", line, pos); } - public TBar(TBar token) - { - super(token); - } - @Override public TBar clone() { - return new TBar(this); + TBar cloned = new TBar(this.getLine(), this.getPos()); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/TBlank.java b/src/main/java/org/sablecc/sablecc/node/TBlank.java index de51cb9..c5d52b6 100644 --- a/src/main/java/org/sablecc/sablecc/node/TBlank.java +++ b/src/main/java/org/sablecc/sablecc/node/TBlank.java @@ -16,15 +16,12 @@ public final class TBlank extends Token super(text, line, pos); } - public TBlank(TBlank token) - { - super(token); - } - @Override public TBlank clone() { - return new TBlank(this); + TBlank cloned = new TBlank(this.getText(), this.getLine(), this.getPos()); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/TChar.java b/src/main/java/org/sablecc/sablecc/node/TChar.java index aecb775..1a7cef3 100644 --- a/src/main/java/org/sablecc/sablecc/node/TChar.java +++ b/src/main/java/org/sablecc/sablecc/node/TChar.java @@ -16,15 +16,12 @@ public final class TChar extends Token super(text, line, pos); } - public TChar(TChar token) - { - super(token); - } - @Override public TChar clone() { - return new TChar(this); + TChar cloned = new TChar(this.getText(), this.getLine(), this.getPos()); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/TColon.java b/src/main/java/org/sablecc/sablecc/node/TColon.java index 76e6ae6..34eb313 100644 --- a/src/main/java/org/sablecc/sablecc/node/TColon.java +++ b/src/main/java/org/sablecc/sablecc/node/TColon.java @@ -16,15 +16,12 @@ public final class TColon extends Token super(":", line, pos); } - public TColon(TColon token) - { - super(token); - } - @Override public TColon clone() { - return new TColon(this); + TColon cloned = new TColon(this.getLine(), this.getPos()); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/TComma.java b/src/main/java/org/sablecc/sablecc/node/TComma.java index 485b422..2f21c7d 100644 --- a/src/main/java/org/sablecc/sablecc/node/TComma.java +++ b/src/main/java/org/sablecc/sablecc/node/TComma.java @@ -16,15 +16,12 @@ public final class TComma extends Token super(",", line, pos); } - public TComma(TComma token) - { - super(token); - } - @Override public TComma clone() { - return new TComma(this); + TComma cloned = new TComma(this.getLine(), this.getPos()); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/TComment.java b/src/main/java/org/sablecc/sablecc/node/TComment.java index 9f9f1a5..106474b 100644 --- a/src/main/java/org/sablecc/sablecc/node/TComment.java +++ b/src/main/java/org/sablecc/sablecc/node/TComment.java @@ -16,15 +16,12 @@ public final class TComment extends Token super(text, line, pos); } - public TComment(TComment token) - { - super(token); - } - @Override public TComment clone() { - return new TComment(this); + TComment cloned = new TComment(this.getText(), this.getLine(), this.getPos()); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/TDDot.java b/src/main/java/org/sablecc/sablecc/node/TDDot.java index 0c2dd1f..a3651ae 100644 --- a/src/main/java/org/sablecc/sablecc/node/TDDot.java +++ b/src/main/java/org/sablecc/sablecc/node/TDDot.java @@ -16,15 +16,12 @@ public final class TDDot extends Token super("..", line, pos); } - public TDDot(TDDot token) - { - super(token); - } - @Override public TDDot clone() { - return new TDDot(this); + TDDot cloned = new TDDot(this.getLine(), this.getPos()); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/TDecChar.java b/src/main/java/org/sablecc/sablecc/node/TDecChar.java index 22104e3..5e7204f 100644 --- a/src/main/java/org/sablecc/sablecc/node/TDecChar.java +++ b/src/main/java/org/sablecc/sablecc/node/TDecChar.java @@ -16,15 +16,12 @@ public final class TDecChar extends Token super(text, line, pos); } - public TDecChar(TDecChar token) - { - super(token); - } - @Override public TDecChar clone() { - return new TDecChar(this); + TDecChar cloned = new TDecChar(this.getText(), this.getLine(), this.getPos()); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/TDot.java b/src/main/java/org/sablecc/sablecc/node/TDot.java index 394e43f..fae4247 100644 --- a/src/main/java/org/sablecc/sablecc/node/TDot.java +++ b/src/main/java/org/sablecc/sablecc/node/TDot.java @@ -16,15 +16,12 @@ public final class TDot extends Token super(".", line, pos); } - public TDot(TDot token) - { - super(token); - } - @Override public TDot clone() { - return new TDot(this); + TDot cloned = new TDot(this.getLine(), this.getPos()); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/TEqual.java b/src/main/java/org/sablecc/sablecc/node/TEqual.java index c5b4c7c..ae88feb 100644 --- a/src/main/java/org/sablecc/sablecc/node/TEqual.java +++ b/src/main/java/org/sablecc/sablecc/node/TEqual.java @@ -16,15 +16,12 @@ public final class TEqual extends Token super("=", line, pos); } - public TEqual(TEqual token) - { - super(token); - } - @Override public TEqual clone() { - return new TEqual(this); + TEqual cloned = new TEqual(this.getLine(), this.getPos()); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/THelpers.java b/src/main/java/org/sablecc/sablecc/node/THelpers.java index 27b2966..9f75a08 100644 --- a/src/main/java/org/sablecc/sablecc/node/THelpers.java +++ b/src/main/java/org/sablecc/sablecc/node/THelpers.java @@ -16,15 +16,12 @@ public final class THelpers extends Token super("Helpers", line, pos); } - public THelpers(THelpers token) - { - super(token); - } - @Override public THelpers clone() { - return new THelpers(this); + THelpers cloned = new THelpers(this.getLine(), this.getPos()); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/THexChar.java b/src/main/java/org/sablecc/sablecc/node/THexChar.java index 2b09dc0..3f1273f 100644 --- a/src/main/java/org/sablecc/sablecc/node/THexChar.java +++ b/src/main/java/org/sablecc/sablecc/node/THexChar.java @@ -16,15 +16,12 @@ public final class THexChar extends Token super(text, line, pos); } - public THexChar(THexChar token) - { - super(token); - } - @Override public THexChar clone() { - return new THexChar(this); + THexChar cloned = new THexChar(this.getText(), this.getLine(), this.getPos()); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/TId.java b/src/main/java/org/sablecc/sablecc/node/TId.java index 4323e68..1919e49 100644 --- a/src/main/java/org/sablecc/sablecc/node/TId.java +++ b/src/main/java/org/sablecc/sablecc/node/TId.java @@ -16,15 +16,12 @@ public final class TId extends Token super(text, line, pos); } - public TId(TId token) - { - super(token); - } - @Override public TId clone() { - return new TId(this); + TId cloned = new TId(this.getText(), this.getLine(), this.getPos()); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/TIgnored.java b/src/main/java/org/sablecc/sablecc/node/TIgnored.java index 3512dee..17d1413 100644 --- a/src/main/java/org/sablecc/sablecc/node/TIgnored.java +++ b/src/main/java/org/sablecc/sablecc/node/TIgnored.java @@ -16,15 +16,12 @@ public final class TIgnored extends Token super("Ignored", line, pos); } - public TIgnored(TIgnored token) - { - super(token); - } - @Override public TIgnored clone() { - return new TIgnored(this); + TIgnored cloned = new TIgnored(this.getLine(), this.getPos()); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/TLBkt.java b/src/main/java/org/sablecc/sablecc/node/TLBkt.java index 8e5a837..831576b 100644 --- a/src/main/java/org/sablecc/sablecc/node/TLBkt.java +++ b/src/main/java/org/sablecc/sablecc/node/TLBkt.java @@ -16,15 +16,12 @@ public final class TLBkt extends Token super("[", line, pos); } - public TLBkt(TLBkt token) - { - super(token); - } - @Override public TLBkt clone() { - return new TLBkt(this); + TLBkt cloned = new TLBkt(this.getLine(), this.getPos()); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/TLBrace.java b/src/main/java/org/sablecc/sablecc/node/TLBrace.java index a3dcb15..0647fe8 100644 --- a/src/main/java/org/sablecc/sablecc/node/TLBrace.java +++ b/src/main/java/org/sablecc/sablecc/node/TLBrace.java @@ -16,15 +16,12 @@ public final class TLBrace extends Token super("{", line, pos); } - public TLBrace(TLBrace token) - { - super(token); - } - @Override public TLBrace clone() { - return new TLBrace(this); + TLBrace cloned = new TLBrace(this.getLine(), this.getPos()); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/TLPar.java b/src/main/java/org/sablecc/sablecc/node/TLPar.java index 8ba1e87..3f4c1ab 100644 --- a/src/main/java/org/sablecc/sablecc/node/TLPar.java +++ b/src/main/java/org/sablecc/sablecc/node/TLPar.java @@ -16,15 +16,12 @@ public final class TLPar extends Token super("(", line, pos); } - public TLPar(TLPar token) - { - super(token); - } - @Override public TLPar clone() { - return new TLPar(this); + TLPar cloned = new TLPar(this.getLine(), this.getPos()); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/TMinus.java b/src/main/java/org/sablecc/sablecc/node/TMinus.java index 044d65c..65589ee 100644 --- a/src/main/java/org/sablecc/sablecc/node/TMinus.java +++ b/src/main/java/org/sablecc/sablecc/node/TMinus.java @@ -16,15 +16,12 @@ public final class TMinus extends Token super("-", line, pos); } - public TMinus(TMinus token) - { - super(token); - } - @Override public TMinus clone() { - return new TMinus(this); + TMinus cloned = new TMinus(this.getLine(), this.getPos()); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/TNew.java b/src/main/java/org/sablecc/sablecc/node/TNew.java index fcbcd30..38dff6e 100644 --- a/src/main/java/org/sablecc/sablecc/node/TNew.java +++ b/src/main/java/org/sablecc/sablecc/node/TNew.java @@ -16,15 +16,12 @@ public final class TNew extends Token super("New", line, pos); } - public TNew(TNew token) - { - super(token); - } - @Override public TNew clone() { - return new TNew(this); + TNew cloned = new TNew(this.getLine(), this.getPos()); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/TNull.java b/src/main/java/org/sablecc/sablecc/node/TNull.java index 47800bb..16042a4 100644 --- a/src/main/java/org/sablecc/sablecc/node/TNull.java +++ b/src/main/java/org/sablecc/sablecc/node/TNull.java @@ -16,15 +16,12 @@ public final class TNull extends Token super("Null", line, pos); } - public TNull(TNull token) - { - super(token); - } - @Override public TNull clone() { - return new TNull(this); + TNull cloned = new TNull(this.getLine(), this.getPos()); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/TPackage.java b/src/main/java/org/sablecc/sablecc/node/TPackage.java index b2854d6..4b9ebe8 100644 --- a/src/main/java/org/sablecc/sablecc/node/TPackage.java +++ b/src/main/java/org/sablecc/sablecc/node/TPackage.java @@ -16,15 +16,12 @@ public final class TPackage extends Token super("Package", line, pos); } - public TPackage(TPackage token) - { - super(token); - } - @Override public TPackage clone() { - return new TPackage(this); + TPackage cloned = new TPackage(this.getLine(), this.getPos()); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/TPkgId.java b/src/main/java/org/sablecc/sablecc/node/TPkgId.java index 63fd17a..f156efe 100644 --- a/src/main/java/org/sablecc/sablecc/node/TPkgId.java +++ b/src/main/java/org/sablecc/sablecc/node/TPkgId.java @@ -16,15 +16,12 @@ public final class TPkgId extends Token super(text, line, pos); } - public TPkgId(TPkgId token) - { - super(token); - } - @Override public TPkgId clone() { - return new TPkgId(this); + TPkgId cloned = new TPkgId(this.getText(), this.getLine(), this.getPos()); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/TPlus.java b/src/main/java/org/sablecc/sablecc/node/TPlus.java index 5098ea0..e12da0e 100644 --- a/src/main/java/org/sablecc/sablecc/node/TPlus.java +++ b/src/main/java/org/sablecc/sablecc/node/TPlus.java @@ -16,15 +16,12 @@ public final class TPlus extends Token super("+", line, pos); } - public TPlus(TPlus token) - { - super(token); - } - @Override public TPlus clone() { - return new TPlus(this); + TPlus cloned = new TPlus(this.getLine(), this.getPos()); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/TProductionSpecifier.java b/src/main/java/org/sablecc/sablecc/node/TProductionSpecifier.java index 35a585f..e8a1615 100644 --- a/src/main/java/org/sablecc/sablecc/node/TProductionSpecifier.java +++ b/src/main/java/org/sablecc/sablecc/node/TProductionSpecifier.java @@ -16,15 +16,12 @@ public final class TProductionSpecifier extends Token super("P", line, pos); } - public TProductionSpecifier(TProductionSpecifier token) - { - super(token); - } - @Override public TProductionSpecifier clone() { - return new TProductionSpecifier(this); + TProductionSpecifier cloned = new TProductionSpecifier(this.getLine(), this.getPos()); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/TProductions.java b/src/main/java/org/sablecc/sablecc/node/TProductions.java index 7f402c3..246be7f 100644 --- a/src/main/java/org/sablecc/sablecc/node/TProductions.java +++ b/src/main/java/org/sablecc/sablecc/node/TProductions.java @@ -16,15 +16,12 @@ public final class TProductions extends Token super("Productions", line, pos); } - public TProductions(TProductions token) - { - super(token); - } - @Override public TProductions clone() { - return new TProductions(this); + TProductions cloned = new TProductions(this.getLine(), this.getPos()); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/TQMark.java b/src/main/java/org/sablecc/sablecc/node/TQMark.java index aebf492..76b9f4d 100644 --- a/src/main/java/org/sablecc/sablecc/node/TQMark.java +++ b/src/main/java/org/sablecc/sablecc/node/TQMark.java @@ -16,15 +16,12 @@ public final class TQMark extends Token super("?", line, pos); } - public TQMark(TQMark token) - { - super(token); - } - @Override public TQMark clone() { - return new TQMark(this); + TQMark cloned = new TQMark(this.getLine(), this.getPos()); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/TRBkt.java b/src/main/java/org/sablecc/sablecc/node/TRBkt.java index 30552da..83aafaa 100644 --- a/src/main/java/org/sablecc/sablecc/node/TRBkt.java +++ b/src/main/java/org/sablecc/sablecc/node/TRBkt.java @@ -16,15 +16,12 @@ public final class TRBkt extends Token super("]", line, pos); } - public TRBkt(TRBkt token) - { - super(token); - } - @Override public TRBkt clone() { - return new TRBkt(this); + TRBkt cloned = new TRBkt(this.getLine(), this.getPos()); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/TRBrace.java b/src/main/java/org/sablecc/sablecc/node/TRBrace.java index 04be2a1..79868e2 100644 --- a/src/main/java/org/sablecc/sablecc/node/TRBrace.java +++ b/src/main/java/org/sablecc/sablecc/node/TRBrace.java @@ -16,15 +16,12 @@ public final class TRBrace extends Token super("}", line, pos); } - public TRBrace(TRBrace token) - { - super(token); - } - @Override public TRBrace clone() { - return new TRBrace(this); + TRBrace cloned = new TRBrace(this.getLine(), this.getPos()); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/TRPar.java b/src/main/java/org/sablecc/sablecc/node/TRPar.java index c797774..84445c2 100644 --- a/src/main/java/org/sablecc/sablecc/node/TRPar.java +++ b/src/main/java/org/sablecc/sablecc/node/TRPar.java @@ -16,15 +16,12 @@ public final class TRPar extends Token super(")", line, pos); } - public TRPar(TRPar token) - { - super(token); - } - @Override public TRPar clone() { - return new TRPar(this); + TRPar cloned = new TRPar(this.getLine(), this.getPos()); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/TSemicolon.java b/src/main/java/org/sablecc/sablecc/node/TSemicolon.java index 144ab07..92ebc84 100644 --- a/src/main/java/org/sablecc/sablecc/node/TSemicolon.java +++ b/src/main/java/org/sablecc/sablecc/node/TSemicolon.java @@ -16,15 +16,12 @@ public final class TSemicolon extends Token super(";", line, pos); } - public TSemicolon(TSemicolon token) - { - super(token); - } - @Override public TSemicolon clone() { - return new TSemicolon(this); + TSemicolon cloned = new TSemicolon(this.getLine(), this.getPos()); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/TSlash.java b/src/main/java/org/sablecc/sablecc/node/TSlash.java index 6b2fd73..91eccb8 100644 --- a/src/main/java/org/sablecc/sablecc/node/TSlash.java +++ b/src/main/java/org/sablecc/sablecc/node/TSlash.java @@ -16,15 +16,12 @@ public final class TSlash extends Token super("/", line, pos); } - public TSlash(TSlash token) - { - super(token); - } - @Override public TSlash clone() { - return new TSlash(this); + TSlash cloned = new TSlash(this.getLine(), this.getPos()); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/TStar.java b/src/main/java/org/sablecc/sablecc/node/TStar.java index c683591..951f1b2 100644 --- a/src/main/java/org/sablecc/sablecc/node/TStar.java +++ b/src/main/java/org/sablecc/sablecc/node/TStar.java @@ -16,15 +16,12 @@ public final class TStar extends Token super("*", line, pos); } - public TStar(TStar token) - { - super(token); - } - @Override public TStar clone() { - return new TStar(this); + TStar cloned = new TStar(this.getLine(), this.getPos()); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/TStates.java b/src/main/java/org/sablecc/sablecc/node/TStates.java index 45a75a7..44c82ac 100644 --- a/src/main/java/org/sablecc/sablecc/node/TStates.java +++ b/src/main/java/org/sablecc/sablecc/node/TStates.java @@ -16,15 +16,12 @@ public final class TStates extends Token super("States", line, pos); } - public TStates(TStates token) - { - super(token); - } - @Override public TStates clone() { - return new TStates(this); + TStates cloned = new TStates(this.getLine(), this.getPos()); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/TString.java b/src/main/java/org/sablecc/sablecc/node/TString.java index 452162e..c48a3a0 100644 --- a/src/main/java/org/sablecc/sablecc/node/TString.java +++ b/src/main/java/org/sablecc/sablecc/node/TString.java @@ -16,15 +16,12 @@ public final class TString extends Token super(text, line, pos); } - public TString(TString token) - { - super(token); - } - @Override public TString clone() { - return new TString(this); + TString cloned = new TString(this.getText(), this.getLine(), this.getPos()); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/TSyntax.java b/src/main/java/org/sablecc/sablecc/node/TSyntax.java index 4e7340f..daa3504 100644 --- a/src/main/java/org/sablecc/sablecc/node/TSyntax.java +++ b/src/main/java/org/sablecc/sablecc/node/TSyntax.java @@ -16,15 +16,12 @@ public final class TSyntax extends Token super("Syntax", line, pos); } - public TSyntax(TSyntax token) - { - super(token); - } - @Override public TSyntax clone() { - return new TSyntax(this); + TSyntax cloned = new TSyntax(this.getLine(), this.getPos()); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/TTokenSpecifier.java b/src/main/java/org/sablecc/sablecc/node/TTokenSpecifier.java index b37b101..c58dcb7 100644 --- a/src/main/java/org/sablecc/sablecc/node/TTokenSpecifier.java +++ b/src/main/java/org/sablecc/sablecc/node/TTokenSpecifier.java @@ -16,15 +16,12 @@ public final class TTokenSpecifier extends Token super("T", line, pos); } - public TTokenSpecifier(TTokenSpecifier token) - { - super(token); - } - @Override public TTokenSpecifier clone() { - return new TTokenSpecifier(this); + TTokenSpecifier cloned = new TTokenSpecifier(this.getLine(), this.getPos()); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/TTokens.java b/src/main/java/org/sablecc/sablecc/node/TTokens.java index fac6c7a..3234e79 100644 --- a/src/main/java/org/sablecc/sablecc/node/TTokens.java +++ b/src/main/java/org/sablecc/sablecc/node/TTokens.java @@ -16,15 +16,12 @@ public final class TTokens extends Token super("Tokens", line, pos); } - public TTokens(TTokens token) - { - super(token); - } - @Override public TTokens clone() { - return new TTokens(this); + TTokens cloned = new TTokens(this.getLine(), this.getPos()); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/TTree.java b/src/main/java/org/sablecc/sablecc/node/TTree.java index 91100d3..e101e44 100644 --- a/src/main/java/org/sablecc/sablecc/node/TTree.java +++ b/src/main/java/org/sablecc/sablecc/node/TTree.java @@ -16,15 +16,12 @@ public final class TTree extends Token super("Tree", line, pos); } - public TTree(TTree token) - { - super(token); - } - @Override public TTree clone() { - return new TTree(this); + TTree cloned = new TTree(this.getLine(), this.getPos()); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/java/org/sablecc/sablecc/node/Token.java b/src/main/java/org/sablecc/sablecc/node/Token.java index 628077f..57c3cfd 100644 --- a/src/main/java/org/sablecc/sablecc/node/Token.java +++ b/src/main/java/org/sablecc/sablecc/node/Token.java @@ -25,15 +25,7 @@ public abstract class Token extends Node implements IToken protected Token() { - this((String)null); - } - - protected Token(Token token) - { - super(token); - this.text = token.text; - this.line = token.line; - this.pos = token.pos; + this(null); } @Override diff --git a/src/main/resources/org/sablecc/sablecc/alternatives.txt b/src/main/resources/org/sablecc/sablecc/alternatives.txt index 3dd2fc3..bb0c56f 100644 --- a/src/main/resources/org/sablecc/sablecc/alternatives.txt +++ b/src/main/resources/org/sablecc/sablecc/alternatives.txt @@ -79,29 +79,26 @@ $ Macro:CloneHeader - public $0$($0$ node) + @Override + public $0$ clone() { - super(node); + $0$ cloned = new $0$(); $ Macro:CloneBodyNode - set$0$(cloneNode(node._$1$_)); + cloned.set$0$(cloneNode(this._$1$_)); $ Macro:CloneBodyList - set$0$(cloneList(node._$1$_)); + cloned.set$0$(cloneList(this._$1$_)); $ Macro:CloneTail - } - - @Override - public $0$ clone() - { - return new $0$(this); + cloned.initSourcePositionsFrom(this); + return cloned; } $ diff --git a/src/main/resources/org/sablecc/sablecc/productions.txt b/src/main/resources/org/sablecc/sablecc/productions.txt index 2957990..fc84157 100644 --- a/src/main/resources/org/sablecc/sablecc/productions.txt +++ b/src/main/resources/org/sablecc/sablecc/productions.txt @@ -15,11 +15,6 @@ public abstract class $1$ extends Node public $1$() {} - public $1$($1$ node) - { - super(node); - } - @Override public abstract $1$ clone(); } diff --git a/src/main/resources/org/sablecc/sablecc/tokens.txt b/src/main/resources/org/sablecc/sablecc/tokens.txt index ce4cfbc..4cf4f70 100644 --- a/src/main/resources/org/sablecc/sablecc/tokens.txt +++ b/src/main/resources/org/sablecc/sablecc/tokens.txt @@ -24,15 +24,12 @@ public final class $1$ extends Token super(text, line, pos); } - public $1$($1$ token) - { - super(token); - } - @Override public $1$ clone() { - return new $1$(this); + $1$ cloned = new $1$(this.getText(), this.getLine(), this.getPos()); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override @@ -63,15 +60,12 @@ public final class $1$ extends Token super("$2$", line, pos); } - public $1$($1$ token) - { - super(token); - } - @Override public $1$ clone() { - return new $1$(this); + $1$ cloned = new $1$(this.getLine(), this.getPos()); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override diff --git a/src/main/resources/org/sablecc/sablecc/utils.txt b/src/main/resources/org/sablecc/sablecc/utils.txt index b66f883..81ccc43 100644 --- a/src/main/resources/org/sablecc/sablecc/utils.txt +++ b/src/main/resources/org/sablecc/sablecc/utils.txt @@ -28,17 +28,14 @@ public final class Start extends Node setEOF(_eof_); } - public Start(Start node) - { - super(node); - set$1$(cloneNode(node._$2$_)); - setEOF(cloneNode(node._eof_)); - } - @Override public Start clone() { - return new Start(this); + Start cloned = new Start(); + cloned.set$1$(cloneNode(this._$2$_)); + cloned.setEOF(cloneNode(this._eof_)); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override @@ -163,15 +160,12 @@ public final class EOF extends Token super("", line, pos); } - public EOF(EOF token) - { - super(token); - } - @Override public EOF clone() { - return new EOF(this); + EOF cloned = new EOF(this.getLine(), this.getPos()); + cloned.initSourcePositionsFrom(this); + return cloned; } @Override @@ -211,15 +205,7 @@ public abstract class Token extends Node implements IToken protected Token() { - this((String)null); - } - - protected Token(Token token) - { - super(token); - this.text = token.text; - this.line = token.line; - this.pos = token.pos; + this(null); } @Override @@ -334,14 +320,8 @@ public abstract class Node extends PositionedNode implements Switchable, Cloneab protected Node() {} - protected Node(Node node) - { - super(node); - // Copy constructor intentionally does not keep parent! - // The new copied node is not a child of the original parent anymore. - this.parent = null; - } - + // clone intentionally does not keep parent! + // The new copied node is not a child of the original parent anymore. @Override public abstract Node clone(); -- GitLab