|
|
|
@ -1,11 +1,10 @@
|
|
|
|
|
// Generated by BUCKLESCRIPT VERSION 1.9.3, PLEASE EDIT WITH CARE
|
|
|
|
|
'use strict';
|
|
|
|
|
|
|
|
|
|
var List = require("bs-platform/lib/js/list.js");
|
|
|
|
|
var Block = require("bs-platform/lib/js/block.js");
|
|
|
|
|
var $$String = require("bs-platform/lib/js/string.js");
|
|
|
|
|
var Caml_string = require("bs-platform/lib/js/caml_string.js");
|
|
|
|
|
var Js_primitive = require("bs-platform/lib/js/js_primitive.js");
|
|
|
|
|
var List = require("bs-platform/lib/js/list.js");
|
|
|
|
|
var Block = require("bs-platform/lib/js/block.js");
|
|
|
|
|
var $$String = require("bs-platform/lib/js/string.js");
|
|
|
|
|
var Caml_string = require("bs-platform/lib/js/caml_string.js");
|
|
|
|
|
|
|
|
|
|
function explode(s) {
|
|
|
|
|
var _i = s.length - 1 | 0;
|
|
|
|
@ -269,14 +268,38 @@ function tokenizer(input) {
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
console.log(Js_primitive.undefined_to_opt(JSON.stringify(tokenizer("(add 2 (subtract 4 2))"))));
|
|
|
|
|
function printToken(token) {
|
|
|
|
|
if (typeof token === "number") {
|
|
|
|
|
if (token) {
|
|
|
|
|
return "CloseParen";
|
|
|
|
|
} else {
|
|
|
|
|
return "OpenParen";
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
switch (token.tag | 0) {
|
|
|
|
|
case 0 :
|
|
|
|
|
return "Number " + token[0];
|
|
|
|
|
case 1 :
|
|
|
|
|
return "String " + token[0];
|
|
|
|
|
case 2 :
|
|
|
|
|
return "Name " + token[0];
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
List.iter((function (k) {
|
|
|
|
|
console.log(printToken(k));
|
|
|
|
|
return /* () */0;
|
|
|
|
|
}), tokenizer("(add 2 (subtract 4 2))"));
|
|
|
|
|
|
|
|
|
|
var machine = /* record */[
|
|
|
|
|
/* current : None */0,
|
|
|
|
|
/* parsed : [] */0
|
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
exports.machine = machine;
|
|
|
|
|
exports.explode = explode;
|
|
|
|
|
exports.tokenizer = tokenizer;
|
|
|
|
|
exports.machine = machine;
|
|
|
|
|
exports.explode = explode;
|
|
|
|
|
exports.tokenizer = tokenizer;
|
|
|
|
|
exports.printToken = printToken;
|
|
|
|
|
/* Not a pure module */
|
|
|
|
|