nitc: handle triple-quoted strings
authorJean Privat <jean@pryen.org>
Thu, 25 Jul 2013 14:54:48 +0000 (10:54 -0400)
committerJean Privat <jean@pryen.org>
Thu, 25 Jul 2013 14:54:48 +0000 (10:54 -0400)
Signed-off-by: Jean Privat <jean@pryen.org>

src/syntax/icode_generation.nit

index 54874d1..a4e0c42 100644 (file)
@@ -937,9 +937,14 @@ redef class AStringFormExpr
        # Compute _cstring and _cstring_length using string_text
        protected fun compute_string_infos
        do
-               var len = 0
-               var str = string_text
+               var str = n_string.text
+               if str.length >= 6 and str[0] == str[1] then
+                       str = str.substring(3, str.length - 6)
+               else
+                       str = str.substring(1, str.length - 2)
+               end
                var res = new Buffer
+               var len = 0
                var i = 0
                while i < str.length do
                        var c = str[i]
@@ -950,6 +955,11 @@ redef class AStringFormExpr
                                        res.add(c)
                                end
                                c = c2
+                       else if c == '"' then
+                               res.add('\\')
+                       else if c == '\n' then
+                               res.add('\\')
+                               c = 'n'
                        end
                        len = len + 1
                        res.add(c)