From ff2dbe372a8759acb1c52bb6296ae7b0866180d5 Mon Sep 17 00:00:00 2001 From: sqmedeiros Date: Fri, 23 Dec 2022 15:48:12 -0300 Subject: Removing label ExpItem. Label MisClose8 signals a missing closing ']' or an empty char class --- relabel.lua | 6 ++---- testrelabelparser.lua | 38 ++++++++++++++++++-------------------- 2 files changed, 20 insertions(+), 24 deletions(-) diff --git a/relabel.lua b/relabel.lua index f4f4546..5190a98 100644 --- a/relabel.lua +++ b/relabel.lua @@ -56,8 +56,6 @@ local errinfo = { ExpNameOrLab = "expected a name or label after '%' (no space)", - ExpItem = "expected at least one item after '[' or '^'", - MisClose1 = "missing closing ')'", MisClose2 = "missing closing ':}'", MisClose3 = "missing closing '~}'", @@ -67,7 +65,7 @@ local errinfo = { MisClose6 = "missing closing '>'", MisClose7 = "missing closing '}'", -- for the labels - MisClose8 = "missing closing ']'", + MisClose8 = "missing closing ']' or empty char class", MisTerm1 = "missing terminating single quote", MisTerm2 = "missing terminating double quote", @@ -187,7 +185,7 @@ local item = (defined + Range + m.C(any)) / m.P local Class = "[" * (m.C(m.P"^"^-1)) -- optional complement symbol - * m.Cf(expect(item, "ExpItem") * (item - "]")^0, mt.__add) + * m.Cf(item * (item - "]")^0, mt.__add) / function (c, p) return c == "^" and any - p or p end * expect("]", "MisClose8") diff --git a/testrelabelparser.lua b/testrelabelparser.lua index 0399ff6..27c3e52 100644 --- a/testrelabelparser.lua +++ b/testrelabelparser.lua @@ -8,14 +8,14 @@ function testerror(repatt, msg) -- expecting a syntax error err = err:match("^[^\n]*\n(.-)$") -- remove first line (filename) err = err:gsub("[ \t]*\n", "\n") -- remove trailing spaces - -- if err ~= msg then - -- print(#err, #msg) - -- print('--') - -- print(err) - -- print('--') - -- print(msg) - -- print('--') - -- end + --if err ~= msg then + --print(#err, #msg) + --print('--') + --print(err) + --print('--') + --print(msg) + --print('--') + --end assert(err == msg) else -- expecting a non-syntax error @@ -366,16 +366,14 @@ L1:C2: expected a name or label after '%' (no space) ^ ]]) --- testing ExpItem +-- testing empty char set (MisClose8, previously MisItem) testerror([[ -"p" [ -abc -] "q" +"p" [] "q" ]], [[ -L1:C6: expected at least one item after '[' or '^' -"p" [ - ^ +L2:C1: missing closing ']' or empty char class + +^ ]]) -- testing MisClose1 @@ -451,31 +449,31 @@ L1:C9: missing closing '}' -- testing MisClose8 testerror([[[]], [[ -L1:C2: missing closing ']' +L1:C2: missing closing ']' or empty char class [ ^ ]]) testerror([[[^]], [[ -L1:C3: missing closing ']' +L1:C3: missing closing ']' or empty char class [^ ^ ]]) testerror([[[] ]], [[ -L1:C4: missing closing ']' +L1:C4: missing closing ']' or empty char class [] ^ ]]) testerror([[[^] ]], [[ -L1:C6: missing closing ']' +L1:C6: missing closing ']' or empty char class [^] ^ ]]) testerror([[[_-___-_|]], [[ -L1:C10: missing closing ']' +L1:C10: missing closing ']' or empty char class [_-___-_| ^ ]]) -- cgit v1.2.3-55-g6feb