| 
					
				 | 
			
			
				@@ -51,6 +51,8 @@ smalltalk.parser = (function(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         "float": parse_float, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         "integer": parse_integer, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         "literalArray": parse_literalArray, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        "bareLiteralArray": parse_bareLiteralArray, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        "literalArrayRest": parse_literalArrayRest, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         "dynamicArray": parse_dynamicArray, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         "dynamicDictionary": parse_dynamicDictionary, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         "pseudoVariable": parse_pseudoVariable, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1233,8 +1235,8 @@ smalltalk.parser = (function(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           return cachedResult.result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				          
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        var result0, result1, result2, result3, result4; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        var pos0, pos1, pos2, pos3; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        var result0, result1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        var pos0, pos1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				          
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         pos0 = clone(pos); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         pos1 = clone(pos); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1248,72 +1250,160 @@ smalltalk.parser = (function(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (result0 !== null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          result1 = parse_ws(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          result1 = parse_literalArrayRest(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           if (result1 !== null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            result2 = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            result0 = [result0, result1]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            result0 = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            pos = clone(pos1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          result0 = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          pos = clone(pos1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (result0 !== null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          result0 = (function(offset, line, column, rest) {return rest})(pos0.offset, pos0.line, pos0.column, result0[1]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (result0 === null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          pos = clone(pos0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        cache[cacheKey] = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          nextPos: clone(pos), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          result:  result0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return result0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      function parse_bareLiteralArray() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        var cacheKey = "bareLiteralArray@" + pos.offset; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        var cachedResult = cache[cacheKey]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (cachedResult) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          pos = clone(cachedResult.nextPos); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          return cachedResult.result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        var result0, result1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        var pos0, pos1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        pos0 = clone(pos); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        pos1 = clone(pos); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (input.charCodeAt(pos.offset) === 40) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          result0 = "("; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          advance(pos, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          result0 = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          if (reportFailures === 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            matchFailed("\"(\""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (result0 !== null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          result1 = parse_literalArrayRest(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          if (result1 !== null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            result0 = [result0, result1]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            result0 = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            pos = clone(pos1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          result0 = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          pos = clone(pos1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (result0 !== null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          result0 = (function(offset, line, column, rest) {return rest})(pos0.offset, pos0.line, pos0.column, result0[1]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (result0 === null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          pos = clone(pos0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        cache[cacheKey] = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          nextPos: clone(pos), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          result:  result0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return result0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      function parse_literalArrayRest() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        var cacheKey = "literalArrayRest@" + pos.offset; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        var cachedResult = cache[cacheKey]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (cachedResult) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          pos = clone(cachedResult.nextPos); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          return cachedResult.result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        var result0, result1, result2, result3; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        var pos0, pos1, pos2, pos3; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        pos0 = clone(pos); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        pos1 = clone(pos); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        result0 = parse_ws(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (result0 !== null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          result1 = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          pos2 = clone(pos); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          pos3 = clone(pos); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          result2 = parse_parseTimeLiteral(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          if (result2 === null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            result2 = parse_bareLiteralArray(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          if (result2 !== null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            result3 = parse_ws(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (result3 !== null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              result2 = [result2, result3]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              result2 = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              pos = clone(pos3); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            result2 = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            pos = clone(pos3); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          if (result2 !== null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            result2 = (function(offset, line, column, lit) {return lit._value()})(pos2.offset, pos2.line, pos2.column, result2[0]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          if (result2 === null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            pos = clone(pos2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          while (result2 !== null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            result1.push(result2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             pos2 = clone(pos); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             pos3 = clone(pos); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            result3 = parse_parseTimeLiteral(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (result3 !== null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              result4 = parse_ws(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              if (result4 !== null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                result3 = [result3, result4]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            result2 = parse_parseTimeLiteral(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (result2 === null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              result2 = parse_bareLiteralArray(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (result2 !== null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              result3 = parse_ws(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              if (result3 !== null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                result2 = [result2, result3]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                result3 = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                result2 = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 pos = clone(pos3); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              result3 = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              result2 = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               pos = clone(pos3); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (result3 !== null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              result3 = (function(offset, line, column, lit) {return lit._value()})(pos2.offset, pos2.line, pos2.column, result3[0]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (result2 !== null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              result2 = (function(offset, line, column, lit) {return lit._value()})(pos2.offset, pos2.line, pos2.column, result2[0]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (result3 === null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (result2 === null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               pos = clone(pos2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            while (result3 !== null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              result2.push(result3); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              pos2 = clone(pos); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              pos3 = clone(pos); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              result3 = parse_parseTimeLiteral(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              if (result3 !== null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                result4 = parse_ws(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (result4 !== null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  result3 = [result3, result4]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  result3 = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  pos = clone(pos3); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          if (result1 !== null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            result2 = parse_ws(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (result2 !== null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              if (input.charCodeAt(pos.offset) === 41) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                result3 = ")"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                advance(pos, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 result3 = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                pos = clone(pos3); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              if (result3 !== null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                result3 = (function(offset, line, column, lit) {return lit._value()})(pos2.offset, pos2.line, pos2.column, result3[0]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              if (result3 === null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                pos = clone(pos2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (reportFailures === 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  matchFailed("\")\""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (result2 !== null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              result3 = parse_ws(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               if (result3 !== null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (input.charCodeAt(pos.offset) === 41) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  result4 = ")"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  advance(pos, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  result4 = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  if (reportFailures === 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    matchFailed("\")\""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (result4 !== null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  result0 = [result0, result1, result2, result3, result4]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  result0 = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  pos = clone(pos1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                result0 = [result0, result1, result2, result3]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 result0 = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 pos = clone(pos1); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1334,7 +1424,7 @@ smalltalk.parser = (function(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           result0 = (function(offset, line, column, lits) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                              return smalltalk.ValueNode._new() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                     ._value_(lits) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                         })(pos0.offset, pos0.line, pos0.column, result0[2]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                         })(pos0.offset, pos0.line, pos0.column, result0[1]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (result0 === null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           pos = clone(pos0); 
			 |