[svn] r7446: nemerle/trunk/ncc: generation/Typer3.n parsing/AST.n parsing/MainParser.n

VladD2 svnadmin at nemerle.org
Mon Feb 19 06:03:07 CET 2007


Log:
Prevent parser from generate TypeDeclaration (TopDeclaration.Delegate (null)) for non wellformed class members.

Author: VladD2
Date: Mon Feb 19 06:03:05 2007
New Revision: 7446

Modified:
   nemerle/trunk/ncc/generation/Typer3.n
   nemerle/trunk/ncc/parsing/AST.n
   nemerle/trunk/ncc/parsing/MainParser.n

Modified: nemerle/trunk/ncc/generation/Typer3.n
==============================================================================
--- nemerle/trunk/ncc/generation/Typer3.n	(original)
+++ nemerle/trunk/ncc/generation/Typer3.n	Mon Feb 19 06:03:05 2007
@@ -35,7 +35,7 @@
 
 namespace Nemerle.Compiler
 {
-  class Typer3 : TyperBase
+  public class Typer3 : TyperBase
   {
     #region Top typer
     // one instance is created for every source top level method

Modified: nemerle/trunk/ncc/parsing/AST.n
==============================================================================
--- nemerle/trunk/ncc/parsing/AST.n	(original)
+++ nemerle/trunk/ncc/parsing/AST.n	Mon Feb 19 06:03:05 2007
@@ -497,6 +497,7 @@
     | CompilerMutable = 0x40000 
 
     | VirtualityModifiers = New %| Abstract %| Virtual %| Override
+    | OverrideModifiers   = Abstract %| Virtual %| Override
     | AccessModifiers = Public %| Private %| Protected %| Internal
   }
  

Modified: nemerle/trunk/ncc/parsing/MainParser.n
==============================================================================
--- nemerle/trunk/ncc/parsing/MainParser.n	(original)
+++ nemerle/trunk/ncc/parsing/MainParser.n	Mon Feb 19 06:03:05 2007
@@ -664,6 +664,9 @@
                           pop_stream ();
                           when (key == "variant") in_variant = true;
                           members = process_groups (children, "type member", ParseClassMember);
+                          when (members.Exists (_ is ClassMember.TypeDeclaration (TopDeclaration.Delegate (null))))
+                            members = members.Filter (m => !(m 
+                              is ClassMember.TypeDeclaration (TopDeclaration.Delegate (null))));
                           in_variant = false
                       }
 



More information about the svn mailing list