diff --git a/DtsodParser/DtsodV24_deserialize.c b/DtsodParser/DtsodV24_deserialize.c index 56c2e9c..7e3a354 100644 --- a/DtsodParser/DtsodV24_deserialize.c +++ b/DtsodParser/DtsodV24_deserialize.c @@ -10,8 +10,9 @@ Maybe ERROR_WRONGCHAR(char c, char* text){ char errBuf[]="unexpected at:\n \"" "00000000000000000000000000000000\""; errBuf[12]=c; - for(uint8 i=22; i<32; i++) - errBuf[i]=*(text - 16 + i); + for(uint8 i=0; i<32; i++) + // writes 16 chars before and 15 after the wrongchar + errBuf[i+22]=*(text - 16 + i); safethrow(cptr_copy(errBuf)); } #define safethrow_wrongchar(C) return ERROR_WRONGCHAR(C, text) @@ -53,7 +54,7 @@ Maybe __ReadName(DeserializeSharedData* shared){ case '{': safethrow_wrongchar(c); break; - case '#': + case '#': ; try(SkipComment(),_); if(nameStr.length!=0) safethrow_wrongchar(c); @@ -198,6 +199,7 @@ Maybe __ReadValue(DeserializeSharedData* shared){ break; case '=': case ':': case '}': case '$': + case '\'': safethrow_wrongchar(c); break; case '#':; @@ -211,13 +213,7 @@ Maybe __ReadValue(DeserializeSharedData* shared){ if(valueStr.length!=0) safethrow_wrongchar(c); try(ReadString(),maybeString) value=maybeString.value; - break; - case '\'': - if(valueStr.length!=0) safethrow_wrongchar(c); - char valueChar=*++text; - if (*++text != '\'') safethrow("after <'> should be char"); - value=Uni(Char,valueChar); - break; + break; case '[': if(valueStr.length!=0) safethrow_wrongchar(c); try(ReadList(),maybeList) diff --git a/DtsodParser/DtsodV24_serialize.c b/DtsodParser/DtsodV24_serialize.c index 3f4937c..5b7c455 100644 --- a/DtsodParser/DtsodV24_serialize.c +++ b/DtsodParser/DtsodV24_serialize.c @@ -47,11 +47,6 @@ void __AppendValue(SerializeSharedData* shared, Unitype u){ } addc('"'); break; - case Char: - addc('\''); - addc(u.Char); - addc('\''); - break; case Bool: StringBuilder_append_cptr(b, u.Bool ? "true" : "false"); break; diff --git a/base/types.c b/base/types.c index 28f33b4..f0197c7 100644 --- a/base/types.c +++ b/base/types.c @@ -121,7 +121,6 @@ void sprintuni(char* buf,Unitype v){ switch (v.type) { case Null: sprintf_s(buf, SPRINT_BUFSIZE, "{Null}");break; case Float64: sprintf_s(buf, SPRINT_BUFSIZE, "{%s : %lf}", my_type_name(v.type),v.Float64);break; - case Char: sprintf_s(buf, SPRINT_BUFSIZE, "{%s : '%c'}", my_type_name(v.type),v.Char);break; case Bool: case UInt64: sprintf_s(buf, SPRINT_BUFSIZE, "{%s : %lu}", my_type_name(v.type),v.UInt64);break; case Int64: sprintf_s(buf, SPRINT_BUFSIZE, "{%s : %ld}", my_type_name(v.type),v.Int64);break; @@ -131,7 +130,6 @@ void sprintuni(char* buf,Unitype v){ switch (v.type) { case Null: sprintf(buf, "{Null}");break; case Float64: sprintf(buf, "{%s : %lf}", my_type_name(v.type),v.Float64);break; - case Char: sprintf(buf, "{%s : '%c'}", my_type_name(v.type),v.Char);break; case Bool: case UInt64: sprintf(buf, "{%s : %lu}", my_type_name(v.type),v.UInt64);break; case Int64: sprintf(buf, "{%s : %ld}", my_type_name(v.type),v.Int64);break; diff --git a/base/types.h b/base/types.h index 08d2461..bbbf2f6 100644 --- a/base/types.h +++ b/base/types.h @@ -34,7 +34,6 @@ typedef struct Unitype{ int64 Int64; uint64 UInt64; double Float64; - char Char; bool Bool; void* VoidPtr; }; diff --git a/tests/test_dtsod.c b/tests/test_dtsod.c index 239768a..5b82206 100644 --- a/tests/test_dtsod.c +++ b/tests/test_dtsod.c @@ -4,12 +4,11 @@ const char text[]= "message: {\n" " bool: false;" -" char: 'v';" " int: -2515;" " uint:#comment!\n 0u;" " double: 965.557f;#another comment!\n" " text: \"_$\\\"\\\\'''a ыыы000;2;=:%d;```\";\n" -"}; "; +"};"; void print_dtsod(Hashtable* dtsod){ printf("\e[92m");