Mercurial > projects > dang
diff parser/Parser.d @ 185:7b274cfdc1dc
Added support for array literals. Codegen is broken, though.
author | Anders Johnsen <skabet@gmail.com> |
---|---|
date | Fri, 25 Jul 2008 12:18:05 +0200 |
parents | 8ea749b7da91 |
children | 75d0544ddc45 |
line wrap: on
line diff
--- a/parser/Parser.d Fri Jul 25 11:04:00 2008 +0200 +++ b/parser/Parser.d Fri Jul 25 12:18:05 2008 +0200 @@ -966,6 +966,23 @@ return action.actOnNumericConstant(n); else if (n.type == Tok.String) return action.actOnStringExp(n); + else if (n.type == Tok.OpenBracket) + { + // Array literals + Exp[] exps; + exps ~= parseExpression(); + + while (isa(Tok.Comma)) + { + next(); + + if (isa(Tok.CloseBracket)) + break; + exps ~= parseExpression(); + } + scope e = require(Tok.CloseBracket); + return action.actOnArrayLiteralExpr(exps, n.location, e.location); + } else if (n.type == Tok.New) { Exp[] allocator_args;