From 28e8e1037ab33d96c123667f4c3fc94b5aca83bc Mon Sep 17 00:00:00 2001 From: Fabien Fleutot Date: Sat, 28 Feb 2009 13:31:05 +0100 Subject: [PATCH] fix in default args for gg.multisequence --- src/compiler/gg.lua | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/compiler/gg.lua b/src/compiler/gg.lua index db0d91c..baf098a 100644 --- a/src/compiler/gg.lua +++ b/src/compiler/gg.lua @@ -266,15 +266,16 @@ function multisequence (p) ------------------------------------------------------------------- function p:add (s) -- compile if necessary: - local keyword = s[1] - if not is_parser(s) then sequence(s) end - if is_parser(s) ~= 'sequence' or type(keyword) ~= "string" then + local keyword = type(s)=='table' and s[1] + if type(s)=='table' and not is_parser(s) then sequence(s) end + if is_parser(s)~='sequence' or type(keyword)~='string' then if self.default then -- two defaults error ("In a multisequence parser, all but one sequences ".. "must start with a keyword") else self.default = s end -- first default elseif self.sequences[keyword] then -- duplicate keyword - eprintf (" *** Warning: keyword %q overloaded in multisequence ***", keyword) + eprintf (" *** Warning: keyword %q overloaded in multisequence ***", + keyword) self.sequences[keyword] = s else -- newly caught keyword self.sequences[keyword] = s -- 2.44.0