[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