Browse Source

check for NaN in tokenization functions

pull/3/head
nisstyre56 11 years ago
parent
commit
be1996a1d9
  1. 9
      tokenize.js
  2. 3
      treegen.js

9
tokenize.js

@ -10,6 +10,9 @@ function isDigit(a) {
if (!a)
return false;
var code = a.charCodeAt();
if (isNaN(code)) {
return false;
}
return (46 < code &&
code < 58 ||
code < 58 &&
@ -21,6 +24,9 @@ function isWhitespace(a) {
return true;
var code = a.charCodeAt();
if (isNaN(code)) {
return false;
}
return (code === 9 ||
code === 32 ||
code === 10 ||
@ -30,7 +36,8 @@ function isWhitespace(a) {
function isIdentifier(a) {
var code = a.charCodeAt();
return (code !== 41 &&
return (!isNaN(code) &&
code !== 41 &&
code !== 40 &&
code !== 125 &&
code !== 123 &&

3
treegen.js

@ -10,10 +10,11 @@ var qc = require("quickcheck");
function arbIdentifier() {
var st = qc.arbString()
if (lex.isIdentifier(st)) {
return st;
return new repr.Name(st);
}
else {
return arbIdentifier();
}
}
console.log(arbIdentifier());

Loading…
Cancel
Save