From 591bd0e43cf4aa22cead0a018dc88123094c2dc3 Mon Sep 17 00:00:00 2001 From: Fabien Fleutot Date: Tue, 3 Feb 2009 20:27:20 +0100 Subject: [PATCH] minor refactoring in gg --- src/compiler/gg.lua | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/compiler/gg.lua b/src/compiler/gg.lua index d237d28..afab996 100644 --- a/src/compiler/gg.lua +++ b/src/compiler/gg.lua @@ -258,17 +258,18 @@ 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(s[1]) ~= "string" then + 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[s[1]] then -- duplicate keyword - eprintf (" *** Warning: keyword %q overloaded in multisequence ***", s[1]) - self.sequences[s[1]] = s + elseif self.sequences[keyword] then -- duplicate keyword + eprintf (" *** Warning: keyword %q overloaded in multisequence ***", keyword) + self.sequences[keyword] = s else -- newly caught keyword - self.sequences[s[1]] = s + self.sequences[keyword] = s end end -- -- 2.44.0