qobject: Correct JSON lexer grammar comments
Fix the regex comments describing what we parse as JSON. No change to the lexer itself, just to the comments: - The "" and '' string construction was missing alternation between different escape sequences - The construction for numbers forgot to handle optional leading '-' - The construction for numbers was grouped incorrectly so that it didn't permit '0.1' - The construction for numbers forgot to mark the exponent as optional - No mention that our '' string and "\'" are JSON extensions - No mention of our %d and related extensions when constructing JSON Signed-off-by: Eric Blake <eblake@redhat.com> Message-Id: <1465526889-8339-2-git-send-email-eblake@redhat.com> Reviewed-by: Markus Armbruster <armbru@redhat.com> [Eric's regexp simplification squashed in] Signed-off-by: Markus Armbruster <armbru@redhat.com>
This commit is contained in:
parent
ba4dba5434
commit
ff5394ad5b
@ -18,11 +18,20 @@
|
||||
#define MAX_TOKEN_SIZE (64ULL << 20)
|
||||
|
||||
/*
|
||||
* \"([^\\\"]|(\\\"\\'\\\\\\/\\b\\f\\n\\r\\t\\u[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]))*\"
|
||||
* '([^\\']|(\\\"\\'\\\\\\/\\b\\f\\n\\r\\t\\u[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]))*'
|
||||
* 0|([1-9][0-9]*(.[0-9]+)?([eE]([-+])?[0-9]+))
|
||||
* Required by JSON (RFC 7159):
|
||||
*
|
||||
* \"([^\\\"]|\\[\"'\\/bfnrt]|\\u[0-9a-fA-F]{4})*\"
|
||||
* -?(0|[1-9][0-9]*)(.[0-9]+)?([eE][-+]?[0-9]+)?
|
||||
* [{}\[\],:]
|
||||
* [a-z]+
|
||||
* [a-z]+ # covers null, true, false
|
||||
*
|
||||
* Extension of '' strings:
|
||||
*
|
||||
* '([^\\']|\\[\"'\\/bfnrt]|\\u[0-9a-fA-F]{4})*'
|
||||
*
|
||||
* Extension for vararg handling in JSON construction:
|
||||
*
|
||||
* %((l|ll|I64)?d|[ipsf])
|
||||
*
|
||||
*/
|
||||
|
||||
@ -213,7 +222,7 @@ static const uint8_t json_lexer[][256] = {
|
||||
['\t'] = IN_WHITESPACE,
|
||||
['\r'] = IN_WHITESPACE,
|
||||
['\n'] = IN_WHITESPACE,
|
||||
},
|
||||
},
|
||||
|
||||
/* escape */
|
||||
[IN_ESCAPE_LL] = {
|
||||
|
Loading…
Reference in New Issue
Block a user