changeset 234:5c1111dc8670

- Added method parseNoScopeOrEmptyStatement(). - Calling new method when parsing pragma and labeled statement.
author aziz
date Fri, 27 Jul 2007 15:17:04 +0000
parents c2b601dcd57d
children 3384ac8878f7
files trunk/src/Parser.d
diffstat 1 files changed, 16 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/trunk/src/Parser.d	Fri Jul 27 14:49:02 2007 +0000
+++ b/trunk/src/Parser.d	Fri Jul 27 15:17:04 2007 +0000
@@ -1423,7 +1423,7 @@
         string ident = token.identifier;
         nT(); // Skip Identifier
         nT(); // Skip :
-        s = new LabeledStatement(ident, parseNoScopeStatement());
+        s = new LabeledStatement(ident, parseNoScopeOrEmptyStatement());
         break;
       }
       goto case T.Dot;
@@ -1620,6 +1620,20 @@
     return s;
   }
 
+  /+
+    NoScopeOrEmptyStatement:
+        ;
+        NoScopeStatement
+  +/
+  Statement parseNoScopeOrEmptyStatement()
+  {
+    if (token.type == T.Semicolon)
+      nT();
+    else
+      return parseNoScopeStatement();
+    return null;
+  }
+
   Statement parseAttributeStatement()
   {
     switch (token.type)
@@ -2018,10 +2032,7 @@
     else
       require(T.RParen);
 
-    if (token.type == T.Semicolon)
-      nT();
-    else
-      pragmaBody = parseNoScopeStatement();
+    pragmaBody = parseNoScopeOrEmptyStatement();
 
     return new PragmaStatement(ident, args, pragmaBody);
   }