summaryrefslogtreecommitdiff
path: root/sources/scalac/ast/parser/Parser.java
diff options
context:
space:
mode:
authorpaltherr <paltherr@epfl.ch>2004-02-01 03:15:00 +0000
committerpaltherr <paltherr@epfl.ch>2004-02-01 03:15:00 +0000
commite4731931589d6313988337a921747f9caf6fc3e7 (patch)
tree92c7298118201c435ef42d99d6b6d6c00a70c64a /sources/scalac/ast/parser/Parser.java
parentc9e045f5c67d44313e9e2436ec107e514548272e (diff)
downloadscala-e4731931589d6313988337a921747f9caf6fc3e7.tar.gz
scala-e4731931589d6313988337a921747f9caf6fc3e7.tar.bz2
scala-e4731931589d6313988337a921747f9caf6fc3e7.zip
- Generalized use of AConstant to represent con...
- Generalized use of AConstant to represent constant values
Diffstat (limited to 'sources/scalac/ast/parser/Parser.java')
-rw-r--r--sources/scalac/ast/parser/Parser.java29
1 files changed, 17 insertions, 12 deletions
diff --git a/sources/scalac/ast/parser/Parser.java b/sources/scalac/ast/parser/Parser.java
index d98324c970..12226aa922 100644
--- a/sources/scalac/ast/parser/Parser.java
+++ b/sources/scalac/ast/parser/Parser.java
@@ -32,6 +32,10 @@ public class Parser implements Tokens {
*/
TreeFactory make;
+ /** the tree generator
+ */
+ TreeGen gen;
+
/** pattern checker and normalizer
*/
PatternNormalizer pN;
@@ -43,6 +47,7 @@ public class Parser implements Tokens {
public Parser(Unit unit) {
s = new Scanner(unit);
make = unit.global.make;
+ gen = unit.global.treeGen;
pN = new PatternNormalizer( unit );
mapTreeComment = unit.global.mapTreeComment;
loopNestingDepth = 0;
@@ -620,38 +625,38 @@ public class Parser implements Tokens {
Tree t;
switch (s.token) {
case CHARLIT:
- t = make.Literal(s.pos, new Character((char)s.intVal));
+ t = gen.mkCharLit(s.pos, (char)s.intVal);
break;
case INTLIT:
- t = make.Literal(s.pos, new Integer((int)s.intVal));
+ t = gen.mkIntLit(s.pos, (int)s.intVal);
break;
case LONGLIT:
- t = make.Literal(s.pos, new Long(s.intVal));
+ t = gen.mkLongLit(s.pos, s.intVal);
break;
case FLOATLIT:
- t = make.Literal(s.pos, new Float((float)s.floatVal));
+ t = gen.mkFloatLit(s.pos, (float)s.floatVal);
break;
case DOUBLELIT:
- t = make.Literal(s.pos, new Double(s.floatVal));
+ t = gen.mkDoubleLit(s.pos, s.floatVal);
break;
case STRINGLIT:
- t = make.Literal(s.pos, s.name.toString());
+ t = gen.mkStringLit(s.pos, s.name.toString());
break;
case TRUE:
- t = make.Literal(s.pos, Boolean.TRUE);
+ t = gen.mkBooleanLit(s.pos, true);
break;
case FALSE:
- t = make.Literal(s.pos, Boolean.FALSE);
+ t = gen.mkBooleanLit(s.pos, false);
break;
case NULL:
- t = make.Ident(s.pos, Names.null_);
+ t = gen.mkNullLit(s.pos);
break;
case SYMBOLLIT:
int pos = s.pos;
Tree symt = scalaDot(s.pos, Names.Symbol);
if (isPattern) symt = convertToTypeId(symt);
TreeList ts = new TreeList();
- ts.append(make.Literal(s.pos, s.name.toString()));
+ ts.append(gen.mkStringLit(s.pos, s.name.toString()));
s.nextToken();
if (s.token == LPAREN || s.token == LBRACE)
ts.append(argumentExprs());
@@ -1171,10 +1176,10 @@ public class Parser implements Tokens {
new Tree.CaseDef[]{
(CaseDef)make.CaseDef(
rhs.pos, pat.duplicate(), Tree.Empty,
- make.Literal(s.pos, Boolean.TRUE)),
+ gen.mkBooleanLit(s.pos, true)),
(CaseDef)make.CaseDef(
rhs.pos, make.Ident(rhs.pos, Names.PATTERN_WILDCARD), Tree.Empty,
- make.Literal(s.pos, Boolean.FALSE))})});
+ gen.mkBooleanLit(s.pos, false))})});
return make.PatDef(pos, 0, pat, rhs);
}