[svn] r6020: nemerle/trunk/tools/cs2n: StatementTree.n csharpgrammar.g prepare

nazgul svnadmin at nemerle.org
Mon Dec 19 17:32:35 CET 2005


Log:
Support yield in cs2n.

Author: nazgul
Date: Mon Dec 19 17:32:27 2005
New Revision: 6020

Modified:
   nemerle/trunk/tools/cs2n/StatementTree.n
   nemerle/trunk/tools/cs2n/csharpgrammar.g
   nemerle/trunk/tools/cs2n/prepare

Modified: nemerle/trunk/tools/cs2n/StatementTree.n
==============================================================================
--- nemerle/trunk/tools/cs2n/StatementTree.n	(original)
+++ nemerle/trunk/tools/cs2n/StatementTree.n	Mon Dec 19 17:32:27 2005
@@ -278,7 +278,6 @@
                   foreach (x in children)
                     ignore (sb.Append (x.ToString ()));
 
-
                   sb.ToString ()
             }
         }

Modified: nemerle/trunk/tools/cs2n/csharpgrammar.g
==============================================================================
--- nemerle/trunk/tools/cs2n/csharpgrammar.g	(original)
+++ nemerle/trunk/tools/cs2n/csharpgrammar.g	Mon Dec 19 17:32:27 2005
@@ -1092,6 +1092,8 @@
 returns [StatementTree t]
 {
     t = new StatementTree();
+    LinkedList<StatementTree> a = new LinkedList<StatementTree> ();
+    string exp;
 }
     :   t = block
     |   t = empty_statement        
@@ -1104,7 +1106,16 @@
     |   t = iteration_statement
     |   t = jump_statement
     |   t = try_statement
-    |   y:YIELD { Message.Warning ("'yield' is not supported in nemerle yet" , y); } t = jump_statement
+
+    |   y:YIELD r:RETURN {a.Add (new StatementTree(y));} 
+        exp = expression s:SEMI {
+                                  a.Add (new StatementTree(exp));
+                                  a.Add (new StatementTree(s));
+                                  t = new StatementTree ("YIELD", a);
+                                }
+
+    |   y1:YIELD { Message.Warning ("'yield break' is not supported in nemerle yet" , y1); } t = jump_statement
+
 
     //<unchecked statement>
     |   (UNCHECKED   block)=> t = unchecked_statement

Modified: nemerle/trunk/tools/cs2n/prepare
==============================================================================
--- nemerle/trunk/tools/cs2n/prepare	(original)
+++ nemerle/trunk/tools/cs2n/prepare	Mon Dec 19 17:32:27 2005
@@ -9,7 +9,7 @@
 
 rm -fr $directory/*.exe $directory/*.dll $directory/*.log $directory/*.n
 for i in `grep unsafe $directory/*.cs | sed 's/:.*//'`; do rm -f $i; done;
-for i in `grep yield $directory/*.cs | sed 's/:.*//'`; do rm -f $i; done;
+#for i in `grep yield $directory/*.cs | sed 's/:.*//'`; do rm -f $i; done;
 for i in `grep "__arglist" $directory/*.cs | sed 's/:.*//'`; do rm -f $i; done;
 perl -i -pe 's/\-langversion:default//g' `find ./$directory/ | grep "\.cs$" | xargs`
 perl -i -pe 's/\-optimize\+//g' `find ./$directory/ | grep "\.cs$" | xargs`



More information about the svn mailing list