From 955adc45234fb7de86d32886f7acfb7e9c29ceea Mon Sep 17 00:00:00 2001 From: Fabien Fleutot Date: Sat, 27 Dec 2008 08:44:44 +0100 Subject: [PATCH] CRLF issue with gg. --- src/compiler/gg.lua | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/compiler/gg.lua b/src/compiler/gg.lua index 33c258b..486752d 100644 --- a/src/compiler/gg.lua +++ b/src/compiler/gg.lua @@ -75,7 +75,7 @@ end ------------------------------------------------------------------------------- -- Return true iff [x] is a parser. --- If it's a gg-generated parser, reutrn the name of its kind. +-- If it's a gg-generated parser, return the name of its kind. ------------------------------------------------------------------------------- function is_parser (x) return type(x)=="function" or getmetatable(x)==parser_metatable and x.kind @@ -259,8 +259,12 @@ function multisequence (p) function p:add (s) -- compile if necessary: if not is_parser(s) then sequence(s) end - if type(s[1]) ~= "string" then - error "Invalid sequence for multiseq" + if is_parser(s) ~= 'sequence' or type(s[1]) ~= "string" then + if self.default then + error "Invalid sequence for multiseq, there is already a default" + else + self.default = s + end elseif self.sequences[s[1]] then eprintf (" *** Warning: keyword %q overloaded in multisequence ***", s[1]) end -- 2.44.0