diff options
Diffstat (limited to 'nomsu_environment.lua')
| -rw-r--r-- | nomsu_environment.lua | 15 |
1 files changed, 5 insertions, 10 deletions
diff --git a/nomsu_environment.lua b/nomsu_environment.lua index 8573179..08993ea 100644 --- a/nomsu_environment.lua +++ b/nomsu_environment.lua @@ -23,8 +23,7 @@ make_tree = function(tree, userdata) return tree end local Parsers = { } -local max_parser_version = 0 -for version = 1, 999 do +for version = 1, NOMSU_VERSION[1] do local peg_file if package.nomsupath then local pegpath = package.nomsupath:gsub("lib/%?%.nom", "?.peg"):gsub("lib/%?%.lua", "?.peg") @@ -37,10 +36,7 @@ for version = 1, 999 do else peg_file = io.open("nomsu." .. tostring(version) .. ".peg") end - if not (peg_file) then - break - end - max_parser_version = version + assert(peg_file, "No PEG file found for Nomsu version " .. tostring(version)) local peg_contents = peg_file:read('*a') peg_file:close() Parsers[version] = make_parser(peg_contents, make_tree) @@ -87,8 +83,6 @@ _1_as_list = function(x) end local nomsu_environment nomsu_environment = Importer({ - NOMSU_COMPILER_VERSION = 13, - NOMSU_SYNTAX_VERSION = max_parser_version, next = next, unpack = unpack or table.unpack, setmetatable = setmetatable, @@ -171,8 +165,9 @@ nomsu_environment = Importer({ 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] + syntax_version = syntax_version or (version and tonumber(version:match("^[0-9]+")) or NOMSU_VERSION[1]) + local parse = Parsers[syntax_version] + assert(parse, "No parser found for Nomsu syntax version " .. tostring(syntax_version)) local tree = parse(nomsu_code, source.filename) if tree.shebang then tree.version = tree.version or tree.shebang:match("nomsu %-V[ ]*([%d.]*)") |
