diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 00000000..2580a3db --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "thirdparty/LuLPeg"] + path = thirdparty/LuLPeg + url = https://github.com/pygy/LuLPeg diff --git a/README.md b/README.md index e45d8c88..1372fe88 100644 --- a/README.md +++ b/README.md @@ -8,8 +8,13 @@ interfaces, and modules. # Requirements for running the compiler lua >= 5.1 + +## Optional Requirements + lpeg >= 0.12 +If lpeg is not found via `require "lpeg"`, then [LuLPeg](https://github.com/pygy/LuLPeg) will be used instead. + # Usage $ tlc [options] [filename] @@ -23,6 +28,10 @@ interfaces, and modules. -p print the AST -v print current version +# Checkout + + git clone --recursive https://github.com/andremm/typedlua + # License Released under the MIT License (MIT) diff --git a/thirdparty/LuLPeg b/thirdparty/LuLPeg new file mode 160000 index 00000000..c457b27e --- /dev/null +++ b/thirdparty/LuLPeg @@ -0,0 +1 @@ +Subproject commit c457b27e0d7fc935b133921bf3aee92efffe40c8 diff --git a/typedlua/tllexer.lua b/typedlua/tllexer.lua index 9da02292..b067f7db 100644 --- a/typedlua/tllexer.lua +++ b/typedlua/tllexer.lua @@ -4,7 +4,8 @@ This module implements Typed Lua lexer local tllexer = {} -local lpeg = require "lpeg" +local success, lpeg = pcall(require, "lpeg") +lpeg = success and lpeg or require "thirdparty/lulpeg/lulpeg":register(not _ENV and _G) lpeg.locale(lpeg) local function getffp (s, i, t) diff --git a/typedlua/tlparser.lua b/typedlua/tlparser.lua index 97f5e2be..7b807252 100644 --- a/typedlua/tlparser.lua +++ b/typedlua/tlparser.lua @@ -4,7 +4,8 @@ This module implements Typed Lua parser local tlparser = {} -local lpeg = require "lpeg" +local success, lpeg = pcall(require, "lpeg") +lpeg = success and lpeg or require "thirdparty/lulpeg/lulpeg":register(not _ENV and _G) lpeg.locale(lpeg) local tlast = require "typedlua.tlast"