diff options
Diffstat (limited to 'examples/typedlua/tllexer.lua')
-rw-r--r-- | examples/typedlua/tllexer.lua | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/examples/typedlua/tllexer.lua b/examples/typedlua/tllexer.lua index 6517ba5..d6033ec 100644 --- a/examples/typedlua/tllexer.lua +++ b/examples/typedlua/tllexer.lua | |||
@@ -1,6 +1,6 @@ | |||
1 | local tllexer = {} | 1 | local tllexer = {} |
2 | 2 | ||
3 | local lpeg = require "lpeglabel" | 3 | local lpeg = require "lpeglabelrec" |
4 | lpeg.locale(lpeg) | 4 | lpeg.locale(lpeg) |
5 | 5 | ||
6 | local tlerror = require "tlerror" | 6 | local tlerror = require "tlerror" |
@@ -9,10 +9,6 @@ function tllexer.try (pat, label) | |||
9 | return pat + lpeg.T(tlerror.labels[label]) | 9 | return pat + lpeg.T(tlerror.labels[label]) |
10 | end | 10 | end |
11 | 11 | ||
12 | function tllexer.catch (pat, label) | ||
13 | return lpeg.Lc(pat, lpeg.P(false), tlerror.labels[label]) | ||
14 | end | ||
15 | |||
16 | local function setffp (s, i, t, n) | 12 | local function setffp (s, i, t, n) |
17 | if not t.ffp or i > t.ffp then | 13 | if not t.ffp or i > t.ffp then |
18 | t.ffp = i | 14 | t.ffp = i |
@@ -45,7 +41,10 @@ local CloseEQ = lpeg.Cmt(Close * lpeg.Cb("init"), | |||
45 | local LongString = Open * (lpeg.P(1) - CloseEQ)^0 * tllexer.try(Close, "LongString") / | 41 | local LongString = Open * (lpeg.P(1) - CloseEQ)^0 * tllexer.try(Close, "LongString") / |
46 | function (s, o) return s end | 42 | function (s, o) return s end |
47 | 43 | ||
48 | local Comment = lpeg.Lc(lpeg.P("--") * LongString / function () return end, | 44 | local LongStringCm1 = Open * (lpeg.P(1) - CloseEQ)^0 * Close / |
45 | function (s, o) return s end | ||
46 | |||
47 | local Comment = lpeg.Rec(lpeg.P"--" * #Open * (LongStringCm1 / function() return end + lpeg.T(tlerror.labels["LongString"])), | ||
49 | lpeg.T(tlerror.labels["LongComment"]), tlerror.labels["LongString"]) + | 48 | lpeg.T(tlerror.labels["LongComment"]), tlerror.labels["LongString"]) + |
50 | lpeg.P("--") * (lpeg.P(1) - lpeg.P("\n"))^0 | 49 | lpeg.P("--") * (lpeg.P(1) - lpeg.P("\n"))^0 |
51 | 50 | ||