aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruce Hill <bruce@bruce-hill.com>2018-09-21 00:26:36 -0700
committerBruce Hill <bruce@bruce-hill.com>2018-09-21 00:27:14 -0700
commitacd9c2acd4688f2301b091daad910c04e402bd6a (patch)
tree411ac06c722b60fb8584b0eef13579c1dd4967a2
parentd11f9bc5d3971a68dd78cdaca0b046a40a329000 (diff)
Fixed breaking bug with compiler not finding the peg file when running the installed version because it
wasn't looking in the full nomsupath.
-rw-r--r--nomsu_compiler.lua19
-rw-r--r--nomsu_compiler.moon11
2 files changed, 19 insertions, 11 deletions
diff --git a/nomsu_compiler.lua b/nomsu_compiler.lua
index 2e286b7..c3fc802 100644
--- a/nomsu_compiler.lua
+++ b/nomsu_compiler.lua
@@ -131,15 +131,20 @@ end
local Parsers = { }
local max_parser_version = 0
for version = 1, 999 do
- do
- local peg_contents = Files.read("nomsu." .. tostring(version) .. ".peg")
- if peg_contents then
- max_parser_version = version
- Parsers[version] = make_parser(peg_contents, make_tree)
- else
- break
+ local found_version = false
+ for _, full_path in Files.walk("nomsu." .. tostring(version) .. ".peg") do
+ do
+ local peg_contents = Files.read(full_path)
+ if peg_contents then
+ found_version = true
+ max_parser_version = version
+ Parsers[version] = make_parser(peg_contents, make_tree)
+ end
end
end
+ if not (found_version) then
+ break
+ end
end
local MAX_LINE = 80
local NomsuCompiler = setmetatable({ }, {
diff --git a/nomsu_compiler.moon b/nomsu_compiler.moon
index 19d4049..f5cc7d2 100644
--- a/nomsu_compiler.moon
+++ b/nomsu_compiler.moon
@@ -79,10 +79,13 @@ make_tree = (tree, userdata)->
Parsers = {}
max_parser_version = 0
for version=1,999
- if peg_contents = Files.read("nomsu.#{version}.peg")
- max_parser_version = version
- Parsers[version] = make_parser(peg_contents, make_tree)
- else break
+ found_version = false
+ for _, full_path in Files.walk("nomsu.#{version}.peg")
+ if peg_contents = Files.read(full_path)
+ found_version = true
+ max_parser_version = version
+ Parsers[version] = make_parser(peg_contents, make_tree)
+ break unless found_version
MAX_LINE = 80 -- For beautification purposes, try not to make lines much longer than this value
NomsuCompiler = setmetatable {}, {__tostring: => "Nomsu"}