[Monodevelop-patches-list] r2567 - in trunk/MonoDevelop/Extras/BooBinding: . Parser

Peter Johanson <latexer@gentoo.org> pjohanson at mono-cvs.ximian.com
Mon May 30 13:19:48 EDT 2005


Author: pjohanson
Date: 2005-05-30 13:19:48 -0400 (Mon, 30 May 2005)
New Revision: 2567

Modified:
   trunk/MonoDevelop/Extras/BooBinding/ChangeLog
   trunk/MonoDevelop/Extras/BooBinding/Parser/Resolver.boo
   trunk/MonoDevelop/Extras/BooBinding/Parser/TypeMembers.boo
   trunk/MonoDevelop/Extras/BooBinding/Parser/Visitor.boo
Log:
Various parser fixups to type resolution stuff.


Modified: trunk/MonoDevelop/Extras/BooBinding/ChangeLog
===================================================================
--- trunk/MonoDevelop/Extras/BooBinding/ChangeLog	2005-05-30 07:19:53 UTC (rev 2566)
+++ trunk/MonoDevelop/Extras/BooBinding/ChangeLog	2005-05-30 17:19:48 UTC (rev 2567)
@@ -1,5 +1,15 @@
-2005-05-27  Peter Johanson <latexer at gentoo.org>
+2005-05-30  Peter Johanson <latexer at gentoo.org>
 
+	* Parser/Visitor.boo: Only abort parsing on parser
+	errors. We may have type binding errors that should be
+	ignored, since we do the resolving of those ourselves.
+	* Parser/TypeMembers.boo: Constructors should have a fully
+	qualified name of 'ctor', not '#ctor'.
+	* Parser/Resolver.boo: Fix problem with 'super' not always
+	finding the super class.
+	
+2005-05-29  Peter Johanson <latexer at gentoo.org>
+
 	* BooBindingCompilerServices.boo: Redo most of the
 	compiler stuff to use the Boo API instead of calling
 	out to booc in a seperate process. Is faster, and removes

Modified: trunk/MonoDevelop/Extras/BooBinding/Parser/Resolver.boo
===================================================================
--- trunk/MonoDevelop/Extras/BooBinding/Parser/Resolver.boo	2005-05-30 07:19:53 UTC (rev 2566)
+++ trunk/MonoDevelop/Extras/BooBinding/Parser/Resolver.boo	2005-05-30 17:19:48 UTC (rev 2567)
@@ -285,7 +285,8 @@
 		if expression == "self":
 			returnClass = callingClass
 		elif expression == "super":
-			returnClass = self.ParentClass
+			returnClass = BaseClass(callingClass)
+			//returnClass = self.ParentClass
 		else:
 			// try looking if the expression is the name of a class
 			expressionClass = self.SearchType(expression)

Modified: trunk/MonoDevelop/Extras/BooBinding/Parser/TypeMembers.boo
===================================================================
--- trunk/MonoDevelop/Extras/BooBinding/Parser/TypeMembers.boo	2005-05-30 07:19:53 UTC (rev 2566)
+++ trunk/MonoDevelop/Extras/BooBinding/Parser/TypeMembers.boo	2005-05-30 17:19:48 UTC (rev 2567)
@@ -34,7 +34,7 @@
 /////////////////////////////////////
 class Constructor(BooAbstractMethod):
 	def constructor(m as ModifierEnum, region as IRegion, bodyRegion as IRegion):
-		FullyQualifiedName = '#ctor'
+		FullyQualifiedName = 'ctor'
 		self.region = region
 		self.bodyRegion = bodyRegion
 		modifiers = m

Modified: trunk/MonoDevelop/Extras/BooBinding/Parser/Visitor.boo
===================================================================
--- trunk/MonoDevelop/Extras/BooBinding/Parser/Visitor.boo	2005-05-30 07:19:53 UTC (rev 2566)
+++ trunk/MonoDevelop/Extras/BooBinding/Parser/Visitor.boo	2005-05-30 17:19:48 UTC (rev 2567)
@@ -46,15 +46,17 @@
 
 	[Getter(HadErrors)]
 	_hadErrors = false
+
+	_parseErrorCodes = ("BCE0043", "BCE0044")
 	
 	override def Run():
-		// If we've had errors up to this point, note it and return
-		// immediately.
+		// If we've had an parser errors, we should ignore this
+		// parese attempt. Set _hadErrors and return immediately.
 		if Errors is not null and Errors.Count > 0:
-			//for error in Errors:
-			//	print "Error ${error}"
-			_hadErrors = true
-			return
+			for error in Errors:
+				if error.Code in _parseErrorCodes:
+					_hadErrors = true
+					return
 
 		try:
 			Visit(CompileUnit)




More information about the Monodevelop-patches-list mailing list