lookChar: function() {
var bytes = this.bytes;
if (this.pos >= bytes.length)
- return EOF;
+ return;
return String.fromCharCode(bytes[this.pos]);
},
getChar: function() {
}
};
- constructor.EOF = -1;
-
return constructor;
});
var stream = this.stream;
do {
switch (ch = stream.getChar()) {
- case EOF:
+ case undefined:
this.error("Unterminated string");
done = true;
break;
break;
case '\\':
switch (ch = stream.getChar()) {
+ case undefined:
+ this.error("Unterminated string");
+ done = true;
+ break;
case 'n':
str += '\n';
break;
break;
case '\n':
break;
- case EOF:
- this.error("Unterminated string");
- done = true;
- break;
default:
str += ch;
break;
getName: function(ch) {
var str = "";
var stream = this.stream;
- while ((ch = stream.lookChar()) != EOF && !specialChars[ch.toCharCode()]) {
+ while (!!(ch = stream.lookChar()) && !specialChars[ch.toCharCode()]) {
stream.getChar();
if (ch == "#") {
ch = stream.lookChar();
ch = stream.getChar();
if (ch == '>') {
break;
- } else if (ch == EOF) {
+ } else if (!ch) {
this.error("Unterminated hex string");
break;
} else if (specialChars[ch.toCharCode()] != 1) {
var stream = this.stream;
while (true) {
var ch;
- if ((ch = stream.getChar()) == EOF)
+ if (!(ch = stream.getChar()))
return new Obj(Object.EOF);
if (comment) {
if (ch == '\r' || ch == '\n')
// command
var str = ch;
- while ((ch = stream.lookChar()) != EOF && !specialChars[ch.toCharCode()]) {
+ while (!!(ch = stream.lookChar()) && !specialChars[ch.toCharCode()]) {
stream.getChar();
if (str.length == 128) {
error("Command token too long");