JSON5: Modified lexer for some number support

If configured for JSON5 the lexer now allows a leading or trailing
decimal point on doubles, and an explicit leading + sign on integers
or double numbers.

Includes test cases.
This commit is contained in:
Andrew Johnson
2020-07-07 00:34:50 -05:00
parent 91c5b2fee2
commit 456e774d85
2 changed files with 61 additions and 5 deletions
+47
View File
@@ -7,6 +7,53 @@
sub cases {
my $VAR1 = [
{
name => "doubles",
opts => [
-5
],
input => [
"[ .1e2, 10., +3.141569, -.1e4]",
""
],
gives => [
"array open '['",
"double: 10",
"double: 10",
"double: 3.14157",
"double: -1000",
"array close ']'",
"memory leaks:\t0"
]
},
{
name => "integers",
opts => [
-5
],
input => [
"[ +1,+2,+3,+4,+5,+6,+7,",
" +123456789 , -123456789,",
" +2147483647, -2147483647 ]",
""
],
gives => [
"array open '['",
"integer: 1",
"integer: 2",
"integer: 3",
"integer: 4",
"integer: 5",
"integer: 6",
"integer: 7",
"integer: 123456789",
"integer: -123456789",
"integer: 2147483647",
"integer: -2147483647",
"array close ']'",
"memory leaks:\t0"
]
},
{
name => "trailing_commas",
opts => [