diff --git a/src/yajl_lex.c b/src/yajl_lex.c index 3e3c9cc..8955744 100644 --- a/src/yajl_lex.c +++ b/src/yajl_lex.c @@ -542,7 +542,7 @@ yajl_lex_number(yajl_lexer lexer, } if (leadingZero) { unreadChar(lexer, offset); - lexer->error = yajl_lex_integer_with_leading_zero; + lexer->error = yajl_lex_number_with_leading_zero; return yajl_tok_error; } @@ -858,8 +858,8 @@ yajl_lex_error_to_string(yajl_lex_error error) /*+ lexer error value +*/ case yajl_lex_unallowed_comment: return "probable comment found in input text, comments are " "not enabled."; - case yajl_lex_integer_with_leading_zero: - return "malformed integer, a leading zero is invalid."; + case yajl_lex_number_with_leading_zero: + return "malformed number, a leading zero is invalid."; } /* NOTREACHED */ return "unknown error code"; diff --git a/src/yajl_lex.h b/src/yajl_lex.h index 9916971..6663569 100644 --- a/src/yajl_lex.h +++ b/src/yajl_lex.h @@ -76,7 +76,7 @@ typedef enum { yajl_lex_missing_integer_after_exponent, yajl_lex_missing_integer_after_minus, yajl_lex_unallowed_comment, - yajl_lex_integer_with_leading_zero + yajl_lex_number_with_leading_zero } yajl_lex_error; const char * yajl_lex_error_to_string(yajl_lex_error error); diff --git a/test/parsing/cases/leading_zero_in_number.json.gold b/test/parsing/cases/leading_zero_in_number.json.gold index 6f5e83a..6a7f68f 100644 --- a/test/parsing/cases/leading_zero_in_number.json.gold +++ b/test/parsing/cases/leading_zero_in_number.json.gold @@ -1,4 +1,4 @@ map open '{' key: 'bad thing' -line: 1: offset: 15: lexical error: malformed integer, a leading zero is invalid. +line: 1: offset: 15: lexical error: malformed number, a leading zero is invalid. memory leaks: 0 diff --git a/test/parsing/cases/leading_zero_in_number2.json b/test/parsing/cases/leading_zero_in_number2.json new file mode 100644 index 0000000..de3bdf9 --- /dev/null +++ b/test/parsing/cases/leading_zero_in_number2.json @@ -0,0 +1 @@ +{ "bad negative thing": -01 } diff --git a/test/parsing/cases/leading_zero_in_number2.json.gold b/test/parsing/cases/leading_zero_in_number2.json.gold new file mode 100644 index 0000000..8d70f4a --- /dev/null +++ b/test/parsing/cases/leading_zero_in_number2.json.gold @@ -0,0 +1,4 @@ +map open '{' +key: 'bad negative thing' +line: 1: offset: 25: lexical error: malformed number, a leading zero is invalid. +memory leaks: 0 diff --git a/test/parsing/cases/leading_zero_in_number3.json b/test/parsing/cases/leading_zero_in_number3.json new file mode 100644 index 0000000..c4a82ce --- /dev/null +++ b/test/parsing/cases/leading_zero_in_number3.json @@ -0,0 +1 @@ +{ "bad decimal": 00.01 } diff --git a/test/parsing/cases/leading_zero_in_number3.json.gold b/test/parsing/cases/leading_zero_in_number3.json.gold new file mode 100644 index 0000000..e600601 --- /dev/null +++ b/test/parsing/cases/leading_zero_in_number3.json.gold @@ -0,0 +1,4 @@ +map open '{' +key: 'bad decimal' +line: 1: offset: 17: lexical error: malformed number, a leading zero is invalid. +memory leaks: 0 diff --git a/test/parsing/cases/leading_zero_in_number4.json b/test/parsing/cases/leading_zero_in_number4.json new file mode 100644 index 0000000..69d7ad0 --- /dev/null +++ b/test/parsing/cases/leading_zero_in_number4.json @@ -0,0 +1 @@ +{ "bad negative decimal": -01.01 } diff --git a/test/parsing/cases/leading_zero_in_number4.json.gold b/test/parsing/cases/leading_zero_in_number4.json.gold new file mode 100644 index 0000000..134e296 --- /dev/null +++ b/test/parsing/cases/leading_zero_in_number4.json.gold @@ -0,0 +1,4 @@ +map open '{' +key: 'bad negative decimal' +line: 1: offset: 27: lexical error: malformed number, a leading zero is invalid. +memory leaks: 0 diff --git a/test/parsing/cases/leading_zero_in_number5.json b/test/parsing/cases/leading_zero_in_number5.json new file mode 100644 index 0000000..d68ced2 --- /dev/null +++ b/test/parsing/cases/leading_zero_in_number5.json @@ -0,0 +1 @@ +{ "bad float": 00e } diff --git a/test/parsing/cases/leading_zero_in_number5.json.gold b/test/parsing/cases/leading_zero_in_number5.json.gold new file mode 100644 index 0000000..7ac32a5 --- /dev/null +++ b/test/parsing/cases/leading_zero_in_number5.json.gold @@ -0,0 +1,4 @@ +map open '{' +key: 'bad float' +line: 1: offset: 15: lexical error: malformed number, a leading zero is invalid. +memory leaks: 0 diff --git a/test/parsing/cases/leading_zero_in_number6.json b/test/parsing/cases/leading_zero_in_number6.json new file mode 100644 index 0000000..76edc8f --- /dev/null +++ b/test/parsing/cases/leading_zero_in_number6.json @@ -0,0 +1 @@ +{ "bad negative float": -00e } diff --git a/test/parsing/cases/leading_zero_in_number6.json.gold b/test/parsing/cases/leading_zero_in_number6.json.gold new file mode 100644 index 0000000..a2cb4d4 --- /dev/null +++ b/test/parsing/cases/leading_zero_in_number6.json.gold @@ -0,0 +1,4 @@ +map open '{' +key: 'bad negative float' +line: 1: offset: 25: lexical error: malformed number, a leading zero is invalid. +memory leaks: 0 diff --git a/test/parsing/cases/leading_zero_in_number7.json b/test/parsing/cases/leading_zero_in_number7.json new file mode 100644 index 0000000..354ad82 --- /dev/null +++ b/test/parsing/cases/leading_zero_in_number7.json @@ -0,0 +1 @@ +{ "bad floating number": 00e10 } diff --git a/test/parsing/cases/leading_zero_in_number7.json.gold b/test/parsing/cases/leading_zero_in_number7.json.gold new file mode 100644 index 0000000..0019514 --- /dev/null +++ b/test/parsing/cases/leading_zero_in_number7.json.gold @@ -0,0 +1,4 @@ +map open '{' +key: 'bad floating number' +line: 1: offset: 25: lexical error: malformed number, a leading zero is invalid. +memory leaks: 0 diff --git a/test/parsing/cases/leading_zero_in_number8.json b/test/parsing/cases/leading_zero_in_number8.json new file mode 100644 index 0000000..3ec0e94 --- /dev/null +++ b/test/parsing/cases/leading_zero_in_number8.json @@ -0,0 +1 @@ +{ "bad negative floating number": -00e10 } diff --git a/test/parsing/cases/leading_zero_in_number8.json.gold b/test/parsing/cases/leading_zero_in_number8.json.gold new file mode 100644 index 0000000..4070349 --- /dev/null +++ b/test/parsing/cases/leading_zero_in_number8.json.gold @@ -0,0 +1,4 @@ +map open '{' +key: 'bad negative floating number' +line: 1: offset: 35: lexical error: malformed number, a leading zero is invalid. +memory leaks: 0