Re: [Json] ABNF nits -- LAST CHANCE ON PROPOSALS
Stefan Drees <stefan@drees.name> Wed, 12 June 2013 06:52 UTC
Return-Path: <stefan@drees.name>
X-Original-To: json@ietfa.amsl.com
Delivered-To: json@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 444C821F9C1B for <json@ietfa.amsl.com>; Tue, 11 Jun 2013 23:52:47 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.874
X-Spam-Level:
X-Spam-Status: No, score=-1.874 tagged_above=-999 required=5 tests=[AWL=-0.225, BAYES_00=-2.599, HELO_EQ_DE=0.35, J_CHICKENPOX_14=0.6]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Da4xGJAOzi-3 for <json@ietfa.amsl.com>; Tue, 11 Jun 2013 23:52:41 -0700 (PDT)
Received: from mout.web.de (mout.web.de [212.227.15.4]) by ietfa.amsl.com (Postfix) with ESMTP id 378A721F9C1A for <json@ietf.org>; Tue, 11 Jun 2013 23:52:40 -0700 (PDT)
Received: from newyork.local.box ([77.13.220.117]) by smtp.web.de (mrweb102) with ESMTPSA (Nemesis) id 0M6V1T-1UPSru3Ppr-00yRHw; Wed, 12 Jun 2013 08:52:30 +0200
Message-ID: <51B81AAD.500@drees.name>
Date: Wed, 12 Jun 2013 08:52:29 +0200
From: Stefan Drees <stefan@drees.name>
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:17.0) Gecko/20130509 Thunderbird/17.0.6
MIME-Version: 1.0
To: Carsten Bormann <cabo@tzi.org>
References: <6898D31C-FF53-4B8D-9F81-5519C934E00D@vpnc.org> <BC94A823-6314-4616-A6A7-6EEC8373FEE0@tzi.org>
In-Reply-To: <BC94A823-6314-4616-A6A7-6EEC8373FEE0@tzi.org>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 7bit
X-Provags-ID: V03:K0:1veIhXZmyJNH1NeBbIM5bZtYRXlgVpwkgKWrc9lkhswgqudK3up kkVqsEwe1HoJ0MWLlBRqhYaEU0CO6I4FjfHW9UQVXb3cGmHvHU1O4BCENZZtFEk7L/ojh+b vughF/UKkKFsjgrNtRsXWE1b3KQ44O+rRc6UgTS8e6uZ9AB7/k2lslzSMi2nzw4hzqt4FHl yuUBE8biyCow9eXpwbe/w==
Cc: Paul Hoffman <paul.hoffman@vpnc.org>, "json@ietf.org" <json@ietf.org>
Subject: Re: [Json] ABNF nits -- LAST CHANCE ON PROPOSALS
X-BeenThere: json@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
Reply-To: stefan@drees.name
List-Id: "JavaScript Object Notation \(JSON\) WG mailing list" <json.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/json>, <mailto:json-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/json>
List-Post: <mailto:json@ietf.org>
List-Help: <mailto:json-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/json>, <mailto:json-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 12 Jun 2013 06:52:47 -0000
On 2013-06-12 08:19 CEST, Carsten Bormann wrote: > The efforts to real-world-test the ABNF are ongoing; so far > everything looks fine (unsurprisingly). > > From a stylistic point of view, I have two comments on the ABNF: > > > 1) the production for char relies on the operator precedence, i.e., > concatenation binds closer than alternative. > > char = unescaped / > escape ( > %x22 / ; " quotation mark U+0022 > %x5C / ; \ reverse solidus U+005C > %x2F / ; / solidus U+002F > %x62 / ; b backspace U+0008 > %x66 / ; f form feed U+000C > %x6E / ; n line feed U+000A > %x72 / ; r carriage return U+000D > %x74 / ; t tab U+0009 > %x75 4HEXDIG ) ; uXXXX U+XXXX > > This is nicely layed out to suggest this priority, and given the > precedence defined in 5234, it *is* unambiguous. > > Still, section 3.10 of 5234 rightly notes: > > Use of the alternative operator, freely mixed with concatenations, > can be confusing. > > Again, it is recommended that the grouping operator be used to > make explicit concatenation groups. > > So the canonical form of writing this might be: > > char = unescaped / ( > escape ( > %x22 / ; " quotation mark U+0022 > %x5C / ; \ reverse solidus U+005C > %x2F / ; / solidus U+002F > %x62 / ; b backspace U+0008 > %x66 / ; f form feed U+000C > %x6E / ; n line feed U+000A > %x72 / ; r carriage return U+000D > %x74 / ; t tab U+0009 > (%x75 4HEXDIG) ) ) ; uXXXX U+XXXX > > I second the proposal, maybe with the last row knit slightly different. > > 2) the character literals use hex in favor of "x" notation. > > begin-array = ws "[" ws > begin-object = ws "{" ws > end-array = ws "]" ws > end-object = ws "}" ws > name-separator = ws ":" ws > value-separator = ws "," ws > > would generally be considered slightly more readable. > Productions like minus, zero, plus, would not really be needed. > (Hex notation is indeed needed for quotation-mark, for > case-sensitive productions like false, and for the ranges, so using just > that instead of a mix with quoted "char-val"s is a simplification for > people new to ABNF.) > or would not ;-) especially as the target language (JSON) of the grammar uses itself the double quote as token, it is IMO distracting to spread ABNF double quote tokens more than absolutely necessary. In the cases under 2) above I see the task of the "rule spell out" as follows: A) What is the rule? B) What is that whitespace separated character token? In random ordering I have two comments on this: Firstly I think the cultural concept of lower and upper case in the realm of punctuation mixes (I presume) badly for people coming from other cultures where this concept of eg. 'a is somehow like A' does not apply and also with most keyboard layouts. Thus the rewrite of the rules as in 2 above may trigger extra work for the reader like: Double quotes matches two characters per slot, ah, no this character has no "upper" sister. Secondly I think that the "other" proposed form seems to transport the rules covering both aspects A and B clearly readable (giving the "printed" representation and common english name of the character in the comment. All personal and opinion only, everyone will see this from a different angle, but that's why /I/ write it ;-) > Now, changing the ABNF even on a stylistic level could make it look > like something changed syntactically between 4627 and 4627bis. > On the other hand, I'm not aware of any problems that have been > caused by the two stylistic peculiarities. > > So I'm not actually proposing to make any of these changes now, but > I would like to make sure the WG considered and consciously decided > against them because they will inevitably come up at IESG review time. So I am all for the first proposed change above and at the same time opposed to applying the second proposed change based on the above reasoning. > (If we do decide to change the ABNF for other reasons, these items > might be reconsidered.) ditto. All the best, Stefan.
- Re: [Json] ABNF nits -- LAST CHANCE ON PROPOSALS Carsten Bormann
- [Json] ABNF nits -- LAST CHANCE ON PROPOSALS Paul Hoffman
- Re: [Json] ABNF nits -- LAST CHANCE ON PROPOSALS Stefan Drees
- Re: [Json] ABNF nits -- LAST CHANCE ON PROPOSALS Stefan Drees
- Re: [Json] ABNF nits -- LAST CHANCE ON PROPOSALS Norbert Lindenberg
- Re: [Json] ABNF nits -- LAST CHANCE ON PROPOSALS Carsten Bormann