[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 1/4] qobject: Correct JSON lexer grammar comment
From: |
Eric Blake |
Subject: |
Re: [Qemu-devel] [PATCH 1/4] qobject: Correct JSON lexer grammar comments |
Date: |
Thu, 16 Jun 2016 11:41:38 -0600 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0 |
On 06/16/2016 10:19 AM, Markus Armbruster wrote:
> Eric Blake <address@hidden> writes:
>
>> 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 <address@hidden>
>
> Reviewed-by: Markus Armbruster <address@hidden>
>
> I'll take this one through qapi-next. Thanks!
>
You may want to squash this in for shorter lines:
diff --git a/qobject/json-lexer.c b/qobject/json-lexer.c
index de16219..b030576 100644
--- a/qobject/json-lexer.c
+++ b/qobject/json-lexer.c
@@ -21,16 +21,14 @@
* Required by JSON (RFC 7159), plus \' extension in "", and extension
* of parsing case-insensitive non-finite numbers like "NaN" and "-Inf":
*
- * \"([^\\\"]|(\\\"|\\'|\\\\|\\/|\\b|\\f|\\n|\\r|\\t|
- * \\u[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]))*\"
+ * \"([^\\\"]|\\[\"'\\/bfnrt]|\\u[0-9a-fA-F]{4})*\"
* -?(0|[1-9][0-9]*)(.[0-9]+)?([eE][-+]?[0-9]+)?
* [{}\[\],:]
* -?[a-zA-Z]+ # covers null, true, false, nan, inf[inity]
*
* Extension of '' strings:
*
- * '([^\\']|(\\\"|\\'|\\\\|\\/|\\b|\\f|\\n|\\r|\\t|
- * \\u[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]))*'
+ * '([^\\']|\\[\"'\\/bfnrt]|\\u[0-9a-fA-F]{4})*'
*
* Extension for vararg handling in JSON construction:
*
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature
[Qemu-devel] [PATCH 4/4] qobject: Output valid JSON for non-finite numbers, Eric Blake, 2016/06/09
[Qemu-devel] [PATCH 2/4] checkpatch: There is no qemu_strtod(), Eric Blake, 2016/06/09
[Qemu-devel] [PATCH 3/4] qobject: Parse non-finite numbers, as an extension, Eric Blake, 2016/06/09