|
@@ -5,6 +5,8 @@ var Stream = require("Stream.js");
|
|
var quote = "\"";
|
|
var quote = "\"";
|
|
var commentBegin = "(*";
|
|
var commentBegin = "(*";
|
|
var commentEnd = "*)";
|
|
var commentEnd = "*)";
|
|
|
|
+var reservedWords = "ARRAY IMPORT THEN BEGIN IN TO BY IS TRUE CASE MOD TYPE CONST MODULE UNTIL DIV NIL VAR DO OF WHILE ELSE OR ELSIF POINTER END PROCEDURE FALSE RECORD FOR REPEAT IF RETURN";
|
|
|
|
+var jsReservedWords = "break case catch continue debugger default delete do else finally for function if in instanceof new return switch this throw try typeof var void while with Math";
|
|
var Context = RTL$.extend({
|
|
var Context = RTL$.extend({
|
|
init: function Context(){
|
|
init: function Context(){
|
|
this.handleChar = null;
|
|
this.handleChar = null;
|
|
@@ -20,8 +22,6 @@ var Literal = RTL$.extend({
|
|
this.s = RTL$.makeCharArray(1);
|
|
this.s = RTL$.makeCharArray(1);
|
|
}
|
|
}
|
|
});
|
|
});
|
|
-var reservedWords = null;
|
|
|
|
-var jsReservedWords = null;
|
|
|
|
|
|
|
|
function isDigit(c/*CHAR*/){
|
|
function isDigit(c/*CHAR*/){
|
|
return c >= 48 && c <= 57;
|
|
return c >= 48 && c <= 57;
|
|
@@ -98,14 +98,14 @@ function string(stream/*Type*/, context/*Context*/){
|
|
return result;
|
|
return result;
|
|
}
|
|
}
|
|
|
|
|
|
-function isReservedWorld(s/*Type*/, words/*Type*/){
|
|
|
|
|
|
+function isReservedWorld(s/*Type*/, words/*ARRAY OF CHAR*/){
|
|
var i = 0;var w = 0;
|
|
var i = 0;var w = 0;
|
|
while (true){
|
|
while (true){
|
|
- if (w < JsString.len(words) && i < JsString.len(s) && JsString.at(words, w) == JsString.at(s, i) && (i != 0 || w == 0 || JsString.at(words, w - 1 | 0) == 32)){
|
|
|
|
|
|
+ if (w < words.length && i < JsString.len(s) && words.charCodeAt(w) == JsString.at(s, i) && (i != 0 || w == 0 || words.charCodeAt(w - 1 | 0) == 32)){
|
|
++w;
|
|
++w;
|
|
++i;
|
|
++i;
|
|
}
|
|
}
|
|
- else if (w < JsString.len(words) && (i < JsString.len(s) || JsString.at(words, w) != 32)){
|
|
|
|
|
|
+ else if (w < words.length && (i < JsString.len(s) || words.charCodeAt(w) != 32)){
|
|
++w;
|
|
++w;
|
|
i = 0;
|
|
i = 0;
|
|
} else break;
|
|
} else break;
|
|
@@ -199,8 +199,6 @@ function literal(l/*Literal*/, stream/*Type*/, context/*Context*/){
|
|
}
|
|
}
|
|
return result;
|
|
return result;
|
|
}
|
|
}
|
|
-reservedWords = JsString.make("ARRAY IMPORT THEN BEGIN IN TO BY IS TRUE CASE MOD TYPE CONST MODULE UNTIL DIV NIL VAR DO OF WHILE ELSE OR ELSIF POINTER END PROCEDURE FALSE RECORD FOR REPEAT IF RETURN");
|
|
|
|
-jsReservedWords = JsString.make("break case catch continue debugger default delete do else finally for function if in instanceof new return switch this throw try typeof var void while with Math");
|
|
|
|
exports.digit = digit;
|
|
exports.digit = digit;
|
|
exports.hexDigit = hexDigit;
|
|
exports.hexDigit = hexDigit;
|
|
exports.point = point;
|
|
exports.point = point;
|