aboutsummaryrefslogtreecommitdiff
path: root/nomsu_environment.lua
diff options
context:
space:
mode:
authorBruce Hill <bruce@bruce-hill.com>2018-12-14 20:34:27 -0800
committerBruce Hill <bruce@bruce-hill.com>2018-12-14 20:34:49 -0800
commitd30f6a397d274b0b942bdd2e2648b42538f1cbe2 (patch)
tree56adafac78b01411b995ab5e41a8ceb777bcd5e6 /nomsu_environment.lua
parent4fe63f253f58f87ab986fea38902d95f2a5ea338 (diff)
Fixed some bugs, including upgrade --upgrade-from=version not working.
Also updated the README.
Diffstat (limited to 'nomsu_environment.lua')
-rw-r--r--nomsu_environment.lua9
1 files changed, 6 insertions, 3 deletions
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