i still have no idea where the bug is
This commit is contained in:
parent
2aee6af0ca
commit
501ab9cd56
@ -248,7 +248,7 @@ Maybe __ReadValue(DeserializeSharedData* shared, bool* readingList){
|
|||||||
case '=': case ':':
|
case '=': case ':':
|
||||||
case '}': case '$':
|
case '}': case '$':
|
||||||
case '\'':
|
case '\'':
|
||||||
safethrow_wrongchar(c,;);
|
safethrow_wrongchar(c,Unitype_free(value));
|
||||||
break;
|
break;
|
||||||
case '#':;
|
case '#':;
|
||||||
char _c=c;
|
char _c=c;
|
||||||
@ -256,27 +256,28 @@ Maybe __ReadValue(DeserializeSharedData* shared, bool* readingList){
|
|||||||
try(SkipComment(),_,;);
|
try(SkipComment(),_,;);
|
||||||
if(valueStr.length!=0){
|
if(valueStr.length!=0){
|
||||||
text=_text;
|
text=_text;
|
||||||
safethrow_wrongchar(_c,;);
|
safethrow_wrongchar(_c,Unitype_free(value));
|
||||||
}
|
}
|
||||||
valueStr.ptr=text+1; // skips '\n'
|
valueStr.ptr=text+1; // skips '\n'
|
||||||
break;
|
break;
|
||||||
case '"':
|
case '"':
|
||||||
if(valueStr.length!=0) safethrow_wrongchar(c,;);
|
if(valueStr.length!=0) safethrow_wrongchar(c,Unitype_free(value));
|
||||||
try(ReadString(),maybeString,;)
|
try(ReadString(),maybeString,;)
|
||||||
value=maybeString.value;
|
value=maybeString.value;
|
||||||
break;
|
break;
|
||||||
case '{':
|
case '{':
|
||||||
if(valueStr.length!=0) safethrow_wrongchar(c,;);
|
if(valueStr.length!=0) safethrow_wrongchar(c,Unitype_free(value));
|
||||||
++text; // skips '{'
|
++text; // skips '{'
|
||||||
try(__deserialize(&text,true), val,;)
|
try(__deserialize(&text,true), val,Unitype_free(value))
|
||||||
value=val.value;
|
value=val.value;
|
||||||
break;
|
break;
|
||||||
case '[':
|
case '[':
|
||||||
if(valueStr.length!=0) safethrow_wrongchar(c,;);
|
if(valueStr.length!=0) safethrow_wrongchar(c,Unitype_free(value));
|
||||||
try(ReadList(),maybeList,;)
|
try(ReadList(),maybeList,Unitype_free(value))
|
||||||
value=maybeList.value;
|
value=maybeList.value;
|
||||||
break;
|
break;
|
||||||
case ']':
|
case ']':
|
||||||
|
if(!readingList) safethrow_wrongchar(c,Unitype_free(value));
|
||||||
*readingList=false;
|
*readingList=false;
|
||||||
case ';':
|
case ';':
|
||||||
case ',':
|
case ',':
|
||||||
@ -289,7 +290,7 @@ Maybe __ReadValue(DeserializeSharedData* shared, bool* readingList){
|
|||||||
return SUCCESS(value);
|
return SUCCESS(value);
|
||||||
default:
|
default:
|
||||||
if(spaceAfterVal)
|
if(spaceAfterVal)
|
||||||
safethrow_wrongchar(c,;);
|
safethrow_wrongchar(c,Unitype_free(value));
|
||||||
valueStr.length++;
|
valueStr.length++;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -32,7 +32,7 @@ void printMaybe(Maybe e);
|
|||||||
|
|
||||||
#define __RETURN_EXCEPTION(ERRMSG) return (Maybe){.errmsg=ERRMSG, .value=UniNull}
|
#define __RETURN_EXCEPTION(ERRMSG) return (Maybe){.errmsg=ERRMSG, .value=UniNull}
|
||||||
|
|
||||||
#define __EXIT(ERRMSG) ({ printf("\e[91m%s\e[0m \n", ERRMSG); exit(128); })
|
#define __EXIT(ERRMSG) ({ printf("\e[91m%s\e[0m \n", ERRMSG); free(ERRMSG); exit(128); })
|
||||||
|
|
||||||
char* __doNothing(char* a);
|
char* __doNothing(char* a);
|
||||||
char* __unknownErr( );
|
char* __unknownErr( );
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user