move unescape_nit to stdlib
authorJean Privat <jean@pryen.org>
Thu, 26 Sep 2013 02:32:57 +0000 (22:32 -0400)
committerJean Privat <jean@pryen.org>
Wed, 16 Oct 2013 04:07:07 +0000 (00:07 -0400)
lib/standard/string.nit
src/literal.nit

index e600de1..368e113 100644 (file)
@@ -297,6 +297,43 @@ abstract class AbstractString
                end
                return b.to_s
        end
+
+       # Return a string where Nit escape sequences are transformed.
+       #
+       # Example:
+       #     var s = "\\n"
+       #     assert s.length        ==  2
+       #     var u = s.unescape_nit
+       #     assert u.length        ==  1
+       #     assert u[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
 
 # Immutable strings of characters.
index f98c209..bbc4e67 100644 (file)
@@ -107,42 +107,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"
-       #     assert s.length        ==  2
-       #     var u = s.unescape_nit
-       #     assert u.length        ==  1
-       #     assert u[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