From d30f6a397d274b0b942bdd2e2648b42538f1cbe2 Mon Sep 17 00:00:00 2001 From: Bruce Hill Date: Fri, 14 Dec 2018 20:34:27 -0800 Subject: Fixed some bugs, including upgrade --upgrade-from=version not working. Also updated the README. --- nomsu_environment.lua | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'nomsu_environment.lua') diff --git a/nomsu_environment.lua b/nomsu_environment.lua index fc5ab31..93487aa 100644 --- a/nomsu_environment.lua +++ b/nomsu_environment.lua @@ -137,7 +137,7 @@ local nomsu_environment = Importer({ compile_error_at = compile_error, _1_forked = _1_forked, import_to_1_from = import_to_1_from, - _1_parsed = function(nomsu_code) + _1_parsed = function(nomsu_code, syntax_version) if type(nomsu_code) == 'string' then local filename = Files.spoof(nomsu_code) nomsu_code = NomsuCode:from(Source(filename, 1, #nomsu_code), nomsu_code) @@ -145,11 +145,14 @@ local nomsu_environment = Importer({ local source = nomsu_code.source nomsu_code = tostring(nomsu_code) local version = nomsu_code:match("^#![^\n]*nomsu[ ]+-V[ ]*([0-9.]+)") - local syntax_version = version and tonumber(version:match("^[0-9]+")) or max_parser_version + if syntax_version then + syntax_version = tonumber(syntax_version:match("^[0-9]+")) + end + syntax_version = syntax_version or (version and tonumber(version:match("^[0-9]+")) or max_parser_version) local parse = Parsers[syntax_version] or Parsers[max_parser_version] local tree = parse(nomsu_code, source.filename) if tree.shebang then - tree.version = tree.shebang:match("nomsu %-V[ ]*([%d.]*)") + tree.version = tree.version or tree.shebang:match("nomsu %-V[ ]*([%d.]*)") end local errs = { } local find_errors -- cgit v1.2.3