2 poparser.rb - Generate a .mo
4 Copyright (C) 2003-2009 Masao Mutoh <mutoh at highway.ne.jp>
6 You may redistribute it and/or modify it under the same
11 # removed include GetText etc
12 # added stub translation method _(x)
17 class PoParser < Racc::Parser
23 module_eval <<'..end src/poparser.ry modeval..id7a99570e05', 'src/poparser.ry', 108
25 ret = orig.gsub(/\\n/, "\n")
26 ret.gsub!(/\\t/, "\t")
27 ret.gsub!(/\\r/, "\r")
28 ret.gsub!(/\\"/, "\"")
32 def parse(str, data, ignore_fuzzy = true)
37 $ignore_fuzzy = ignore_fuzzy
46 @q.push [:MSGCTXT, $&]
49 @q.push [:MSGID_PLURAL, $&]
58 @q.push [:PLURAL_NUM, $1]
61 $stderr.print _("Warning: obsolete msgid exists.\n")
62 $stderr.print " #{$&}\n"
63 @q.push [:COMMENT, $&]
66 @q.push [:COMMENT, $&]
77 @q.push [false, '$end']
83 @yydebug = true if $DEBUG
87 @data.set_comment(:last, @comments.join("\n"))
96 def on_message(msgid, msgstr)
99 @data.set_comment(msgid, @comments.join("\n"))
105 def on_comment(comment)
106 @fuzzy = true if (/fuzzy/ =~ comment)
111 ..end src/poparser.ry modeval..id7a99570e05
113 ##### racc 1.4.5 generates ###
115 racc_reduce_table = [
117 0, 10, :_reduce_none,
118 2, 10, :_reduce_none,
119 2, 10, :_reduce_none,
120 2, 10, :_reduce_none,
122 1, 13, :_reduce_none,
123 1, 13, :_reduce_none,
127 1, 17, :_reduce_none,
137 racc_action_table = [
138 3, 13, 5, 7, 9, 15, 16, 17, 20, 17,
139 13, 17, 13, 13, 11, 17, 23, 20, 13, 17 ]
141 racc_action_check = [
142 1, 16, 1, 1, 1, 12, 12, 12, 18, 18,
143 7, 14, 15, 9, 3, 19, 20, 21, 23, 25 ]
145 racc_action_pointer = [
146 nil, 0, nil, 14, nil, nil, nil, 3, nil, 6,
147 nil, nil, 0, nil, 4, 5, -6, nil, 2, 8,
148 8, 11, nil, 11, nil, 12 ]
150 racc_action_default = [
151 -1, -16, -2, -16, -3, -13, -4, -16, -6, -16,
152 -7, 26, -16, -15, -5, -16, -16, -14, -16, -8,
153 -16, -9, -11, -16, -10, -12 ]
156 12, 22, 14, 4, 24, 6, 2, 8, 18, 19,
157 10, 21, 1, nil, nil, nil, 25 ]
160 5, 9, 5, 3, 9, 4, 2, 6, 5, 5,
161 7, 8, 1, nil, nil, nil, 5 ]
163 racc_goto_pointer = [
164 nil, 12, 5, 2, 4, -7, 6, 9, -7, -17 ]
166 racc_goto_default = [
167 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil ]
180 racc_use_result_var = true
198 racc_use_result_var ]
200 Racc_token_to_s_table = [
219 'msgstr_plural_line']
221 Racc_debug_parser = true
223 ##### racc system variables end #####
235 module_eval <<'.,.,', 'src/poparser.ry', 25
236 def _reduce_5( val, _values, result )
237 @msgctxt = unescape(val[1]) + "\004"
246 module_eval <<'.,.,', 'src/poparser.ry', 48
247 def _reduce_8( val, _values, result )
248 if @fuzzy and $ignore_fuzzy
250 $stderr.print _("Warning: fuzzy message was ignored.\n")
251 $stderr.print " msgid '#{val[1]}'\n"
253 on_message('', unescape(val[3]))
257 on_message(@msgctxt + unescape(val[1]), unescape(val[3]))
264 module_eval <<'.,.,', 'src/poparser.ry', 65
265 def _reduce_9( val, _values, result )
266 if @fuzzy and $ignore_fuzzy
268 $stderr.print _("Warning: fuzzy message was ignored.\n")
269 $stderr.print "msgid = '#{val[1]}\n"
271 on_message('', unescape(val[3]))
275 on_message(@msgctxt + unescape(val[1]) + "\000" + unescape(val[3]), unescape(val[4]))
282 module_eval <<'.,.,', 'src/poparser.ry', 76
283 def _reduce_10( val, _values, result )
285 result = val[0] + "\000" + val[1]
295 module_eval <<'.,.,', 'src/poparser.ry', 84
296 def _reduce_12( val, _values, result )
302 module_eval <<'.,.,', 'src/poparser.ry', 91
303 def _reduce_13( val, _values, result )
309 module_eval <<'.,.,', 'src/poparser.ry', 99
310 def _reduce_14( val, _values, result )
311 result = val.delete_if{|item| item == ""}.join
316 module_eval <<'.,.,', 'src/poparser.ry', 103
317 def _reduce_15( val, _values, result )
323 def _reduce_none( val, _values, result )