Author: manjula
Date: 2005-03-21 06:19:41 -0500 (Mon, 21 Mar 2005)
New Revision: 42044

Modified:
   trunk/mcs/mbas/ChangeLog
   trunk/mcs/mbas/statement.cs
Log:
Implementation of 'End' Statement which terminates execution immediately



Modified: trunk/mcs/mbas/ChangeLog
===================================================================
--- trunk/mcs/mbas/ChangeLog    2005-03-21 09:18:14 UTC (rev 42043)
+++ trunk/mcs/mbas/ChangeLog    2005-03-21 11:19:41 UTC (rev 42044)
@@ -1,3 +1,6 @@
+2005-03-21 Manjula GHM <[EMAIL PROTECTED]>
+       * statement.cs: Implementation of 'End' Statement which terminates 
execution immediately
+
 2005-03-18 Satya Sudha K <[EMAIL PROTECTED]>
        * mb-parser.jay :
        * mb-tokenizer.cs :

Modified: trunk/mcs/mbas/statement.cs
===================================================================
--- trunk/mcs/mbas/statement.cs 2005-03-21 09:18:14 UTC (rev 42043)
+++ trunk/mcs/mbas/statement.cs 2005-03-21 11:19:41 UTC (rev 42044)
@@ -5,6 +5,7 @@
 //   Miguel de Icaza ([EMAIL PROTECTED])
 //   Martin Baulig ([EMAIL PROTECTED])
 //      Anirban Bhattacharjee ([EMAIL PROTECTED])
+//   Manjula GHM ([EMAIL PROTECTED])
 //
 // (C) 2001, 2002 Ximian, Inc.
 //
@@ -969,6 +970,39 @@
                }
        }
 
+       // Support 'End' Statement which terminates execution immediately
+
+         public class End : Statement {
+
+                public End (Location l)
+                {
+                        loc = l;
+                }
+
+                public override bool Resolve (EmitContext ec)
+                {
+                        return true;
+                }
+
+                protected override bool DoEmit (EmitContext ec)
+                {
+                       Expression e = null;
+                        Expression tmp = Mono.MonoBASIC.Parser.DecomposeQI (
+                                                
"Microsoft.VisualBasic.CompilerServices.ProjectData.EndApp",
+                                                        Location.Null);
+
+                       e = new Invocation (tmp, null, loc);
+                       e.Resolve (ec);
+
+                       if (e == null)
+                               return false;
+                       e.Emit (ec);
+
+                        return true;
+                }
+        }
+
+
        public class Break : Statement {
                
                public Break (Location l)

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to