[SCM] Lisaac compiler branch, mildred-string-cst, updated. lisaac-0.12-614-g5e0ea86

Mildred Ki'Lya silkensedai at online.fr
Fri Nov 13 11:58:20 UTC 2009


The following commit has been merged in the mildred-string-cst branch:
commit 229c7233a703d91d9d9b6d2f466dce1accb51fa1
Author: Mildred Ki'Lya <silkensedai at online.fr>
Date:   Thu Aug 27 09:32:16 2009 +0200

    convert STRING and STRING_CONSTANT to and from NATIVE_ARRAY(...)

diff --git a/lib/standard/string/abstract_string.li b/lib/standard/string/abstract_string.li
index 6432c79..cbc3c0e 100644
--- a/lib/standard/string/abstract_string.li
+++ b/lib/standard/string/abstract_string.li
@@ -22,6 +22,11 @@ Section Header
   
   + name    := ABSTRACT_STRING;
 
+
+  - export := NATIVE_ARRAY(CHARACTER),
+              NATIVE_ARRAY(INTEGER_8),
+	      NATIVE_ARRAY(UINTEGER_8);
+
   - export  := STRING;
     
   - copyright   := "2003-2005 Jérome Boutet, 2003-2007 Benoit Sonntag";
@@ -1323,5 +1328,19 @@ Section Public
     NULL
   );
 
+  //
+  // Export NATIVE_ARRAY
+  //
+
+  - to_native_array_of_character :NATIVE_ARRAY(CHARACTER) <-
+    to_external;
+
+  - to_native_array_of_integer_8 :NATIVE_ARRAY(INTEGER_8) <-
+    CONVERT(NATIVE_ARRAY(CHARACTER),NATIVE_ARRAY(INTEGER_8)).on (to_external);
+
+  - to_native_array_of_uinteger_8 :NATIVE_ARRAY(UINTEGER_8) <-
+    CONVERT(NATIVE_ARRAY(CHARACTER),NATIVE_ARRAY(INTEGER_8)).on (to_external);
+
+
 
 
diff --git a/lib/standard/string/string.li b/lib/standard/string/string.li
index afa02e5..2e0379a 100644
--- a/lib/standard/string/string.li
+++ b/lib/standard/string/string.li
@@ -23,6 +23,14 @@ Section Header
   + name    := STRING;
 
 
+  - import := NATIVE_ARRAY(CHARACTER),
+              NATIVE_ARRAY(INTEGER_8),
+	      NATIVE_ARRAY(UINTEGER_8);
+  - export := NATIVE_ARRAY(CHARACTER),
+              NATIVE_ARRAY(INTEGER_8),
+	      NATIVE_ARRAY(UINTEGER_8);
+
+
   - copyright   := "2003-2005 Jérome Boutet, 2003-2007 Benoit Sonntag";
 
   - comment := "String library.";
@@ -788,4 +796,17 @@ Section Public
     {storage.item count = '\0'}.until_do {
       count := count + 1;
     };
-  );
\ No newline at end of file
+  );
+
+  //
+  // Import/Export NATIVE_ARRAY
+  //
+
+  - from_native_array_of_character p:NATIVE_ARRAY(CHARACTER) :STRING_CONSTANT <-
+    from_external_copy p;
+
+  - from_native_array_of_integer_8 p:NATIVE_ARRAY(INTEGER_8) :STRING_CONSTANT <-
+    from_external_copy(CONVERT(NATIVE_ARRAY(INTEGER_8),NATIVE_ARRAY(CHARACTER)).on p);
+
+  - from_native_array_of_uinteger_8 p:NATIVE_ARRAY(UINTEGER_8) :STRING_CONSTANT <-
+    from_external_copy(CONVERT(NATIVE_ARRAY(UINTEGER_8),NATIVE_ARRAY(CHARACTER)).on p);
diff --git a/lib/standard/string/string_constant.li b/lib/standard/string/string_constant.li
index eaac501..c261c76 100644
--- a/lib/standard/string/string_constant.li
+++ b/lib/standard/string/string_constant.li
@@ -22,6 +22,12 @@ Section Header
   
   + name    := Strict STRING_CONSTANT; 
 
+  - import := NATIVE_ARRAY(CHARACTER),
+              NATIVE_ARRAY(INTEGER_8),
+	      NATIVE_ARRAY(UINTEGER_8);
+  - export := NATIVE_ARRAY(CHARACTER),
+              NATIVE_ARRAY(INTEGER_8),
+	      NATIVE_ARRAY(UINTEGER_8);
 
   - copyright   := "2003-2005 Jérome Boutet, 2003-2007 Benoit Sonntag";
    
@@ -76,7 +82,13 @@ Section Public
     //bucket.add result;
     result
   );
-  
+
+  - from_external p:NATIVE_ARRAY(CHARACTER) :STRING_CONSTANT <-
+  ( + i:INTEGER;
+    {n.item i = '\0'}.until_do { i := i + 1; };
+    new_intern n count i
+  );
+
   - to_external:NATIVE_ARRAY(CHARACTER) <-
   // Gives C access to the internal `storage' (may be dangerous).
   // To be compatible with C, a null character is added at the end
@@ -124,3 +136,15 @@ Section Public
   
   - Self:SELF '+?' test:{BOOLEAN} <- test +? Self;
     
+  //
+  // Import NATIVE_ARRAY
+  //
+
+  - from_native_array_of_character p:NATIVE_ARRAY(CHARACTER) :STRING_CONSTANT <-
+    from_external p;
+
+  - from_native_array_of_integer_8 p:NATIVE_ARRAY(INTEGER_8) :STRING_CONSTANT <-
+    from_external(CONVERT(NATIVE_ARRAY(INTEGER_8),NATIVE_ARRAY(CHARACTER)).on p);
+
+  - from_native_array_of_uinteger_8 p:NATIVE_ARRAY(UINTEGER_8) :STRING_CONSTANT <-
+    from_external(CONVERT(NATIVE_ARRAY(UINTEGER_8),NATIVE_ARRAY(CHARACTER)).on p);

-- 
Lisaac compiler



More information about the Lisaac-commits mailing list