From 819b65090ba7eeb93091702ee5662a035fe8dc61 Mon Sep 17 00:00:00 2001 From: Daniel Kolesa Date: Mon, 2 Jun 2014 14:34:24 +0100 Subject: [PATCH] elua: support for -a (--extract-all) option in xgettext --- src/bin/elua/modules/xgettext/parser.lua | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/src/bin/elua/modules/xgettext/parser.lua b/src/bin/elua/modules/xgettext/parser.lua index 145ba9fa19..000d4448c9 100644 --- a/src/bin/elua/modules/xgettext/parser.lua +++ b/src/bin/elua/modules/xgettext/parser.lua @@ -132,10 +132,30 @@ local parse = function(ls, keywords) end end +local parse_all = function(ls) + yield() + local tok = ls.token + while tok.name do + if tok.name == "" then + saved_comment = tok.value + ls:get() + elseif tok.name == "" then + local line = ls.line_number + local val = tok.value + local sc = saved_comment + saved_comment = nil + ls:get() + yield { val, comment = sc, line = line } + else + ls:get() + end + end +end + return { init = function (chunkname, input, keywords, flags, opts) local ls = lexer.init(chunkname, input, opts) ls:get() - local coro = coroutine.wrap(parse, ls, keywords) + local coro = coroutine.wrap(opts["a"] and parse_all or parse, ls, keywords) coro(ls, keywords) return coro end } \ No newline at end of file