|  | @@ -42,6 +42,7 @@ smalltalk.parser = (function(){
 | 
	
		
			
				|  |  |          "method": parse_method,
 | 
	
		
			
				|  |  |          "number": parse_number,
 | 
	
		
			
				|  |  |          "operand": parse_operand,
 | 
	
		
			
				|  |  | +        "pseudoVariable": parse_pseudoVariable,
 | 
	
		
			
				|  |  |          "reference": parse_reference,
 | 
	
		
			
				|  |  |          "ret": parse_ret,
 | 
	
		
			
				|  |  |          "separator": parse_separator,
 | 
	
	
		
			
				|  | @@ -1258,8 +1259,8 @@ smalltalk.parser = (function(){
 | 
	
		
			
				|  |  |          return result0;
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  |        
 | 
	
		
			
				|  |  | -      function parse_literal() {
 | 
	
		
			
				|  |  | -        var cacheKey = 'literal@' + pos;
 | 
	
		
			
				|  |  | +      function parse_pseudoVariable() {
 | 
	
		
			
				|  |  | +        var cacheKey = 'pseudoVariable@' + pos;
 | 
	
		
			
				|  |  |          var cachedResult = cache[cacheKey];
 | 
	
		
			
				|  |  |          if (cachedResult) {
 | 
	
		
			
				|  |  |            pos = cachedResult.nextPos;
 | 
	
	
		
			
				|  | @@ -1267,35 +1268,142 @@ smalltalk.parser = (function(){
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          
 | 
	
		
			
				|  |  |          
 | 
	
		
			
				|  |  | -        var result7 = parse_number();
 | 
	
		
			
				|  |  | -        if (result7 !== null) {
 | 
	
		
			
				|  |  | -          var result0 = result7;
 | 
	
		
			
				|  |  | +        var savedPos0 = pos;
 | 
	
		
			
				|  |  | +        var savedPos3 = pos;
 | 
	
		
			
				|  |  | +        if (input.substr(pos, 4) === "true") {
 | 
	
		
			
				|  |  | +          var result10 = "true";
 | 
	
		
			
				|  |  | +          pos += 4;
 | 
	
		
			
				|  |  |          } else {
 | 
	
		
			
				|  |  | -          var result6 = parse_literalArray();
 | 
	
		
			
				|  |  | +          var result10 = null;
 | 
	
		
			
				|  |  | +          if (reportMatchFailures) {
 | 
	
		
			
				|  |  | +            matchFailed("\"true\"");
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        var result11 = result10 !== null
 | 
	
		
			
				|  |  | +          ? (function() {return true})()
 | 
	
		
			
				|  |  | +          : null;
 | 
	
		
			
				|  |  | +        if (result11 !== null) {
 | 
	
		
			
				|  |  | +          var result9 = result11;
 | 
	
		
			
				|  |  | +        } else {
 | 
	
		
			
				|  |  | +          var result9 = null;
 | 
	
		
			
				|  |  | +          pos = savedPos3;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if (result9 !== null) {
 | 
	
		
			
				|  |  | +          var result1 = result9;
 | 
	
		
			
				|  |  | +        } else {
 | 
	
		
			
				|  |  | +          var savedPos2 = pos;
 | 
	
		
			
				|  |  | +          if (input.substr(pos, 5) === "false") {
 | 
	
		
			
				|  |  | +            var result7 = "false";
 | 
	
		
			
				|  |  | +            pos += 5;
 | 
	
		
			
				|  |  | +          } else {
 | 
	
		
			
				|  |  | +            var result7 = null;
 | 
	
		
			
				|  |  | +            if (reportMatchFailures) {
 | 
	
		
			
				|  |  | +              matchFailed("\"false\"");
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +          var result8 = result7 !== null
 | 
	
		
			
				|  |  | +            ? (function() {return false})()
 | 
	
		
			
				|  |  | +            : null;
 | 
	
		
			
				|  |  | +          if (result8 !== null) {
 | 
	
		
			
				|  |  | +            var result6 = result8;
 | 
	
		
			
				|  |  | +          } else {
 | 
	
		
			
				|  |  | +            var result6 = null;
 | 
	
		
			
				|  |  | +            pos = savedPos2;
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  |            if (result6 !== null) {
 | 
	
		
			
				|  |  | -            var result0 = result6;
 | 
	
		
			
				|  |  | +            var result1 = result6;
 | 
	
		
			
				|  |  |            } else {
 | 
	
		
			
				|  |  | -            var result5 = parse_dynamicDictionary();
 | 
	
		
			
				|  |  | +            var savedPos1 = pos;
 | 
	
		
			
				|  |  | +            if (input.substr(pos, 3) === "nil") {
 | 
	
		
			
				|  |  | +              var result4 = "nil";
 | 
	
		
			
				|  |  | +              pos += 3;
 | 
	
		
			
				|  |  | +            } else {
 | 
	
		
			
				|  |  | +              var result4 = null;
 | 
	
		
			
				|  |  | +              if (reportMatchFailures) {
 | 
	
		
			
				|  |  | +                matchFailed("\"nil\"");
 | 
	
		
			
				|  |  | +              }
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            var result5 = result4 !== null
 | 
	
		
			
				|  |  | +              ? (function() {return nil})()
 | 
	
		
			
				|  |  | +              : null;
 | 
	
		
			
				|  |  |              if (result5 !== null) {
 | 
	
		
			
				|  |  | -              var result0 = result5;
 | 
	
		
			
				|  |  | +              var result3 = result5;
 | 
	
		
			
				|  |  | +            } else {
 | 
	
		
			
				|  |  | +              var result3 = null;
 | 
	
		
			
				|  |  | +              pos = savedPos1;
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            if (result3 !== null) {
 | 
	
		
			
				|  |  | +              var result1 = result3;
 | 
	
		
			
				|  |  |              } else {
 | 
	
		
			
				|  |  | -              var result4 = parse_dynamicArray();
 | 
	
		
			
				|  |  | -              if (result4 !== null) {
 | 
	
		
			
				|  |  | -                var result0 = result4;
 | 
	
		
			
				|  |  | +              var result1 = null;;
 | 
	
		
			
				|  |  | +            };
 | 
	
		
			
				|  |  | +          };
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        var result2 = result1 !== null
 | 
	
		
			
				|  |  | +          ? (function(val) {
 | 
	
		
			
				|  |  | +          					return smalltalk.ValueNode._new()
 | 
	
		
			
				|  |  | +          						._value_(val)
 | 
	
		
			
				|  |  | +          				})(result1)
 | 
	
		
			
				|  |  | +          : null;
 | 
	
		
			
				|  |  | +        if (result2 !== null) {
 | 
	
		
			
				|  |  | +          var result0 = result2;
 | 
	
		
			
				|  |  | +        } else {
 | 
	
		
			
				|  |  | +          var result0 = null;
 | 
	
		
			
				|  |  | +          pos = savedPos0;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        
 | 
	
		
			
				|  |  | +        
 | 
	
		
			
				|  |  | +        
 | 
	
		
			
				|  |  | +        cache[cacheKey] = {
 | 
	
		
			
				|  |  | +          nextPos: pos,
 | 
	
		
			
				|  |  | +          result:  result0
 | 
	
		
			
				|  |  | +        };
 | 
	
		
			
				|  |  | +        return result0;
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +      
 | 
	
		
			
				|  |  | +      function parse_literal() {
 | 
	
		
			
				|  |  | +        var cacheKey = 'literal@' + pos;
 | 
	
		
			
				|  |  | +        var cachedResult = cache[cacheKey];
 | 
	
		
			
				|  |  | +        if (cachedResult) {
 | 
	
		
			
				|  |  | +          pos = cachedResult.nextPos;
 | 
	
		
			
				|  |  | +          return cachedResult.result;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        
 | 
	
		
			
				|  |  | +        
 | 
	
		
			
				|  |  | +        var result8 = parse_pseudoVariable();
 | 
	
		
			
				|  |  | +        if (result8 !== null) {
 | 
	
		
			
				|  |  | +          var result0 = result8;
 | 
	
		
			
				|  |  | +        } else {
 | 
	
		
			
				|  |  | +          var result7 = parse_number();
 | 
	
		
			
				|  |  | +          if (result7 !== null) {
 | 
	
		
			
				|  |  | +            var result0 = result7;
 | 
	
		
			
				|  |  | +          } else {
 | 
	
		
			
				|  |  | +            var result6 = parse_literalArray();
 | 
	
		
			
				|  |  | +            if (result6 !== null) {
 | 
	
		
			
				|  |  | +              var result0 = result6;
 | 
	
		
			
				|  |  | +            } else {
 | 
	
		
			
				|  |  | +              var result5 = parse_dynamicDictionary();
 | 
	
		
			
				|  |  | +              if (result5 !== null) {
 | 
	
		
			
				|  |  | +                var result0 = result5;
 | 
	
		
			
				|  |  |                } else {
 | 
	
		
			
				|  |  | -                var result3 = parse_string();
 | 
	
		
			
				|  |  | -                if (result3 !== null) {
 | 
	
		
			
				|  |  | -                  var result0 = result3;
 | 
	
		
			
				|  |  | +                var result4 = parse_dynamicArray();
 | 
	
		
			
				|  |  | +                if (result4 !== null) {
 | 
	
		
			
				|  |  | +                  var result0 = result4;
 | 
	
		
			
				|  |  |                  } else {
 | 
	
		
			
				|  |  | -                  var result2 = parse_symbol();
 | 
	
		
			
				|  |  | -                  if (result2 !== null) {
 | 
	
		
			
				|  |  | -                    var result0 = result2;
 | 
	
		
			
				|  |  | +                  var result3 = parse_string();
 | 
	
		
			
				|  |  | +                  if (result3 !== null) {
 | 
	
		
			
				|  |  | +                    var result0 = result3;
 | 
	
		
			
				|  |  |                    } else {
 | 
	
		
			
				|  |  | -                    var result1 = parse_block();
 | 
	
		
			
				|  |  | -                    if (result1 !== null) {
 | 
	
		
			
				|  |  | -                      var result0 = result1;
 | 
	
		
			
				|  |  | +                    var result2 = parse_symbol();
 | 
	
		
			
				|  |  | +                    if (result2 !== null) {
 | 
	
		
			
				|  |  | +                      var result0 = result2;
 | 
	
		
			
				|  |  |                      } else {
 | 
	
		
			
				|  |  | -                      var result0 = null;;
 | 
	
		
			
				|  |  | +                      var result1 = parse_block();
 | 
	
		
			
				|  |  | +                      if (result1 !== null) {
 | 
	
		
			
				|  |  | +                        var result0 = result1;
 | 
	
		
			
				|  |  | +                      } else {
 | 
	
		
			
				|  |  | +                        var result0 = null;;
 | 
	
		
			
				|  |  | +                      };
 | 
	
		
			
				|  |  |                      };
 | 
	
		
			
				|  |  |                    };
 | 
	
		
			
				|  |  |                  };
 |