summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--config/list/compiler.lst7
-rw-r--r--sources/meta/GenerateAll.java3
-rw-r--r--sources/scalac/ast/.cvsignore3
-rw-r--r--sources/scalac/ast/LazyTreeCopier.java.tmpl37
-rw-r--r--sources/scalac/ast/LazyTreeFactory.java422
-rw-r--r--sources/scalac/ast/StrictTreeCopier.java.tmpl34
-rw-r--r--sources/scalac/ast/StrictTreeFactory.java323
-rw-r--r--sources/scalac/ast/TreeCopier.java.tmpl26
-rw-r--r--sources/scalac/ast/TreeCopyFactory.java163
9 files changed, 107 insertions, 911 deletions
diff --git a/config/list/compiler.lst b/config/list/compiler.lst
index 906177b92d..ed7d8ae2b0 100644
--- a/config/list/compiler.lst
+++ b/config/list/compiler.lst
@@ -22,17 +22,18 @@ ast/parser/Tokens.java
ast/AbstractTreeCopyFactory.java
ast/DefaultTreeFactory.java
-ast/LazyTreeFactory.java
-ast/StrictTreeFactory.java
+ast/LazyTreeCopier.java
+ast/StrictTreeCopier.java
ast/SubstTransformer.java
ast/Transformer.java
ast/Traverser.java
ast/Tree.java
-ast/TreeCopyFactory.java
+ast/TreeCopier.java
ast/TreeFactory.java
ast/TreeGen.java
ast/TreeInfo.java
ast/TreeList.java
+
ast/printer/HTMLTreePrinter.java
ast/printer/TextTreePrinter.java
ast/printer/TreePrinter.java
diff --git a/sources/meta/GenerateAll.java b/sources/meta/GenerateAll.java
index ca8a77824f..761d5cf3c6 100644
--- a/sources/meta/GenerateAll.java
+++ b/sources/meta/GenerateAll.java
@@ -29,6 +29,9 @@ public class GenerateAll extends AbstractMain {
public static final AbstractFileExpander[] expanders = {
new meta.scalac.ast.MetaTreeFactory(),
new meta.scalac.ast.MetaDefaultTreeFactory(),
+ new meta.scalac.ast.MetaTreeCopier(),
+ new meta.scalac.ast.MetaStrictTreeCopier(),
+ new meta.scalac.ast.MetaLazyTreeCopier(),
};
//########################################################################
diff --git a/sources/scalac/ast/.cvsignore b/sources/scalac/ast/.cvsignore
index 5d1eae05d7..c631426a7c 100644
--- a/sources/scalac/ast/.cvsignore
+++ b/sources/scalac/ast/.cvsignore
@@ -1,2 +1,5 @@
DefaultTreeFactory.java
+LazyTreeCopier.java
+StrictTreeCopier.java
+TreeCopier.java
TreeFactory.java
diff --git a/sources/scalac/ast/LazyTreeCopier.java.tmpl b/sources/scalac/ast/LazyTreeCopier.java.tmpl
new file mode 100644
index 0000000000..31608580ab
--- /dev/null
+++ b/sources/scalac/ast/LazyTreeCopier.java.tmpl
@@ -0,0 +1,37 @@
+/* ____ ____ ____ ____ ______ *\
+** / __// __ \/ __// __ \/ ____/ SOcos COmpiles Scala **
+** __\_ \/ /_/ / /__/ /_/ /\_ \ (c) 2002, LAMP/EPFL **
+** /_____/\____/\___/\____/____/ **
+\* */
+
+// $Id$
+
+package scalac.ast;
+
+{#Imports#}
+
+/**
+ * A tree copier that returns a new tree only if some fields have
+ * changed
+ */
+public class LazyTreeCopier implements TreeCopier {
+
+ //########################################################################
+ // Protected Fields
+
+ protected final TreeFactory make;
+
+ //########################################################################
+ // Public Constructors
+
+ public LazyTreeCopier(TreeFactory make) {
+ this.make = make;
+ }
+
+ //########################################################################
+ // Public Methods
+
+ {#TreeMethods#}
+
+ //########################################################################
+}
diff --git a/sources/scalac/ast/LazyTreeFactory.java b/sources/scalac/ast/LazyTreeFactory.java
deleted file mode 100644
index 701ffc69a7..0000000000
--- a/sources/scalac/ast/LazyTreeFactory.java
+++ /dev/null
@@ -1,422 +0,0 @@
-/* ____ ____ ____ ____ ______ *\
-** / __// __ \/ __// __ \/ ____/ SOcos COmpiles Scala **
-** __\_ \/ /_/ / /__/ /_/ /\_ \ (c) 2002, LAMP/EPFL **
-** /_____/\____/\___/\____/____/ **
-** **
-** $Id$
-\* */
-
-package scalac.ast;
-
-import scalac.util.Name;
-import Tree.*;
-
-public class LazyTreeCopier extends AbstractTreeCopier {
- protected final TreeFactory make;
-
- public LazyTreeCopier(TreeFactory make) {
- this.make = make;
- }
-
- public Tree Bad(Tree tree) {
- return tree;
- }
-
- public Tree ClassDef(Tree tree,
- int mods,
- Name name,
- TypeDef[] tparams,
- ValDef[][] vparams,
- Tree tpe,
- Template impl) {
- ClassDef t = (ClassDef)tree;
- if ((t.mods == mods) &&
- (t.name == name) &&
- (t.tparams == tparams) &&
- (t.vparams == vparams) &&
- (t.tpe == tpe) &&
- (t.impl == impl))
- return t;
- tree = make.ClassDef(t.pos, mods, name, tparams, vparams, tpe, impl);
- attribute(tree, t);
- return tree;
- }
-
- public Tree PackageDef(Tree tree,
- Tree packaged,
- Template impl) {
- PackageDef t = (PackageDef)tree;
- if ((t.packaged == packaged) &&
- (t.impl == impl))
- return t;
- tree = make.PackageDef(t.pos, packaged, impl);
- attribute(tree, t);
- return tree;
- }
-
- public Tree ModuleDef(Tree tree,
- int mods,
- Name name,
- Tree tpe,
- Template impl) {
- ModuleDef t = (ModuleDef)tree;
- if ((t.mods == mods) &&
- (t.name == name) &&
- (t.tpe == tpe) &&
- (t.impl == impl))
- return t;
- tree = make.ModuleDef(t.pos, mods, name, tpe, impl);
- attribute(tree, t);
- return tree;
- }
-
- public Tree ValDef(Tree tree,
- int mods,
- Name name,
- Tree tpe,
- Tree rhs) {
- ValDef t = (ValDef)tree;
- if ((t.mods == mods) &&
- (t.name == name) &&
- (t.tpe == tpe) &&
- (t.rhs == rhs))
- return t;
- tree = make.ValDef(t.pos, mods, name, tpe, rhs);
- attribute(tree, t);
- return tree;
- }
-
- public Tree PatDef(Tree tree,
- int mods,
- Tree pat,
- Tree rhs) {
- PatDef t = (PatDef)tree;
- if ((t.mods == mods) &&
- (t.pat == pat) &&
- (t.rhs == rhs))
- return t;
- tree = make.PatDef(t.pos, mods, pat, rhs);
- attribute(tree, t);
- return tree;
- }
-
- public Tree DefDef(Tree tree,
- int mods,
- Name name,
- TypeDef[] tparams,
- ValDef[][] vparams,
- Tree tpe,
- Tree rhs) {
- DefDef t = (DefDef)tree;
- if ((t.mods == mods) &&
- (t.name == name) &&
- (t.tparams == tparams) &&
- (t.vparams == vparams) &&
- (t.tpe == tpe) &&
- (t.rhs == rhs))
- return t;
- tree = make.DefDef(t.pos, mods, name, tparams, vparams, tpe, rhs);
- attribute(tree, t);
- return tree;
- }
-
- public Tree TypeDef(Tree tree,
- int mods,
- Name name,
- Tree rhs) {
- TypeDef t = (TypeDef)tree;
- if ((t.mods == mods) &&
- (t.name == name) &&
- (t.rhs == rhs))
- return t;
- tree = make.TypeDef(t.pos, mods, name, rhs);
- attribute(tree, t);
- return tree;
- }
-
- public Tree Import(Tree tree,
- Tree expr,
- Name[] selectors) {
- Import t = (Import)tree;
- if (t.expr == expr && t.selectors == selectors)
- return t;
- tree = make.Import(t.pos, expr, selectors);
- attribute(tree, t);
- return tree;
- }
-
- public Tree CaseDef(Tree tree,
- Tree pat,
- Tree guard,
- Tree body) {
- CaseDef t = (CaseDef)tree;
- if ((t.pat == pat) &&
- (t.guard == guard) &&
- (t.body == body))
- return t;
- tree = make.CaseDef(t.pos, pat, guard, body);
- attribute(tree, t);
- return tree;
- }
-
- public Template Template(Tree tree,
- Tree[] parents,
- Tree[] body) {
- Template t = (Template)tree;
- if ((t.parents == parents) &&
- (t.body == body))
- return t;
- Template newTree = make.Template(t.pos, parents, body);
- attribute(newTree, t);
- return newTree;
- }
-
- public Tree LabelDef(Tree tree,
- Tree[] params,
- Tree rhs) {
- LabelDef t = (LabelDef)tree;
- if ((t.params == params) &&
- (t.rhs == rhs))
- return t;
- tree = make.LabelDef(t.pos,params,rhs);
- attribute(tree,t);
- return tree;
- }
-
- public Tree Block(Tree tree,
- Tree[] stats) {
- Block t = (Block)tree;
- if (t.stats == stats)
- return t;
- tree = make.Block(t.pos, stats);
- attribute(tree, t);
- return tree;
- }
-
- public Tree Tuple(Tree tree,
- Tree[] trees) {
- Tuple t = (Tuple)tree;
- if (t.trees == trees)
- return t;
- tree = make.Tuple(t.pos, trees);
- attribute(tree, t);
- return tree;
- }
-
- public Tree Visitor(Tree tree,
- CaseDef[] cases) {
- Visitor t = (Visitor)tree;
- if (t.cases == cases)
- return t;
- tree = make.Visitor(t.pos, cases);
- attribute(tree, t);
- return tree;
- }
-
- public Tree Function(Tree tree,
- ValDef[] vparams,
- Tree body) {
- Function t = (Function)tree;
- if ((t.vparams == vparams) &&
- (t.body == body))
- return t;
- tree = make.Function(t.pos, vparams, body);
- attribute(tree, t);
- return tree;
- }
-
- public Tree Assign(Tree tree,
- Tree lhs,
- Tree rhs) {
- Assign t = (Assign)tree;
- if ((t.lhs == lhs) &&
- (t.rhs == rhs))
- return t;
- tree = make.Assign(t.pos, lhs, rhs);
- attribute(tree, t);
- return tree;
- }
-
- public Tree If(Tree tree,
- Tree cond,
- Tree thenp,
- Tree elsep) {
- If t = (If)tree;
- if ((t.cond == cond) &&
- (t.thenp == thenp) &&
- (t.elsep == elsep))
- return t;
- tree = make.If(t.pos, cond, thenp, elsep);
- attribute(tree, t);
- return tree;
- }
-
- public Tree New(Tree tree,
- Template templ) {
- New t = (New)tree;
- if (t.templ == templ)
- return t;
- tree = make.New(t.pos, templ);
- attribute(tree, t);
- return tree;
- }
-
- public Tree Typed(Tree tree,
- Tree expr,
- Tree tpe) {
- Typed t = (Typed)tree;
- if ((t.expr == expr) &&
- (t.tpe == tpe))
- return t;
- tree = make.Typed(t.pos, expr, tpe);
- attribute(tree, t);
- return tree;
- }
-
- public Tree TypeApply(Tree tree,
- Tree fun,
- Tree[] args) {
- TypeApply t = (TypeApply)tree;
- if ((t.fun == fun) &&
- (t.args == args))
- return t;
- tree = make.TypeApply(t.pos, fun, args);
- attribute(tree, t);
- return tree;
- }
-
- public Tree Apply(Tree tree,
- Tree fun,
- Tree[] args) {
- Apply t = (Apply)tree;
- if ((t.fun == fun) &&
- (t.args == args))
- return t;
- tree = make.Apply(t.pos, fun, args);
- attribute(tree, t);
- return tree;
- }
-
- public Tree Super(Tree tree,
- Tree tpe) {
- Super t = (Super)tree;
- if (t.tpe == tpe)
- return t;
- tree = make.Super(t.pos, tpe);
- attribute(tree, t);
- return tree;
- }
-
- public Tree This(Tree tree,
- Tree qualifier) {
- This t = (This)tree;
- if (t.qualifier == qualifier)
- return t;
- tree = make.This(t.pos, qualifier);
- attribute(tree, t);
- return tree;
- }
-
- public Tree Select(Tree tree,
- Tree qualifier,
- Name selector) {
- Select t = (Select)tree;
- if ((t.qualifier == qualifier) &&
- (t.selector == selector))
- return t;
- tree = make.Select(t.pos, qualifier, selector);
- attribute(tree, t);
- return tree;
- }
-
- public Tree Ident(Tree tree,
- Name name) {
- Ident t = (Ident)tree;
- if (t.name == name)
- return t;
- tree = make.Ident(t.pos, name);
- attribute(tree, t);
- return tree;
- }
-
- public Tree Literal(Tree tree,
- Object value) {
- Literal t = (Literal)tree;
- if (t.value == value)
- return t;
- tree = make.Literal(t.pos, value);
- attribute(tree, t);
- return tree;
- }
-
- public Tree TypeTerm(Tree tree) {
- return tree;
- }
-
- public Tree SingletonType(Tree tree,
- Tree ref) {
- SingletonType t = (SingletonType)tree;
- if (t.ref == ref)
- return t;
- tree = make.SingletonType(t.pos, ref);
- attribute(tree, t);
- return tree;
- }
-
- public Tree SelectFromType(Tree tree,
- Tree qualifier,
- Name selector) {
- SelectFromType t = (SelectFromType)tree;
- if (t.qualifier == qualifier &&
- t.selector == selector)
- return t;
- tree = make.SelectFromType(t.pos, qualifier, selector);
- attribute(tree, t);
- return tree;
- }
-
- public Tree FunType(Tree tree,
- Tree[] argtpes,
- Tree restpe) {
- FunType t = (FunType)tree;
- if ((t.argtpes == argtpes) &&
- (t.restpe == restpe))
- return t;
- tree = make.FunType(t.pos, argtpes, restpe);
- attribute(tree, t);
- return tree;
- }
-
- public Tree CompoundType(Tree tree,
- Tree[] parents,
- Tree[] refinements) {
- CompoundType t = (CompoundType)tree;
- if ((t.parents == parents) &&
- (t.refinements == refinements))
- return t;
- tree = make.CompoundType(t.pos, parents, refinements);
- attribute(tree, t);
- return tree;
- }
-
- public Tree AppliedType(Tree tree,
- Tree tpe,
- Tree[] args) {
- AppliedType t = (AppliedType)tree;
- if ((t.tpe == tpe) &&
- (t.args == args))
- return t;
- tree = make.AppliedType(t.pos, tpe, args);
- attribute(tree, t);
- return tree;
- }
-
- public Tree CovariantType(Tree tree,
- Tree tpe) {
- CovariantType t = (CovariantType)tree;
- if (t.tpe == tpe) return t;
- tree = make.CovariantType(t.pos, tpe);
- attribute(tree, t);
- return tree;
- }
-}
diff --git a/sources/scalac/ast/StrictTreeCopier.java.tmpl b/sources/scalac/ast/StrictTreeCopier.java.tmpl
new file mode 100644
index 0000000000..88ea139eef
--- /dev/null
+++ b/sources/scalac/ast/StrictTreeCopier.java.tmpl
@@ -0,0 +1,34 @@
+/* ____ ____ ____ ____ ______ *\
+** / __// __ \/ __// __ \/ ____/ SOcos COmpiles Scala **
+** __\_ \/ /_/ / /__/ /_/ /\_ \ (c) 2002, LAMP/EPFL **
+** /_____/\____/\___/\____/____/ **
+\* */
+
+// $Id$
+
+package scalac.ast;
+
+{#Imports#}
+
+/** A tree copier that returns always a new tree */
+public class StrictTreeCopier implements TreeCopier {
+
+ //########################################################################
+ // Protected Fields
+
+ protected final TreeFactory make;
+
+ //########################################################################
+ // Public Constructors
+
+ public StrictTreeCopier(TreeFactory make) {
+ this.make = make;
+ }
+
+ //########################################################################
+ // Public Methods
+
+ {#TreeMethods#}
+
+ //########################################################################
+}
diff --git a/sources/scalac/ast/StrictTreeFactory.java b/sources/scalac/ast/StrictTreeFactory.java
deleted file mode 100644
index 8abfa3e811..0000000000
--- a/sources/scalac/ast/StrictTreeFactory.java
+++ /dev/null
@@ -1,323 +0,0 @@
-/* ____ ____ ____ ____ ______ *\
-** / __// __ \/ __// __ \/ ____/ SOcos COmpiles Scala **
-** __\_ \/ /_/ / /__/ /_/ /\_ \ (c) 2002, LAMP/EPFL **
-** /_____/\____/\___/\____/____/ **
-** **
-\* */
-
-// $OldId: StrictTreeFactory.java,v 1.6 2002/04/19 10:57:23 gamboni Exp $
-// $Id$
-
-package scalac.ast;
-
-import scalac.util.Name;
-import Tree.*;
-
-public class StrictTreeCopier extends AbstractTreeCopier {
- protected final TreeFactory make;
-
- public StrictTreeCopier(TreeFactory make) {
- this.make = make;
- }
-
- public Tree Bad(Tree tree) {
- return tree;
- }
-
- public Tree ClassDef(Tree tree,
- int mods,
- Name name,
- TypeDef[] tparams,
- ValDef[][] vparams,
- Tree tpe,
- Template impl) {
- ClassDef t = (ClassDef)tree;
- tree = make.ClassDef(t.pos, mods, name, tparams, vparams, tpe, impl);
- attribute(tree, t);
- return tree;
- }
-
- public Tree PackageDef(Tree tree,
- Tree packaged,
- Template impl) {
- PackageDef t = (PackageDef)tree;
- tree = make.PackageDef(t.pos, packaged, impl);
- attribute(tree, t);
- return tree;
- }
-
- public Tree ModuleDef(Tree tree,
- int mods,
- Name name,
- Tree tpe,
- Template impl) {
- ModuleDef t = (ModuleDef)tree;
- tree = make.ModuleDef(t.pos, mods, name, tpe, impl);
- attribute(tree, t);
- return tree;
- }
-
- public Tree ValDef(Tree tree,
- int mods,
- Name name,
- Tree tpe,
- Tree rhs) {
- ValDef t = (ValDef)tree;
- tree = make.ValDef(t.pos, mods, name, tpe, rhs);
- attribute(tree, t);
- return tree;
- }
-
- public Tree PatDef(Tree tree,
- int mods,
- Tree pat,
- Tree rhs) {
- PatDef t = (PatDef)tree;
- tree = make.PatDef(t.pos, mods, pat, rhs);
- attribute(tree, t);
- return tree;
- }
-
- public Tree DefDef(Tree tree,
- int mods,
- Name name,
- TypeDef[] tparams,
- ValDef[][] vparams,
- Tree tpe,
- Tree rhs) {
- DefDef t = (DefDef)tree;
- tree = make.DefDef(t.pos, mods, name, tparams, vparams, tpe, rhs);
- attribute(tree, t);
- return tree;
- }
-
- public Tree TypeDef(Tree tree,
- int mods,
- Name name,
- Tree rhs) {
- TypeDef t = (TypeDef)tree;
- tree = make.TypeDef(t.pos, mods, name, rhs);
- attribute(tree, t);
- return tree;
- }
-
- public Tree Import(Tree tree,
- Tree expr,
- Name[] selectors) {
- Import t = (Import)tree;
- tree = make.Import(t.pos, expr, selectors);
- attribute(tree, t);
- return tree;
- }
-
- public Tree CaseDef(Tree tree,
- Tree pat,
- Tree guard,
- Tree body) {
- CaseDef t = (CaseDef)tree;
- tree = make.CaseDef(t.pos, pat, guard, body);
- attribute(tree, t);
- return tree;
- }
-
- public Template Template(Tree tree,
- Tree[] baseClasses,
- Tree[] body) {
- Template t = (Template)tree;
- Template newTree = make.Template(t.pos, baseClasses, body);
- attribute(newTree, t);
- return newTree;
- }
-
- public Tree LabelDef(Tree tree,
- Tree[] params,
- Tree rhs) {
- LabelDef t = (LabelDef)tree;
- tree = make.LabelDef(t.pos,params,rhs);
- attribute(tree,t);
- return tree;
- }
-
- public Tree Block(Tree tree,
- Tree[] stats) {
- Block t = (Block)tree;
- tree = make.Block(t.pos, stats);
- attribute(tree, t);
- return tree;
- }
-
- public Tree Tuple(Tree tree,
- Tree[] trees) {
- Tuple t = (Tuple)tree;
- tree = make.Tuple(t.pos, trees);
- attribute(tree, t);
- return tree;
- }
-
- public Tree Visitor(Tree tree,
- CaseDef[] cases) {
- Visitor t = (Visitor)tree;
- tree = make.Visitor(t.pos, cases);
- attribute(tree, t);
- return tree;
- }
-
- public Tree Function(Tree tree,
- ValDef[] vparams,
- Tree body) {
- Function t = (Function)tree;
- tree = make.Function(t.pos, vparams, body);
- attribute(tree, t);
- return tree;
- }
-
- public Tree Assign(Tree tree,
- Tree lhs,
- Tree rhs) {
- Assign t = (Assign)tree;
- tree = make.Assign(t.pos, lhs, rhs);
- attribute(tree, t);
- return tree;
- }
-
- public Tree If(Tree tree,
- Tree cond,
- Tree thenp,
- Tree elsep) {
- If t = (If)tree;
- tree = make.If(t.pos, cond, thenp, elsep);
- attribute(tree, t);
- return tree;
- }
-
- public Tree New(Tree tree,
- Template templ) {
- New t = (New)tree;
- tree = make.New(t.pos, templ);
- attribute(tree, t);
- return tree;
- }
-
- public Tree Typed(Tree tree,
- Tree expr,
- Tree tpe) {
- Typed t = (Typed)tree;
- tree = make.Typed(t.pos, expr, tpe);
- attribute(tree, t);
- return tree;
- }
-
- public Tree TypeApply(Tree tree,
- Tree fun,
- Tree[] args) {
- TypeApply t = (TypeApply)tree;
- tree = make.TypeApply(t.pos, fun, args);
- attribute(tree, t);
- return tree;
- }
-
- public Tree Apply(Tree tree,
- Tree fun,
- Tree[] args) {
- Apply t = (Apply)tree;
- tree = make.Apply(t.pos, fun, args);
- attribute(tree, t);
- return tree;
- }
-
- public Tree This(Tree tree, Tree qualifier) {
- This t = (This)tree;
- tree = make.This(t.pos, qualifier);
- attribute(tree, t);
- return tree;
- }
-
- public Tree Super(Tree tree,
- Tree tpe) {
- Super t = (Super)tree;
- tree = make.Super(t.pos, tpe);
- attribute(tree, t);
- return tree;
- }
-
- public Tree Select(Tree tree,
- Tree qualifier,
- Name selector) {
- Select t = (Select)tree;
- tree = make.Select(t.pos, qualifier, selector);
- attribute(tree, t);
- return tree;
- }
-
- public Tree Ident(Tree tree,
- Name name) {
- Ident t = (Ident)tree;
- tree = make.Ident(t.pos, name);
- attribute(tree, t);
- return tree;
- }
-
- public Tree Literal(Tree tree,
- Object value) {
- Literal t = (Literal)tree;
- tree = make.Literal(t.pos, value);
- attribute(tree, t);
- return tree;
- }
-
- public Tree TypeTerm(Tree tree) {
- TypeTerm t = (TypeTerm) tree;
- tree = make.TypeTerm(t.pos);
- attribute(tree, t);
- return tree;
- }
-
- public Tree SingletonType(Tree tree, Tree ref) {
- SingletonType t = (SingletonType)tree;
- tree = make.SingletonType(t.pos, ref);
- attribute(tree, t);
- return tree;
- }
-
- public Tree SelectFromType(Tree tree, Tree qualifier, Name selector) {
- SelectFromType t = (SelectFromType)tree;
- tree = make.SelectFromType(t.pos, qualifier, selector);
- attribute(tree, t);
- return tree;
- }
-
- public Tree FunType(Tree tree,
- Tree[] argtpe,
- Tree restpe) {
- FunType t = (FunType)tree;
- tree = make.FunType(t.pos, argtpe, restpe);
- attribute(tree, t);
- return tree;
- }
-
- public Tree CompoundType(Tree tree,
- Tree[] baseTypes,
- Tree[] refinements) {
- CompoundType t = (CompoundType)tree;
- tree = make.CompoundType(t.pos, baseTypes, refinements);
- attribute(tree, t);
- return tree;
- }
-
- public Tree CovariantType(Tree tree,
- Tree clazz) {
- CovariantType t = (CovariantType)tree;
- tree = make.CovariantType(t.pos, clazz);
- attribute(tree, t);
- return tree;
- }
-
- public Tree AppliedType(Tree tree,
- Tree tpe,
- Tree[] args) {
- AppliedType t = (AppliedType)tree;
- tree = make.AppliedType(t.pos, tpe, args);
- attribute(tree, t);
- return tree;
- }
-}
diff --git a/sources/scalac/ast/TreeCopier.java.tmpl b/sources/scalac/ast/TreeCopier.java.tmpl
new file mode 100644
index 0000000000..27a9cf476e
--- /dev/null
+++ b/sources/scalac/ast/TreeCopier.java.tmpl
@@ -0,0 +1,26 @@
+/* ____ ____ ____ ____ ______ *\
+** / __// __ \/ __// __ \/ ____/ SOcos COmpiles Scala **
+** __\_ \/ /_/ / /__/ /_/ /\_ \ (c) 2002, LAMP/EPFL **
+** /_____/\____/\___/\____/____/ **
+\* */
+
+// $Id$
+
+package scalac.ast;
+
+{#Imports#}
+
+/**
+ * Interface for a kind of factory which, for each node constructor,
+ * takes an original node from which some data will be copied or
+ * shared.
+ */
+public interface TreeCopier {
+
+ //########################################################################
+ // Public Methods
+
+ {#TreeMethods#}
+
+ //########################################################################
+}
diff --git a/sources/scalac/ast/TreeCopyFactory.java b/sources/scalac/ast/TreeCopyFactory.java
deleted file mode 100644
index d1df6fc91e..0000000000
--- a/sources/scalac/ast/TreeCopyFactory.java
+++ /dev/null
@@ -1,163 +0,0 @@
-/* ____ ____ ____ ____ ______ *\
-** / __// __ \/ __// __ \/ ____/ SOcos COmpiles Scala **
-** __\_ \/ /_/ / /__/ /_/ /\_ \ (c) 2002, LAMP/EPFL **
-** /_____/\____/\___/\____/____/ **
-** **
-** $Id$
-\* */
-
-package scalac.ast;
-
-import scalac.util.Name;
-import Tree.*;
-
-/**
- * Interface for a kind of factory which, for each node constructor,
- * takes an original node from which some data will be copied or shared.
- *
- * @author Michel Schinz
- * @version 1.1
- */
-public interface TreeCopier {
-
- public void attribute(Tree newTree, Tree oldTree);
-
- public Tree Bad(Tree tree);
-
- public Tree ClassDef(Tree tree,
- int mods,
- Name name,
- TypeDef[] tparams,
- ValDef[][] vparams,
- Tree tpe,
- Template impl);
-
- public Tree PackageDef(Tree tree,
- Tree packaged,
- Template impl);
-
- public Tree ModuleDef(Tree tree,
- int mods,
- Name name,
- Tree tpe,
- Template impl);
-
- public Tree ValDef(Tree tree,
- int mods,
- Name name,
- Tree tpe,
- Tree rhs);
-
- public Tree PatDef(Tree tree,
- int mods,
- Tree pat,
- Tree rhs);
-
- public Tree DefDef(Tree tree,
- int mods,
- Name name,
- TypeDef[] tparams,
- ValDef[][] vparams,
- Tree tpe,
- Tree rhs);
-
- public Tree TypeDef(Tree tree,
- int mods,
- Name name,
- Tree rhs);
-
- public Tree Import(Tree tree,
- Tree expr,
- Name[] selectors);
-
- public Tree CaseDef(Tree tree,
- Tree pat,
- Tree guard,
- Tree body);
-
- public Template Template(Tree tree,
- Tree[] baseClasses,
- Tree[] body);
-
- public Tree LabelDef(Tree tree,
- Tree[] params,
- Tree rhs);
-
- public Tree Block(Tree tree,
- Tree[] stats);
-
- public Tree Tuple(Tree tree,
- Tree[] trees);
-
- public Tree Visitor(Tree tree,
- CaseDef[] cases);
-
- public Tree Function(Tree tree,
- ValDef[] vparams,
- Tree body);
-
- public Tree Assign(Tree tree,
- Tree lhs,
- Tree rhs);
-
- public Tree If(Tree tree,
- Tree cond,
- Tree thenp,
- Tree elsep);
-
- public Tree New(Tree tree,
- Template templ);
-
- public Tree Typed(Tree tree,
- Tree expr,
- Tree tpe);
-
- public Tree TypeApply(Tree tree,
- Tree fun,
- Tree[] args);
-
- public Tree Apply(Tree tree,
- Tree fun,
- Tree[] args);
-
- public Tree Super(Tree tree,
- Tree tpe);
-
- public Tree This(Tree tree,
- Tree qualifier);
-
- public Tree Select(Tree tree,
- Tree qualifier,
- Name selector);
-
- public Tree Ident(Tree tree,
- Name name);
-
- public Tree Literal(Tree tree,
- Object value);
-
- public Tree TypeTerm(Tree tree);
-
- public Tree SingletonType(Tree tree,
- Tree ref);
-
- public Tree SelectFromType(Tree tree,
- Tree qualifier,
- Name selector);
-
- public Tree FunType(Tree tree,
- Tree[] argtpes,
- Tree restpe);
-
- public Tree CompoundType(Tree tree,
- Tree[] baseTypes,
- Tree[] refinements);
-
- public Tree AppliedType(Tree tree,
- Tree tpe,
- Tree[] args);
-
- public Tree CovariantType(Tree tree,
- Tree tpe);
-
-}