diff trunk/src/Parser.d @ 270:764eccdf619d

- Fix in parseAttributeStatement(): added checks for T.LParen after const/invariant.
author aziz
date Sat, 04 Aug 2007 19:27:00 +0000
parents a416e09c08ea
children 68987c1c59b6
line wrap: on
line diff
--- a/trunk/src/Parser.d	Sat Aug 04 18:59:04 2007 +0000
+++ b/trunk/src/Parser.d	Sat Aug 04 19:27:00 2007 +0000
@@ -1822,7 +1822,6 @@
         }
         s = new ExternStatement(linkage, parse());
         break;
-      //case T.Invariant: // D 2.0
       case T.Static:
         tmp = StorageClass.Static;
         goto Lcommon;
@@ -1830,8 +1829,21 @@
         tmp = StorageClass.Final;
         goto Lcommon;
       case T.Const:
+      version(D2)
+      {
+        if (peekNext() == T.LParen)
+          goto case_Declaration;
+      }
         tmp = StorageClass.Const;
         goto Lcommon;
+      version(D2)
+      {
+      case T.Invariant: // D 2.0
+        if (peekNext() == T.LParen)
+          goto case_Declaration;
+        tmp = StorageClass.Invariant;
+        goto Lcommon;
+      }
       case T.Auto:
         tmp = StorageClass.Auto;
         goto Lcommon;
@@ -1847,6 +1859,7 @@
       // TODO: allow "scope class", "abstract scope class" in function bodies?
       //case T.Class:
       default:
+      case_Declaration:
         s = new DeclarationStatement(parseDeclaration(stc));
       }
       set(s, begin);