changeset 3:485c98ecbd91

text.parse: fixed a small bug with char[]'s. committer: Diggory Hardy <diggory.hardy@gmail.com>
author Diggory Hardy <diggory.hardy@gmail.com>
date Sat, 03 Nov 2007 16:06:06 +0000
parents 78eb491bd642
children 9a990644948c
files mde/mde.d mde/mergetag/read.d mde/mergetag/write.d mde/test.d mde/text/parse.d test.mtt
diffstat 6 files changed, 16 insertions(+), 14 deletions(-) [+]
line wrap: on
line diff
--- a/mde/mde.d	Sat Nov 03 15:15:43 2007 +0000
+++ b/mde/mde.d	Sat Nov 03 16:06:06 2007 +0000
@@ -22,14 +22,14 @@
     Reader MTread;
     try {
         MTread = new Reader ("test.mtt", null, true);
-        /+static DataSection dataPrinter (ID) {	return new test.DataPrinter;	}
-        MTread.dataSecCreator = &dataPrinter;+/
+        static DataSection dataPrinter (ID id) {	return new test.DataPrinter (id);	}
+        MTread.dataSecCreator = &dataPrinter;
         MTread.read();
     } catch (Exception e) {
         Stdout (e.msg).newline;
     }
-    Stdout ("Data read from file:").newline;
-    test.printDataSet (MTread.dataset);
+    //Stdout ("Data read from file:").newline;
+    //test.printDataSet (MTread.dataset);
     return 0;
     
     // cleanup handled by init's DTOR
--- a/mde/mergetag/read.d	Sat Nov 03 15:15:43 2007 +0000
+++ b/mde/mergetag/read.d	Sat Nov 03 16:06:06 2007 +0000
@@ -342,7 +342,7 @@
                 data = fbuf[pos_s..pos];
                 
                 if (!comment && addTag != null) {
-                    TypeInfo* ti_p = type in typeTable;
+                    TypeInfo* ti_p = Util.trim(type) in typeTable;
                     if (ti_p) addTag (*ti_p, tagID, data);
                     else logger.warn ("Type not supported: " ~ type);
                 } else comment = false;			// cancel comment status now
--- a/mde/mergetag/write.d	Sat Nov 03 15:15:43 2007 +0000
+++ b/mde/mergetag/write.d	Sat Nov 03 16:06:06 2007 +0000
@@ -196,6 +196,7 @@
     
     private void writeSection (DataSection sec) {
         //FIXME
+        // convert TypeInfo ti using ti.toUtf8 ?
         
         buffer (Eol);			// blank line at end of each section
     }
--- a/mde/test.d	Sat Nov 03 15:15:43 2007 +0000
+++ b/mde/test.d	Sat Nov 03 16:06:06 2007 +0000
@@ -2,6 +2,7 @@
 module mde.test;
 
 import mde.mergetag.dataset;
+import mde.text.parse;
 
 import tango.io.Stdout;
 
@@ -35,8 +36,8 @@
 
 class DataPrinter : DataSection
 {
-    this () {
-        Stdout ("New section (can't get ID from here).").newline;
+    this (ID id) {
+        Stdout ("New section (")(id)(").").newline;
     }
     void addTag (TypeInfo ti, ID id, char[] dt) {
         Stdout ("\tData item (")(id)("):\t")(ti)("\t")(dt).newline;
--- a/mde/text/parse.d	Sat Nov 03 15:15:43 2007 +0000
+++ b/mde/text/parse.d	Sat Nov 03 16:06:06 2007 +0000
@@ -46,7 +46,7 @@
         src = src[1..$-1];
         T ret;
         ret.length = src.length;	// maximum length; retract to actual length later
-        uint i;
+        uint i = 0;
         for (uint t = 0; t < src.length;) {
             // process a block of non-escaped characters
             uint s = t;
@@ -56,8 +56,8 @@
             i = j;
             
             // process a block of escaped characters
-            while (t < src.length) {
-                t++;	// src[t] == '\\'
+            while (t < src.length && src[t] == '\\') {
+                t++;
                 if (t == src.length) throwException (`Warning: \" in string! There's currently no support for this during tokenising. Thus your input's probably been garbled!`);	// next char is "
                 ret[i++] = replaceEscapedChar (src[t++]);	// throws if it's invalid
             }
@@ -213,7 +213,7 @@
     char* r = c in escChars;
     if (r != null) return *r;
     
-    throwException ("Invalid escape sequence.");	// we didn't return, so something failed
+    throwException ("Invalid escape sequence: \\"~c);	// we didn't return, so something failed
 }
 
 // Reads one hex char: [0-9A-Fa-f]. Otherwise throws an exception. Doesn't check src.length.
--- a/test.mtt	Sat Nov 03 15:15:43 2007 +0000
+++ b/test.mtt	Sat Nov 03 16:06:06 2007 +0000
@@ -13,8 +13,8 @@
 <binary|3=00102030405060708090A0B0C0D0E0F0>
 {2}!{Chars and strings}
 <char|1= ' '>
-<char| 2 ='\a'>
-<string|0= "A	sequence of\tcharacters:\v1²€ç⋅−+↙↔↘,↕">
-<string|1= [ 's','t' ,'r'	,	'i' , 'n' , 'g', ' ' , '2' ]>
+<char | 2 ='\a'>
+<string|1= "A	sequence of\tcharacters:\v1²€ç⋅−+↙↔↘,↕">
+<string|2= [ 's','t' ,'r'	,	'i' , 'n' , 'g', ' ' , '2' ]>
 {11}
 <int|5=6>