nitc :: ANode :: accept_string_finder
private fun accept_string_finder(v: StringFinder) do end
src/frontend/i18n_phase.nit:127,2--57
redef fun accept_string_finder(v) do
var fmt = ""
var exprs = new Array[AExpr]
for i in n_exprs do
if i isa AStartStringExpr or i isa AEndStringExpr or i isa AMidStringExpr then
assert i isa AStringFormExpr
var str = i.value
fmt += str.replace("%", "%%")
else
fmt += "%"
exprs.push i
fmt += (exprs.length-1).to_s
end
end
fmt = fmt.escape_to_gettext
v.add_string(fmt, location)
var code = "\"{fmt}\".get_translation(\"{v.domain}\", \"{v.languages_location}\").format()"
var parse = v.toolcontext.parse_expr(code)
if not parse isa ACallExpr then
v.toolcontext.error(location, "Fatal error in i18n annotation, the parsed superstring could not be generated properly")
return
end
var parse_exprs = parse.n_args.n_exprs
parse_exprs.add_all exprs
replace_with parse
end
src/frontend/i18n_phase.nit:143,2--168,4
redef fun accept_string_finder(v) do
var str = value.escape_to_gettext
var code = "\"{str}\".get_translation(\"{v.domain}\", \"{v.languages_location}\")"
var parse = v.toolcontext.parse_expr(code)
replace_with(parse)
v.add_string(str, location)
end
src/frontend/i18n_phase.nit:132,2--138,4