diff options
author | Martin Odersky <odersky@gmail.com> | 2003-03-05 12:48:28 +0000 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2003-03-05 12:48:28 +0000 |
commit | 4a44cf6531eeb2a80036c1370d1e9bd72dd22616 (patch) | |
tree | bcdea28d0ea695260dde8a111b8e0dd3e40d97c4 /sources/scalac/ast | |
parent | c5ffb069fa3fa7bd1f95bfc62784297c49c17925 (diff) | |
download | scala-4a44cf6531eeb2a80036c1370d1e9bd72dd22616.tar.gz scala-4a44cf6531eeb2a80036c1370d1e9bd72dd22616.tar.bz2 scala-4a44cf6531eeb2a80036c1370d1e9bd72dd22616.zip |
*** empty log message ***
Diffstat (limited to 'sources/scalac/ast')
-rw-r--r-- | sources/scalac/ast/parser/Parser.java | 8 | ||||
-rw-r--r-- | sources/scalac/ast/printer/TextTreePrinter.java | 7 |
2 files changed, 11 insertions, 4 deletions
diff --git a/sources/scalac/ast/parser/Parser.java b/sources/scalac/ast/parser/Parser.java index fa2769f8d9..6f2ddb5d0f 100644 --- a/sources/scalac/ast/parser/Parser.java +++ b/sources/scalac/ast/parser/Parser.java @@ -32,9 +32,13 @@ public class Parser implements Tokens { */ TreeFactory make; + final Transformer duplicator; + public Parser(Unit unit) { s = new Scanner(unit); make = unit.global.make; + this.duplicator = new Transformer( + unit.global, null, make, new StrictTreeFactory(make)); } /** this is the general parse method @@ -212,7 +216,7 @@ public class Parser implements Tokens { System.arraycopy(enums, 2, newenums, 1, newenums.length - 1); newenums[0] = make.PatDef( enums[0].pos, mods, pat, - makeFor1(enums[1].pos, Names.filter, pat, rhs, enums[1])); + makeFor1(enums[1].pos, Names.filter, duplicator.transform(pat), rhs, enums[1])); return makeFor(pos, newenums, mapName, flatmapName, body); } default: @@ -942,7 +946,7 @@ public class Parser implements Tokens { rhs.pos, new Tree.CaseDef[]{ (CaseDef)make.CaseDef( - rhs.pos, pat, Tree.Empty, + rhs.pos, duplicator.transform(pat), Tree.Empty, make.Select(rhs.pos, scalaDot(rhs.pos, Names.Boolean), Names.True)), (CaseDef)make.CaseDef( diff --git a/sources/scalac/ast/printer/TextTreePrinter.java b/sources/scalac/ast/printer/TextTreePrinter.java index 26dadcc679..b41642af07 100644 --- a/sources/scalac/ast/printer/TextTreePrinter.java +++ b/sources/scalac/ast/printer/TextTreePrinter.java @@ -30,8 +30,8 @@ public class TextTreePrinter implements TreePrinter { protected int indent = 0; protected final int INDENT_STEP = 2; - protected final String INDENT_STRING = - " "; + protected String INDENT_STRING = + " "; protected final int MAX_INDENT = INDENT_STRING.length(); public TextTreePrinter(OutputStream stream) { @@ -81,6 +81,9 @@ public class TextTreePrinter implements TreePrinter { protected void printNewLine() { out.println(); + while (indent > INDENT_STRING.length()) { + INDENT_STRING = INDENT_STRING + INDENT_STRING; + } if (indent > 0) out.write(INDENT_STRING, 0, indent); } |