import parser
import toolcontext
import phase
-
-import modelbuilder #FIXME useless
+import serialization_phase
redef class ToolContext
- var literal_phase: Phase = new LiteralPhase(self, null)
+ var literal_phase: Phase = new LiteralPhase(self, [serialization_phase])
end
private class LiteralPhase
redef fun visit(n)
do
- if n != null then
- n.accept_literal(self)
- n.visit_all(self)
- end
+ n.accept_literal(self)
+ n.visit_all(self)
end
end
self.value = txt.substring(skip, txt.length-(2*skip)).unescape_nit
end
end
-
-redef class String
- # Return a string where Nit escape sequences are transformed.
- #
- # Example:
- # var s = "\\n"
- # print s.length # -> 2
- # var u = s.unescape_nit
- # print s.length # -> 1
- # print s[0].ascii # -> 10 (the ASCII value of the "new line" character)
- fun unescape_nit: String
- do
- var res = new Buffer.with_capacity(self.length)
- var was_slash = false
- for c in self do
- if not was_slash then
- if c == '\\' then
- was_slash = true
- else
- res.add(c)
- end
- continue
- end
- was_slash = false
- if c == 'n' then
- res.add('\n')
- else if c == 'r' then
- res.add('\r')
- else if c == 't' then
- res.add('\t')
- else if c == '0' then
- res.add('\0')
- else
- res.add(c)
- end
- end
- return res.to_s
- end
-end