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);