bitbox-compiler
Version:
bitbox /unbox
27 lines (19 loc) • 2.77 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = compile;
var _parser = require("./parser");
var _parser2 = _interopRequireDefault(_parser);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function compile(source, options) {
/** hacks */
source = source.replace(/(\()(<([a-z0-9-]+)(.*)=>([^\n</]+))(\))$/gm, "(<$3$4=>$5</$3>)");
source = source.replace(/<([a-z0-9-]+)(.*)=>([^\n</]+)$/gm, "<$1$2=>$3</$1>");
var result = new _parser2.default().transform(source, options);
result.code = result.code.replace(/exportfunction/g, 'export function');
result.code = result.code.replace(/\;\)/g, '\)');
if (result.code.indexOf('$tree.push') === 0) result.code = result.code.substr(11, result.code.length - 13);
return result.code;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tYWluLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O2tCQUV3QixPQUFPOztBQUYvQixrQ0FBNkI7Ozs7OztBQUVkLFNBQVMsT0FBTyxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUU7O0FBRTdDLFVBQU0sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLDRDQUE0QyxFQUFFLGtCQUFrQixDQUFDLENBQUE7QUFDekYsVUFBTSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsa0NBQWtDLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQTtBQUM3RSxRQUFJLE1BQU0sR0FBRyxzQkFBWSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUE7O0FBRXBELFVBQU0sQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLEVBQUUsaUJBQWlCLENBQUMsQ0FBQTtBQUN2RSxVQUFNLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQTs7QUFFaEQsUUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEVBQ3ZDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQyxDQUFBOztBQUVqRSxXQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUM7Q0FFdEIiLCJmaWxlIjoibWFpbi5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwYXJzZXIgZnJvbSAnLi9wYXJzZXInXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNvbXBpbGUoc291cmNlLCBvcHRpb25zKSB7XG4gICAgLyoqIGhhY2tzICovXG4gICAgc291cmNlID0gc291cmNlLnJlcGxhY2UoLyhcXCgpKDwoW2EtejAtOS1dKykoLiopPT4oW15cXG48L10rKSkoXFwpKSQvZ20sIFwiKDwkMyQ0PT4kNTwvJDM+KVwiKVxuICAgIHNvdXJjZSA9IHNvdXJjZS5yZXBsYWNlKC88KFthLXowLTktXSspKC4qKT0+KFteXFxuPC9dKykkL2dtLCBcIjwkMSQyPT4kMzwvJDE+XCIpXG4gICAgbGV0IHJlc3VsdCA9IG5ldyBwYXJzZXIoKS50cmFuc2Zvcm0oc291cmNlLCBvcHRpb25zKVxuXG4gICAgcmVzdWx0LmNvZGUgPSByZXN1bHQuY29kZS5yZXBsYWNlKC9leHBvcnRmdW5jdGlvbi9nLCAnZXhwb3J0IGZ1bmN0aW9uJylcbiAgICByZXN1bHQuY29kZSA9IHJlc3VsdC5jb2RlLnJlcGxhY2UoL1xcO1xcKS9nLCAnXFwpJylcblxuICAgIGlmIChyZXN1bHQuY29kZS5pbmRleE9mKCckdHJlZS5wdXNoJykgPT09IDApXG4gICAgICAgIHJlc3VsdC5jb2RlID0gcmVzdWx0LmNvZGUuc3Vic3RyKDExLCByZXN1bHQuY29kZS5sZW5ndGggLSAxMylcblxuICAgIHJldHVybiByZXN1bHQuY29kZTtcblxufVxuIl19