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 )