|
@@ -56,6 +56,7 @@ smalltalk.parser = (function(){
|
|
"unaryPattern": parse_unaryPattern,
|
|
"unaryPattern": parse_unaryPattern,
|
|
"unarySend": parse_unarySend,
|
|
"unarySend": parse_unarySend,
|
|
"unaryTail": parse_unaryTail,
|
|
"unaryTail": parse_unaryTail,
|
|
|
|
+ "varIdentifier": parse_varIdentifier,
|
|
"variable": parse_variable,
|
|
"variable": parse_variable,
|
|
"ws": parse_ws
|
|
"ws": parse_ws
|
|
};
|
|
};
|
|
@@ -368,6 +369,78 @@ smalltalk.parser = (function(){
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
+ var savedPos0 = pos;
|
|
|
|
+ var savedPos1 = pos;
|
|
|
|
+ if (input.substr(pos).match(/^[a-zA-Z]/) !== null) {
|
|
|
|
+ var result3 = input.charAt(pos);
|
|
|
|
+ pos++;
|
|
|
|
+ } else {
|
|
|
|
+ var result3 = null;
|
|
|
|
+ if (reportMatchFailures) {
|
|
|
|
+ matchFailed("[a-zA-Z]");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if (result3 !== null) {
|
|
|
|
+ var result4 = [];
|
|
|
|
+ if (input.substr(pos).match(/^[a-zA-Z0-9]/) !== null) {
|
|
|
|
+ var result5 = input.charAt(pos);
|
|
|
|
+ pos++;
|
|
|
|
+ } else {
|
|
|
|
+ var result5 = null;
|
|
|
|
+ if (reportMatchFailures) {
|
|
|
|
+ matchFailed("[a-zA-Z0-9]");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ while (result5 !== null) {
|
|
|
|
+ result4.push(result5);
|
|
|
|
+ if (input.substr(pos).match(/^[a-zA-Z0-9]/) !== null) {
|
|
|
|
+ var result5 = input.charAt(pos);
|
|
|
|
+ pos++;
|
|
|
|
+ } else {
|
|
|
|
+ var result5 = null;
|
|
|
|
+ if (reportMatchFailures) {
|
|
|
|
+ matchFailed("[a-zA-Z0-9]");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if (result4 !== null) {
|
|
|
|
+ var result1 = [result3, result4];
|
|
|
|
+ } else {
|
|
|
|
+ var result1 = null;
|
|
|
|
+ pos = savedPos1;
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ var result1 = null;
|
|
|
|
+ pos = savedPos1;
|
|
|
|
+ }
|
|
|
|
+ var result2 = result1 !== null
|
|
|
|
+ ? (function(first, others) {return first + others.join("")})(result1[0], result1[1])
|
|
|
|
+ : null;
|
|
|
|
+ if (result2 !== null) {
|
|
|
|
+ var result0 = result2;
|
|
|
|
+ } else {
|
|
|
|
+ var result0 = null;
|
|
|
|
+ pos = savedPos0;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ cache[cacheKey] = {
|
|
|
|
+ nextPos: pos,
|
|
|
|
+ result: result0
|
|
|
|
+ };
|
|
|
|
+ return result0;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ function parse_varIdentifier() {
|
|
|
|
+ var cacheKey = 'varIdentifier@' + pos;
|
|
|
|
+ var cachedResult = cache[cacheKey];
|
|
|
|
+ if (cachedResult) {
|
|
|
|
+ pos = cachedResult.nextPos;
|
|
|
|
+ return cachedResult.result;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
var savedPos0 = pos;
|
|
var savedPos0 = pos;
|
|
var savedPos1 = pos;
|
|
var savedPos1 = pos;
|
|
if (input.substr(pos).match(/^[a-z]/) !== null) {
|
|
if (input.substr(pos).match(/^[a-z]/) !== null) {
|
|
@@ -1430,7 +1503,7 @@ smalltalk.parser = (function(){
|
|
|
|
|
|
|
|
|
|
var savedPos0 = pos;
|
|
var savedPos0 = pos;
|
|
- var result1 = parse_identifier();
|
|
|
|
|
|
+ var result1 = parse_varIdentifier();
|
|
var result2 = result1 !== null
|
|
var result2 = result1 !== null
|
|
? (function(identifier) {
|
|
? (function(identifier) {
|
|
return smalltalk.VariableNode._new()
|
|
return smalltalk.VariableNode._new()
|