Explorar el Código

Fixed array parsing regression.

woollybah hace 7 años
padre
commit
abc2271b43
Se han modificado 1 ficheros con 14 adiciones y 8 borrados
  1. 14 8
      parser.bmx

+ 14 - 8
parser.bmx

@@ -915,10 +915,7 @@ Type TParser Extends TGenProcessor
 				ty=New TArrayType.Create( ty )
 				
 				' test for array of arrays
-				Local toker:TToker=New TToker.Copy(_toker)
-				If CParseToker(toker, "[") Or CParseToker(toker, "[]") Then
-					Continue
-				End If
+				If IsArrayTypeNext(_toker) Continue
 				
 				Exit
 			End If
@@ -936,16 +933,25 @@ Type TParser Extends TGenProcessor
 			ty=New TArrayType.Create( ty, dims )
 			
 			' test for array of arrays
-			Local toker:TToker=New TToker.Copy(_toker)
-			If CParseToker(toker, "[") Or CParseToker(toker, "[]") Then
-				Continue
-			End If
+			If IsArrayTypeNext(_toker) Continue
 			
 			Exit
 		Wend
 		Return ty
 	End Method
 	
+	Method IsArrayTypeNext:Int(tok:TToker)
+		Local toker:TToker=New TToker.Copy(tok)
+		If CParseToker(toker, "[]") Return True
+		If CParseToker(toker, "[") Then
+			' look ahead to see if this is an array decl, or something else..
+			If CParseToker(toker, "]") Or CParseToker(toker, ",") Then
+				Return True
+			End If
+		End If
+		Return False
+	End Method
+	
 	Method IsArrayDef:Int()
 		Local isDef:Int = True
 		Local toker:TToker=New TToker.Copy(_toker)