Mercurial > projects > dang
diff sema/Visitor.d @ 83:9e90694f5da0 new_gen
Parse array indexing, and allow reading from arrays
author | Anders Halager <halager@gmail.com> |
---|---|
date | Fri, 02 May 2008 19:54:22 +0200 |
parents | 06dda301ea61 |
children | 48bb2287c035 |
line wrap: on
line diff
--- a/sema/Visitor.d Fri May 02 19:51:58 2008 +0200 +++ b/sema/Visitor.d Fri May 02 19:54:22 2008 +0200 @@ -84,6 +84,8 @@ return visitPointerIdentifier(cast(PointerIdentifier)exp); case ExpType.ArrayIdentifier: return visitArrayIdentifier(cast(ArrayIdentifier)exp); + case ExpType.Index: + return visitIndexExp(cast(IndexExp)exp); case ExpType.MemberReference: return visitMemberReference(cast(MemberReference)exp); default: @@ -309,6 +311,17 @@ return ExpT.init; } + ExpT visitIndexExp(IndexExp exp) + { + visitExp(exp.target); + visitExp(exp.index); + + static if (is(ExpT == void)) + return; + else + return ExpT.init; + } + ExpT visitMemberReference(MemberReference mem) { visitExp(mem.target);