added \\" parsing
This commit is contained in:
@@ -174,9 +174,13 @@ int jlexer_gettoken(jlexer_t * lexer, char* token) {
|
|||||||
switch (type) {
|
switch (type) {
|
||||||
case JLEXTYPE_EOF:
|
case JLEXTYPE_EOF:
|
||||||
case JLEXTYPE_WORDL:{
|
case JLEXTYPE_WORDL:{
|
||||||
token[lexer->tokpos++] = '\0';
|
if (lexer->tokpos > 0 && token[lexer->tokpos - 1] == '\\') {
|
||||||
lexer->context = JLEXCONT_UNDEF;
|
lexer->tokpos--;
|
||||||
return JLEXTOK_WORD;
|
} else {
|
||||||
|
token[lexer->tokpos++] = '\0';
|
||||||
|
lexer->context = JLEXCONT_UNDEF;
|
||||||
|
return JLEXTOK_WORD;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
lexer->context = newcontext;
|
lexer->context = newcontext;
|
||||||
@@ -198,7 +202,6 @@ int jlexer_gettoken(jlexer_t * lexer, char* token) {
|
|||||||
if (token[i] == 'E' || token[i] == 'e' || token[i] == '.') {
|
if (token[i] == 'E' || token[i] == 'e' || token[i] == '.') {
|
||||||
return JLEXTOK_FLOAT;
|
return JLEXTOK_FLOAT;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
return JLEXTOK_INTEG;
|
return JLEXTOK_INTEG;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -39,6 +39,7 @@ int jparser_parse_array(jparser_t * parser, char* arrname) {
|
|||||||
|
|
||||||
int pos = 0;
|
int pos = 0;
|
||||||
|
|
||||||
|
|
||||||
while ((type = jlexer_gettoken(lex, token)) != JLEXTOK_END) {
|
while ((type = jlexer_gettoken(lex, token)) != JLEXTOK_END) {
|
||||||
log_debug("pos %d tok 0x%02x: %s\n", pos, type, token);
|
log_debug("pos %d tok 0x%02x: %s\n", pos, type, token);
|
||||||
|
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
{"id":-123, "name": "qwerty", "size": -12345E3, "exists": true, "intarr": [ 11E1, 12, 13 ]}
|
{"id":-123, "name": "qwerty", "size": -12345E3, "exists": true, "intarr": [ 11E1, 12, 13 ], "a\"b.c": 567.123 }
|
||||||
|
|||||||
Reference in New Issue
Block a user