Mercurial > projects > dang
diff sema/AstAction.d @ 77:13eea2c4e60d new_gen
Now able of --ast-dump-code with Pointer types and also codeGen int* x;
author | Anders Johnsen <skabet@gmail.com> |
---|---|
date | Fri, 02 May 2008 16:37:13 +0200 |
parents | 381975d76baf |
children | 81813366ef92 |
line wrap: on
line diff
--- a/sema/AstAction.d Fri May 02 15:48:57 2008 +0200 +++ b/sema/AstAction.d Fri May 02 16:37:13 2008 +0200 @@ -19,6 +19,15 @@ */ class AstAction : Action { + Identifier handleType(Id type) + { + if(auto t = cast(PointerId)type) + return new PointerIdentifier(handleType(t.id)); + else + return new Identifier(type.tok); + } + + // -- Declarations -- override DeclT actOnDeclarator(ref Id type, ref Id id, ExprT init) { @@ -26,7 +35,7 @@ if(type.tok.type == Tok.Struct) return new StructDecl(new Identifier(id.tok)); else - return new VarDecl(new Identifier(type.tok), new Identifier(id.tok), exp); + return new VarDecl(handleType(type), new Identifier(id.tok), exp); } override void actOnStructMember(DeclT decl, ref Id type, ref Id name, ExprT init) @@ -39,7 +48,7 @@ exp); } - ExprT actOnMemberReference(ExprT lhs, Location op, Id member) + override ExprT actOnMemberReference(ExprT lhs, Location op, Id member) { return new MemberReference(cast(Exp)lhs, new Identifier(member.tok)); }