diff --git a/tokenize.js b/tokenize.js index b03a87d..ccc8dce 100755 --- a/tokenize.js +++ b/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 && diff --git a/treegen.js b/treegen.js index 142f0b9..f85a2aa 100644 --- a/treegen.js +++ b/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());