added \\" parsing
This commit is contained in:
@@ -174,9 +174,13 @@ int jlexer_gettoken(jlexer_t * lexer, char* token) {
|
||||
switch (type) {
|
||||
case JLEXTYPE_EOF:
|
||||
case JLEXTYPE_WORDL:{
|
||||
token[lexer->tokpos++] = '\0';
|
||||
lexer->context = JLEXCONT_UNDEF;
|
||||
return JLEXTOK_WORD;
|
||||
if (lexer->tokpos > 0 && token[lexer->tokpos - 1] == '\\') {
|
||||
lexer->tokpos--;
|
||||
} else {
|
||||
token[lexer->tokpos++] = '\0';
|
||||
lexer->context = JLEXCONT_UNDEF;
|
||||
return JLEXTOK_WORD;
|
||||
}
|
||||
}
|
||||
}
|
||||
lexer->context = newcontext;
|
||||
@@ -198,7 +202,6 @@ int jlexer_gettoken(jlexer_t * lexer, char* token) {
|
||||
if (token[i] == 'E' || token[i] == 'e' || token[i] == '.') {
|
||||
return JLEXTOK_FLOAT;
|
||||
}
|
||||
|
||||
}
|
||||
return JLEXTOK_INTEG;
|
||||
}
|
||||
|
||||
@@ -39,6 +39,7 @@ int jparser_parse_array(jparser_t * parser, char* arrname) {
|
||||
|
||||
int pos = 0;
|
||||
|
||||
|
||||
while ((type = jlexer_gettoken(lex, token)) != JLEXTOK_END) {
|
||||
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