aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndre Murbach Maidl <andremm@gmail.com>2015-10-13 16:49:58 -0300
committerAndre Murbach Maidl <andremm@gmail.com>2015-10-13 16:49:58 -0300
commit53d28a6ff2ffcd6e3779b0f0bf92b6ae39d924fe (patch)
treee1f50f8c2cb0ffd047a50c3f7a82f7864e81f753
parent779bb8c74418d41344268525c5208f874626dcd2 (diff)
downloadlpeglabel-typedlua.tar.gz
lpeglabel-typedlua.tar.bz2
lpeglabel-typedlua.zip
Fixing Typed Lua parser to use label failure position instead of farthest failure positiontypedlua
-rwxr-xr-xexamples/typedlua/test.lua84
-rw-r--r--examples/typedlua/tlparser.lua4
2 files changed, 44 insertions, 44 deletions
diff --git a/examples/typedlua/test.lua b/examples/typedlua/test.lua
index 4e173b9..ed4e7a1 100755
--- a/examples/typedlua/test.lua
+++ b/examples/typedlua/test.lua
@@ -290,7 +290,7 @@ local f = 9e
290test.lua:2:1: syntax error, unexpected 'EOF', expecting '=', ',', 'String', '{', '(', ':', '[', '.' 290test.lua:2:1: syntax error, unexpected 'EOF', expecting '=', ',', 'String', '{', '(', ':', '[', '.'
291]=] 291]=]
292e = [=[ 292e = [=[
293test.lua:1:11: malformed <number> 293test.lua:1:12: malformed <number>
294]=] 294]=]
295 295
296r, m = parse(s) 296r, m = parse(s)
@@ -303,7 +303,7 @@ local f = 5.e
303test.lua:2:1: syntax error, unexpected 'EOF', expecting '=', ',', 'String', '{', '(', ':', '[', '.' 303test.lua:2:1: syntax error, unexpected 'EOF', expecting '=', ',', 'String', '{', '(', ':', '[', '.'
304]=] 304]=]
305e = [=[ 305e = [=[
306test.lua:1:11: malformed <number> 306test.lua:1:13: malformed <number>
307]=] 307]=]
308 308
309r, m = parse(s) 309r, m = parse(s)
@@ -316,7 +316,7 @@ local f = .9e-
316test.lua:1:14: syntax error, unexpected '-', expecting '=', ',', 'String', '{', '(', ':', '[', '.' 316test.lua:1:14: syntax error, unexpected '-', expecting '=', ',', 'String', '{', '(', ':', '[', '.'
317]=] 317]=]
318e = [=[ 318e = [=[
319test.lua:1:11: malformed <number> 319test.lua:1:14: malformed <number>
320]=] 320]=]
321 321
322r, m = parse(s) 322r, m = parse(s)
@@ -329,7 +329,7 @@ local f = 5.9e+
329test.lua:1:15: syntax error, unexpected '+', expecting '=', ',', 'String', '{', '(', ':', '[', '.' 329test.lua:1:15: syntax error, unexpected '+', expecting '=', ',', 'String', '{', '(', ':', '[', '.'
330]=] 330]=]
331e = [=[ 331e = [=[
332test.lua:1:11: malformed <number> 332test.lua:1:15: malformed <number>
333]=] 333]=]
334 334
335r, m = parse(s) 335r, m = parse(s)
@@ -346,7 +346,7 @@ local hex = 0xG
346test.lua:4:1: syntax error, unexpected 'EOF', expecting '=', ',', 'String', '{', '(', ':', '[', '.' 346test.lua:4:1: syntax error, unexpected 'EOF', expecting '=', ',', 'String', '{', '(', ':', '[', '.'
347]=] 347]=]
348e = [=[ 348e = [=[
349test.lua:3:13: malformed <number> 349test.lua:3:14: malformed <number>
350]=] 350]=]
351 351
352r, m = parse(s) 352r, m = parse(s)
@@ -373,7 +373,7 @@ long string
373test.lua:5:13: syntax error, unexpected '[', expecting '(', 'Name', '{', 'function', '...', 'true', 'false', 'nil', 'String', 'Number', '#', '~', '-', 'not' 373test.lua:5:13: syntax error, unexpected '[', expecting '(', 'Name', '{', 'function', '...', 'true', 'false', 'nil', 'String', 'Number', '#', '~', '-', 'not'
374]=] 374]=]
375e = [=[ 375e = [=[
376test.lua:5:13: unfinished long string 376test.lua:14:1: unfinished long string
377]=] 377]=]
378 378
379r, m = parse(s) 379r, m = parse(s)
@@ -392,7 +392,7 @@ local ss6 = "testing unfinished string
392test.lua:3:13: syntax error, unexpected '"', expecting '(', 'Name', '{', 'function', '...', 'true', 'false', 'nil', 'String', 'Number', '#', '~', '-', 'not' 392test.lua:3:13: syntax error, unexpected '"', expecting '(', 'Name', '{', 'function', '...', 'true', 'false', 'nil', 'String', 'Number', '#', '~', '-', 'not'
393]=] 393]=]
394e = [=[ 394e = [=[
395test.lua:3:13: malformed <string> 395test.lua:6:1: malformed <string>
396]=] 396]=]
397 397
398r, m = parse(s) 398r, m = parse(s)
@@ -409,7 +409,7 @@ comment
409test.lua:3:1: syntax error, unexpected 'comment', expecting '=', ',', 'String', '{', '(', ':', '[', '.' 409test.lua:3:1: syntax error, unexpected 'comment', expecting '=', ',', 'String', '{', '(', ':', '[', '.'
410]=] 410]=]
411e = [=[ 411e = [=[
412test.lua:4:1: unfinished long comment 412test.lua:1:1: unfinished long comment
413]=] 413]=]
414 414
415r, m = parse(s) 415r, m = parse(s)
@@ -1703,7 +1703,7 @@ a = function (a,b,) end
1703test.lua:1:19: syntax error, unexpected ')', expecting '...', 'Name' 1703test.lua:1:19: syntax error, unexpected ')', expecting '...', 'Name'
1704]=] 1704]=]
1705e = [=[ 1705e = [=[
1706test.lua:1:19: expecting '...' 1706test.lua:1:18: expecting '...'
1707]=] 1707]=]
1708 1708
1709r, m = parse(s) 1709r, m = parse(s)
@@ -1716,7 +1716,7 @@ a = function (...,a) end
1716test.lua:1:18: syntax error, unexpected ',', expecting ')', ':' 1716test.lua:1:18: syntax error, unexpected ',', expecting ')', ':'
1717]=] 1717]=]
1718e = [=[ 1718e = [=[
1719test.lua:1:18: missing ')' 1719test.lua:1:17: missing ')'
1720]=] 1720]=]
1721 1721
1722r, m = parse(s) 1722r, m = parse(s)
@@ -1729,7 +1729,7 @@ local a = function (1) end
1729test.lua:1:21: syntax error, unexpected '1', expecting ')', '...', 'Name' 1729test.lua:1:21: syntax error, unexpected '1', expecting ')', '...', 'Name'
1730]=] 1730]=]
1731e = [=[ 1731e = [=[
1732test.lua:1:21: missing ')' 1732test.lua:1:20: missing ')'
1733]=] 1733]=]
1734 1734
1735r, m = parse(s) 1735r, m = parse(s)
@@ -1757,7 +1757,7 @@ a = 3 / / 2
1757test.lua:1:9: syntax error, unexpected '/', expecting '(', 'Name', '{', 'function', '...', 'true', 'false', 'nil', 'String', 'Number', '#', '~', '-', 'not' 1757test.lua:1:9: syntax error, unexpected '/', expecting '(', 'Name', '{', 'function', '...', 'true', 'false', 'nil', 'String', 'Number', '#', '~', '-', 'not'
1758]=] 1758]=]
1759e = [=[ 1759e = [=[
1760test.lua:1:9: malformed multiplication expression 1760test.lua:1:8: malformed multiplication expression
1761]=] 1761]=]
1762 1762
1763r, m = parse(s) 1763r, m = parse(s)
@@ -1772,7 +1772,7 @@ b = 1 && 1
1772test.lua:1:8: syntax error, unexpected '&', expecting '(', 'Name', '{', 'function', '...', 'true', 'false', 'nil', 'String', 'Number', '#', '~', '-', 'not' 1772test.lua:1:8: syntax error, unexpected '&', expecting '(', 'Name', '{', 'function', '...', 'true', 'false', 'nil', 'String', 'Number', '#', '~', '-', 'not'
1773]=] 1773]=]
1774e = [=[ 1774e = [=[
1775test.lua:1:8: malformed '&' expression 1775test.lua:1:7: malformed '&' expression
1776]=] 1776]=]
1777 1777
1778r, m = parse(s) 1778r, m = parse(s)
@@ -1785,7 +1785,7 @@ b = 1 <> 0
1785test.lua:1:8: syntax error, unexpected '>', expecting '(', 'Name', '{', 'function', '...', 'true', 'false', 'nil', 'String', 'Number', '#', '~', '-', 'not' 1785test.lua:1:8: syntax error, unexpected '>', expecting '(', 'Name', '{', 'function', '...', 'true', 'false', 'nil', 'String', 'Number', '#', '~', '-', 'not'
1786]=] 1786]=]
1787e = [=[ 1787e = [=[
1788test.lua:1:8: malformed relational expression 1788test.lua:1:7: malformed relational expression
1789]=] 1789]=]
1790 1790
1791r, m = parse(s) 1791r, m = parse(s)
@@ -1798,7 +1798,7 @@ b = 1 < < 0
1798test.lua:1:9: syntax error, unexpected '<', expecting '(', 'Name', '{', 'function', '...', 'true', 'false', 'nil', 'String', 'Number', '#', '~', '-', 'not' 1798test.lua:1:9: syntax error, unexpected '<', expecting '(', 'Name', '{', 'function', '...', 'true', 'false', 'nil', 'String', 'Number', '#', '~', '-', 'not'
1799]=] 1799]=]
1800e = [=[ 1800e = [=[
1801test.lua:1:9: malformed relational expression 1801test.lua:1:8: malformed relational expression
1802]=] 1802]=]
1803 1803
1804r, m = parse(s) 1804r, m = parse(s)
@@ -1813,7 +1813,7 @@ concat2 = 2^3..1
1813test.lua:1:15: syntax error, unexpected '.1', expecting 'return', '(', 'Name', 'typealias', 'interface', 'goto', 'break', '::', 'local', 'function', 'const', 'repeat', 'for', 'do', 'while', 'if', ';', ',', 'or', 'and', '>', '<', '>=', '<=', '==', '~=', '|', '~', '&', '>>', '<<', '..', '-', '+', '%', '/', '//', '*', '^' 1813test.lua:1:15: syntax error, unexpected '.1', expecting 'return', '(', 'Name', 'typealias', 'interface', 'goto', 'break', '::', 'local', 'function', 'const', 'repeat', 'for', 'do', 'while', 'if', ';', ',', 'or', 'and', '>', '<', '>=', '<=', '==', '~=', '|', '~', '&', '>>', '<<', '..', '-', '+', '%', '/', '//', '*', '^'
1814]=] 1814]=]
1815e = [=[ 1815e = [=[
1816test.lua:1:13: malformed <number> 1816test.lua:1:14: malformed <number>
1817]=] 1817]=]
1818 1818
1819r, m = parse(s) 1819r, m = parse(s)
@@ -1828,7 +1828,7 @@ for k;v in pairs(t) do end
1828test.lua:1:6: syntax error, unexpected ';', expecting 'in', ',', ':', '=' 1828test.lua:1:6: syntax error, unexpected ';', expecting 'in', ',', ':', '='
1829]=] 1829]=]
1830e = [=[ 1830e = [=[
1831test.lua:1:6: expecting 'in' 1831test.lua:1:5: expecting 'in'
1832]=] 1832]=]
1833 1833
1834r, m = parse(s) 1834r, m = parse(s)
@@ -1841,7 +1841,7 @@ for k,v in pairs(t:any) do end
1841test.lua:1:23: syntax error, unexpected ')', expecting 'String', '{', '(' 1841test.lua:1:23: syntax error, unexpected ')', expecting 'String', '{', '('
1842]=] 1842]=]
1843e = [=[ 1843e = [=[
1844test.lua:1:23: expecting '(' for method call 1844test.lua:1:22: expecting '(' for method call
1845]=] 1845]=]
1846 1846
1847r, m = parse(s) 1847r, m = parse(s)
@@ -1856,7 +1856,7 @@ for i=1,10, do end
1856test.lua:1:13: syntax error, unexpected 'do', expecting '(', 'Name', '{', 'function', '...', 'true', 'false', 'nil', 'String', 'Number', '#', '~', '-', 'not' 1856test.lua:1:13: syntax error, unexpected 'do', expecting '(', 'Name', '{', 'function', '...', 'true', 'false', 'nil', 'String', 'Number', '#', '~', '-', 'not'
1857]=] 1857]=]
1858e = [=[ 1858e = [=[
1859test.lua:1:13: missing 'do' in for statement 1859test.lua:1:10: missing 'do' in for statement
1860]=] 1860]=]
1861 1861
1862r, m = parse(s) 1862r, m = parse(s)
@@ -1869,7 +1869,7 @@ for i=1,n:number do end
1869test.lua:1:18: syntax error, unexpected 'do', expecting 'String', '{', '(' 1869test.lua:1:18: syntax error, unexpected 'do', expecting 'String', '{', '('
1870]=] 1870]=]
1871e = [=[ 1871e = [=[
1872test.lua:1:18: expecting '(' for method call 1872test.lua:1:17: expecting '(' for method call
1873]=] 1873]=]
1874 1874
1875r, m = parse(s) 1875r, m = parse(s)
@@ -1884,7 +1884,7 @@ function func(a,b,c,) end
1884test.lua:1:21: syntax error, unexpected ')', expecting '...', 'Name' 1884test.lua:1:21: syntax error, unexpected ')', expecting '...', 'Name'
1885]=] 1885]=]
1886e = [=[ 1886e = [=[
1887test.lua:1:21: expecting '...' 1887test.lua:1:20: expecting '...'
1888]=] 1888]=]
1889 1889
1890r, m = parse(s) 1890r, m = parse(s)
@@ -1897,7 +1897,7 @@ function func(...,a) end
1897test.lua:1:18: syntax error, unexpected ',', expecting ')', ':' 1897test.lua:1:18: syntax error, unexpected ',', expecting ')', ':'
1898]=] 1898]=]
1899e = [=[ 1899e = [=[
1900test.lua:1:18: missing ')' 1900test.lua:1:17: missing ')'
1901]=] 1901]=]
1902 1902
1903r, m = parse(s) 1903r, m = parse(s)
@@ -1910,7 +1910,7 @@ function a.b:c:d () end
1910test.lua:1:15: syntax error, unexpected ':', expecting '(' 1910test.lua:1:15: syntax error, unexpected ':', expecting '('
1911]=] 1911]=]
1912e = [=[ 1912e = [=[
1913test.lua:1:15: missing '(' 1913test.lua:1:14: missing '('
1914]=] 1914]=]
1915 1915
1916r, m = parse(s) 1916r, m = parse(s)
@@ -1986,7 +1986,7 @@ if a:any then else end
1986test.lua:1:10: syntax error, unexpected 'then', expecting 'String', '{', '(' 1986test.lua:1:10: syntax error, unexpected 'then', expecting 'String', '{', '('
1987]=] 1987]=]
1988e = [=[ 1988e = [=[
1989test.lua:1:10: expecting '(' for method call 1989test.lua:1:9: expecting '(' for method call
1990]=] 1990]=]
1991 1991
1992r, m = parse(s) 1992r, m = parse(s)
@@ -2002,7 +2002,7 @@ s = [=[
2002test.lua:2:4: syntax error, unexpected 'not', expecting 'Name' 2002test.lua:2:4: syntax error, unexpected 'not', expecting 'Name'
2003]=] 2003]=]
2004e = [=[ 2004e = [=[
2005test.lua:2:4: expecting <name> after '::' 2005test.lua:2:3: expecting <name> after '::'
2006]=] 2006]=]
2007 2007
2008r, m = parse(s) 2008r, m = parse(s)
@@ -2030,7 +2030,7 @@ local function t.a() end
2030test.lua:1:17: syntax error, unexpected '.', expecting '(' 2030test.lua:1:17: syntax error, unexpected '.', expecting '('
2031]=] 2031]=]
2032e = [=[ 2032e = [=[
2033test.lua:1:17: missing '(' 2033test.lua:1:16: missing '('
2034]=] 2034]=]
2035 2035
2036r, m = parse(s) 2036r, m = parse(s)
@@ -2043,7 +2043,7 @@ local function test (a,) end
2043test.lua:1:24: syntax error, unexpected ')', expecting '...', 'Name' 2043test.lua:1:24: syntax error, unexpected ')', expecting '...', 'Name'
2044]=] 2044]=]
2045e = [=[ 2045e = [=[
2046test.lua:1:24: expecting '...' 2046test.lua:1:23: expecting '...'
2047]=] 2047]=]
2048 2048
2049r, m = parse(s) 2049r, m = parse(s)
@@ -2056,7 +2056,7 @@ local function test(...,a) end
2056test.lua:1:24: syntax error, unexpected ',', expecting ')', ':' 2056test.lua:1:24: syntax error, unexpected ',', expecting ')', ':'
2057]=] 2057]=]
2058e = [=[ 2058e = [=[
2059test.lua:1:24: missing ')' 2059test.lua:1:23: missing ')'
2060]=] 2060]=]
2061 2061
2062r, m = parse(s) 2062r, m = parse(s)
@@ -2069,7 +2069,7 @@ local function (a, b, c, ...) end
2069test.lua:1:16: syntax error, unexpected '(', expecting 'Name' 2069test.lua:1:16: syntax error, unexpected '(', expecting 'Name'
2070]=] 2070]=]
2071e = [=[ 2071e = [=[
2072test.lua:1:16: expecting <name> in local function declaration 2072test.lua:1:15: expecting <name> in local function declaration
2073]=] 2073]=]
2074 2074
2075r, m = parse(s) 2075r, m = parse(s)
@@ -2121,7 +2121,7 @@ t = { , }
2121test.lua:1:7: syntax error, unexpected ',', expecting '}', '(', '{', 'function', '...', 'true', 'false', 'nil', 'String', 'Number', '#', '~', '-', 'not', 'Name', '[', 'const' 2121test.lua:1:7: syntax error, unexpected ',', expecting '}', '(', '{', 'function', '...', 'true', 'false', 'nil', 'String', 'Number', '#', '~', '-', 'not', 'Name', '[', 'const'
2122]=] 2122]=]
2123e = [=[ 2123e = [=[
2124test.lua:1:7: missing '}' 2124test.lua:1:6: missing '}'
2125]=] 2125]=]
2126 2126
2127r, m = parse(s) 2127r, m = parse(s)
@@ -2139,7 +2139,7 @@ end
2139test.lua:3:3: syntax error, unexpected 'i', expecting 'do', 'or', 'and', '>', '<', '>=', '<=', '==', '~=', '|', '~', '&', '>>', '<<', '..', '-', '+', '%', '/', '//', '*', '^', 'String', '{', '(', ':', '[', '.' 2139test.lua:3:3: syntax error, unexpected 'i', expecting 'do', 'or', 'and', '>', '<', '>=', '<=', '==', '~=', '|', '~', '&', '>>', '<<', '..', '-', '+', '%', '/', '//', '*', '^', 'String', '{', '(', ':', '[', '.'
2140]=] 2140]=]
2141e = [=[ 2141e = [=[
2142test.lua:3:3: missing 'do' in while statement 2142test.lua:3:2: missing 'do' in while statement
2143]=] 2143]=]
2144 2144
2145r, m = parse(s) 2145r, m = parse(s)
@@ -2154,7 +2154,7 @@ t[x:any] = 1
2154test.lua:1:8: syntax error, unexpected ']', expecting 'String', '{', '(' 2154test.lua:1:8: syntax error, unexpected ']', expecting 'String', '{', '('
2155]=] 2155]=]
2156e = [=[ 2156e = [=[
2157test.lua:1:8: expecting '(' for method call 2157test.lua:1:7: expecting '(' for method call
2158]=] 2158]=]
2159 2159
2160r, m = parse(s) 2160r, m = parse(s)
@@ -2167,7 +2167,7 @@ x:number, y, z:boolean = 1, nil, true
2167test.lua:1:9: syntax error, unexpected ',', expecting 'String', '{', '(' 2167test.lua:1:9: syntax error, unexpected ',', expecting 'String', '{', '('
2168]=] 2168]=]
2169e = [=[ 2169e = [=[
2170test.lua:1:9: expecting '(' for method call 2170test.lua:1:8: expecting '(' for method call
2171]=] 2171]=]
2172 2172
2173r, m = parse(s) 2173r, m = parse(s)
@@ -2193,7 +2193,7 @@ x = ...:any
2193test.lua:1:8: syntax error, unexpected ':', expecting 'return', '(', 'Name', 'typealias', 'interface', 'goto', 'break', '::', 'local', 'function', 'const', 'repeat', 'for', 'do', 'while', 'if', ';', ',', 'or', 'and', '>', '<', '>=', '<=', '==', '~=', '|', '~', '&', '>>', '<<', '..', '-', '+', '%', '/', '//', '*', '^' 2193test.lua:1:8: syntax error, unexpected ':', expecting 'return', '(', 'Name', 'typealias', 'interface', 'goto', 'break', '::', 'local', 'function', 'const', 'repeat', 'for', 'do', 'while', 'if', ';', ',', 'or', 'and', '>', '<', '>=', '<=', '==', '~=', '|', '~', '&', '>>', '<<', '..', '-', '+', '%', '/', '//', '*', '^'
2194]=] 2194]=]
2195e = [=[ 2195e = [=[
2196test.lua:1:8: invalid statement 2196test.lua:1:7: invalid statement
2197]=] 2197]=]
2198 2198
2199r, m = parse(s) 2199r, m = parse(s)
@@ -2206,7 +2206,7 @@ f(x:any)
2206test.lua:1:8: syntax error, unexpected ')', expecting 'String', '{', '(' 2206test.lua:1:8: syntax error, unexpected ')', expecting 'String', '{', '('
2207]=] 2207]=]
2208e = [=[ 2208e = [=[
2209test.lua:1:8: expecting '(' for method call 2209test.lua:1:7: expecting '(' for method call
2210]=] 2210]=]
2211 2211
2212r, m = parse(s) 2212r, m = parse(s)
@@ -2219,7 +2219,7 @@ f(...:any)
2219test.lua:1:6: syntax error, unexpected ':', expecting ')', ',', 'or', 'and', '>', '<', '>=', '<=', '==', '~=', '|', '~', '&', '>>', '<<', '..', '-', '+', '%', '/', '//', '*', '^' 2219test.lua:1:6: syntax error, unexpected ':', expecting ')', ',', 'or', 'and', '>', '<', '>=', '<=', '==', '~=', '|', '~', '&', '>>', '<<', '..', '-', '+', '%', '/', '//', '*', '^'
2220]=] 2220]=]
2221e = [=[ 2221e = [=[
2222test.lua:1:6: missing ')' 2222test.lua:1:5: missing ')'
2223]=] 2223]=]
2224 2224
2225r, m = parse(s) 2225r, m = parse(s)
@@ -2232,7 +2232,7 @@ local x:number*
2232test.lua:1:15: syntax error, unexpected '*', expecting 'return', '(', 'Name', 'typealias', 'interface', 'goto', 'break', '::', 'local', 'function', 'const', 'repeat', 'for', 'do', 'while', 'if', ';', '=', ',', '?', '|' 2232test.lua:1:15: syntax error, unexpected '*', expecting 'return', '(', 'Name', 'typealias', 'interface', 'goto', 'break', '::', 'local', 'function', 'const', 'repeat', 'for', 'do', 'while', 'if', ';', '=', ',', '?', '|'
2233]=] 2233]=]
2234e = [=[ 2234e = [=[
2235test.lua:1:15: invalid local declaration 2235test.lua:1:6: invalid local declaration
2236]=] 2236]=]
2237 2237
2238r, m = parse(s) 2238r, m = parse(s)
@@ -2258,7 +2258,7 @@ local x:number?|string?
2258test.lua:1:16: syntax error, unexpected '|', expecting 'return', '(', 'Name', 'typealias', 'interface', 'goto', 'break', '::', 'local', 'function', 'const', 'repeat', 'for', 'do', 'while', 'if', ';', '=', ',' 2258test.lua:1:16: syntax error, unexpected '|', expecting 'return', '(', 'Name', 'typealias', 'interface', 'goto', 'break', '::', 'local', 'function', 'const', 'repeat', 'for', 'do', 'while', 'if', ';', '=', ','
2259]=] 2259]=]
2260e = [=[ 2260e = [=[
2261test.lua:1:16: invalid local declaration 2261test.lua:1:6: invalid local declaration
2262]=] 2262]=]
2263 2263
2264r, m = parse(s) 2264r, m = parse(s)
@@ -2271,7 +2271,7 @@ local x:() -> number
2271test.lua:1:15: syntax error, unexpected 'number', expecting '(' 2271test.lua:1:15: syntax error, unexpected 'number', expecting '('
2272]=] 2272]=]
2273e = [=[ 2273e = [=[
2274test.lua:1:15: expecting <type> after '->' 2274test.lua:1:14: expecting <type> after '->'
2275]=] 2275]=]
2276 2276
2277r, m = parse(s) 2277r, m = parse(s)
@@ -2284,7 +2284,7 @@ local x:() -> (number)? | (string)?
2284test.lua:1:35: syntax error, unexpected '?', expecting '->' 2284test.lua:1:35: syntax error, unexpected '?', expecting '->'
2285]=] 2285]=]
2286e = [=[ 2286e = [=[
2287test.lua:1:35: expecting <type> after '|' 2287test.lua:1:26: expecting <type> after '|'
2288]=] 2288]=]
2289 2289
2290r, m = parse(s) 2290r, m = parse(s)
@@ -2297,7 +2297,7 @@ local x:{()->():string}
2297test.lua:1:16: syntax error, unexpected ':', expecting '}', '?', '|' 2297test.lua:1:16: syntax error, unexpected ':', expecting '}', '?', '|'
2298]=] 2298]=]
2299e = [=[ 2299e = [=[
2300test.lua:1:16: missing '}' 2300test.lua:1:15: missing '}'
2301]=] 2301]=]
2302 2302
2303r, m = parse(s) 2303r, m = parse(s)
@@ -2310,7 +2310,7 @@ local x:{string:t 1}
2310test.lua:1:19: syntax error, unexpected '1', expecting '}', '?', '|' 2310test.lua:1:19: syntax error, unexpected '1', expecting '}', '?', '|'
2311]=] 2311]=]
2312e = [=[ 2312e = [=[
2313test.lua:1:19: missing '}' 2313test.lua:1:18: missing '}'
2314]=] 2314]=]
2315 2315
2316r, m = parse(s) 2316r, m = parse(s)
diff --git a/examples/typedlua/tlparser.lua b/examples/typedlua/tlparser.lua
index dba94f7..a301fa6 100644
--- a/examples/typedlua/tlparser.lua
+++ b/examples/typedlua/tlparser.lua
@@ -226,9 +226,9 @@ end
226function tlparser.parse (subject, filename, strict, integer) 226function tlparser.parse (subject, filename, strict, integer)
227 local errorinfo = {} 227 local errorinfo = {}
228 lpeg.setmaxstack(1000) 228 lpeg.setmaxstack(1000)
229 local ast, label, _ = lpeg.match(G, subject, nil, errorinfo, strict, integer) 229 local ast, label, suffix = lpeg.match(G, subject, nil, errorinfo, strict, integer)
230 if not ast then 230 if not ast then
231 local line, col = lineno(subject, errorinfo.ffp) 231 local line, col = lineno(subject, string.len(subject) - string.len(suffix))
232 local error_msg = string.format("%s:%d:%d: ", filename, line, col) 232 local error_msg = string.format("%s:%d:%d: ", filename, line, col)
233 if label ~= 0 then 233 if label ~= 0 then
234 error_msg = error_msg .. tlerror.errors[label].msg 234 error_msg = error_msg .. tlerror.errors[label].msg