frontend: intro the serialization phase
[nit.git] / src / literal.nit
index e044bee..0e08350 100644 (file)
@@ -20,11 +20,10 @@ module literal
 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
@@ -55,10 +54,8 @@ private class LiteralVisitor
 
        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
 
@@ -109,42 +106,3 @@ redef class AStringFormExpr
                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