From 7cf6a8abb0da9931406b5c3b21548c0d966e4580 Mon Sep 17 00:00:00 2001 From: Daniel Kolesa Date: Fri, 30 May 2014 15:08:50 +0100 Subject: [PATCH] elua: line information in the generated output --- src/bin/elua/modules/xgettext/generator.lua | 3 +++ src/bin/elua/modules/xgettext/lexer.lua | 2 +- src/bin/elua/modules/xgettext/parser.lua | 5 +++-- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/bin/elua/modules/xgettext/generator.lua b/src/bin/elua/modules/xgettext/generator.lua index 6cdb440e1d..337e944ae0 100644 --- a/src/bin/elua/modules/xgettext/generator.lua +++ b/src/bin/elua/modules/xgettext/generator.lua @@ -1,5 +1,6 @@ -- Elua xgettext: generator +local lexer = require("xgettext.lexer") local parser = require("xgettext.parser") local gen_comment = function(cmt) @@ -45,6 +46,8 @@ return { init = function(chunkname, input, keywords, flags, opts) if msg.context then ret[#ret + 1] = "msgctxt " .. gen_message(msg.context) end + ret[#ret + 1] = "#: " .. lexer.source_to_msg(chunkname) + .. ":" .. msg.line ret[#ret + 1] = "msgid " .. gen_message(msg[1]) local spf, ssf = opts["m"], opts["M"] if msg[2] then diff --git a/src/bin/elua/modules/xgettext/lexer.lua b/src/bin/elua/modules/xgettext/lexer.lua index 6926db54b6..2d66958e57 100644 --- a/src/bin/elua/modules/xgettext/lexer.lua +++ b/src/bin/elua/modules/xgettext/lexer.lua @@ -303,4 +303,4 @@ return { init = function(chunkname, input, opts) ls.coro = coro coro(ls) return coro -end, syntax_error = syntax_error } \ No newline at end of file +end, syntax_error = syntax_error, source_to_msg = source_to_msg } \ No newline at end of file diff --git a/src/bin/elua/modules/xgettext/parser.lua b/src/bin/elua/modules/xgettext/parser.lua index 63b23652b9..145ba9fa19 100644 --- a/src/bin/elua/modules/xgettext/parser.lua +++ b/src/bin/elua/modules/xgettext/parser.lua @@ -102,7 +102,8 @@ local parse = function(ls, keywords) saved_comment = tok.value ls:get() elseif tok.name == "" and keywords[tok.value] then - local kw = keywords[tok.value] + local line = ls.line_number + local kw = keywords[tok.value] ls:get() local args = parse_call(ls) local n1, n2, cx, an = kw[1], kw[2], kw.context, kw.argnum @@ -122,7 +123,7 @@ local parse = function(ls, keywords) saved_comment = nil yield { n1arg[1], n2 and n2arg[1], context = cx and cxarg[1], - xcomment = kw.xcomment, comment = sc + xcomment = kw.xcomment, comment = sc, line = line } else ls:get()