From 44a58afd6017eaf5da225f752c9864079c848dcc Mon Sep 17 00:00:00 2001 From: Gordon Williams Date: Mon, 27 Apr 2020 17:32:12 +0100 Subject: [PATCH] swap pretokenise to acorn lexer --- js/espruinotools.js | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/js/espruinotools.js b/js/espruinotools.js index b06cb4961..38762ff20 100644 --- a/js/espruinotools.js +++ b/js/espruinotools.js @@ -32976,6 +32976,10 @@ global.esmangle = require('../lib/esmangle'); **/ "use strict"; (function(){ + if (typeof acorn == "undefined") { + console.log("pretokenise: needs acorn, disabling."); + } + function init() { Espruino.Core.Config.add("PRETOKENISE", { section : "Minification", @@ -33069,7 +33073,23 @@ global.esmangle = require('../lib/esmangle'); function pretokenise(code, callback) { - var lex = Espruino.Core.Utils.getLexer(code); + var lex = (function() { + var t = acorn.tokenizer(code); + return { next : function() { + var tk = t.getToken(); + if (tk.type.label=="eof") return undefined; + var tp = "?"; + if (tk.type.label=="template" || tk.type.label=="string") tp="STRING"; + if (tk.type.label=="num") tp="NUMBER"; + if (tk.type.keyword) tp="ID"; + return { + startIdx : tk.start, + endIdx : tk.end, + str : code.substr(tk.start, tk.end), + type : tp + }; + }}; + })(); var brackets = 0; var resultCode = ""; var lastIdx = 0;