[Json] Consensus call: ABNF nits

Paul Hoffman <paul.hoffman@vpnc.org> Fri, 21 June 2013 16:40 UTC

Return-Path: <paul.hoffman@vpnc.org>
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 E360D11E81A2 for <json@ietfa.amsl.com>; Fri, 21 Jun 2013 09:40:17 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.219
X-Spam-Level:
X-Spam-Status: No, score=-102.219 tagged_above=-999 required=5 tests=[AWL=-0.220, BAYES_00=-2.599, J_CHICKENPOX_14=0.6, USER_IN_WHITELIST=-100]
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 9mdca3d0wEav for <json@ietfa.amsl.com>; Fri, 21 Jun 2013 09:40:17 -0700 (PDT)
Received: from hoffman.proper.com (IPv6.Hoffman.Proper.COM [IPv6:2605:8e00:100:41::81]) by ietfa.amsl.com (Postfix) with ESMTP id 5B1AD11E8193 for <json@ietf.org>; Fri, 21 Jun 2013 09:40:17 -0700 (PDT)
Received: from [10.20.30.90] (50-0-66-165.dsl.dynamic.sonic.net [50.0.66.165]) (authenticated bits=0) by hoffman.proper.com (8.14.5/8.14.5) with ESMTP id r5LGeGu6040529 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NO) for <json@ietf.org>; Fri, 21 Jun 2013 09:40:17 -0700 (MST) (envelope-from paul.hoffman@vpnc.org)
From: Paul Hoffman <paul.hoffman@vpnc.org>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
Message-Id: <9E497099-2B5B-4256-B066-C2E77B558267@vpnc.org>
Date: Fri, 21 Jun 2013 09:40:17 -0700
To: JSON WG <json@ietf.org>
Mime-Version: 1.0 (Mac OS X Mail 6.5 \(1508\))
X-Mailer: Apple Mail (2.1508)
Subject: [Json] Consensus call: ABNF nits
X-BeenThere: json@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
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: Fri, 21 Jun 2013 16:40:18 -0000

There are two proposals for dealing with nits in the ABNF:
  0) Leave the ABNF in the current draft as-is
  1) Change the ABNF in the draft to use the values in "Proposal 1" below
Note that later proposals might make technical changes to the ABNF itself; those proposals are not what we are discussing in this consensus call.

Please respond to this message with a list of proposals you could accept, ordered from highest to lowest. Do not list proposals you cannot live with. If you cannot accept any of the proposals, please respond and say why.

Based on the responses we receive, we will try to judge the consensus of the WG.

-- The JSON WG co-chairs

Proposal #1
Note that this ABNF is sprinkled throughout Section 2 of draft-ietf-json-rfc4627bis-02. Each
section below replaces the similar section in the draft.
==============================================================

JSON-text = object / array

begin-array     = ws %x5B ws  ; [ left square bracket
begin-object    = ws %x7B ws  ; { left curly bracket
end-array       = ws %x5D ws  ; ] right square bracket
end-object      = ws %x7D ws  ; } right curly bracket
name-separator  = ws %x3A ws  ; : colon
value-separator = ws %x2C ws  ; , comma

ws = *(
     %x20 /              ; Space
     %x09 /              ; Horizontal tab
     %x0A /              ; Line feed or New line
     %x0D                ; Carriage return
     )

value = false / null / true / object / array / number / string
false = %x66.61.6c.73.65   ; false
null  = %x6e.75.6c.6c      ; null
true  = %x74.72.75.65      ; true

object = begin-object [ member *( value-separator member ) ]
         end-object
member = string name-separator value

array = begin-array [ value *( value-separator value ) ] end-array

number = [ minus ] int [ frac ] [ exp ]
decimal-point = %x2E       ; .
digit1-9 = %x31-39         ; 1-9
e = %x65 / %x45            ; e E
exp = e [ minus / plus ] 1*DIGIT
frac = decimal-point 1*DIGIT
int = zero / ( digit1-9 *DIGIT )
minus = %x2D               ; -
plus = %x2B                ; +
zero = %x30                ; 0
DIGIT = %x30-39            ; 0-9
      ; DIGIT equivalent to DIGIT rule in [RFC5234]

string = quotation-mark *char quotation-mark
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
escape = %x5C              ; \  U+005C
quotation-mark = %x22      ; "  U+0022
unescaped = %x20-21 / %x23-5B / %x5D-10FFFF  ; any Unicode scalar
   ; value, except those that must be escaped (C0 control
   ; characters, "QUOTATION MARK" [U+0022], and "REVERSE SOLIDUS"
   ; [U+005C])
HEXDIG = DIGIT / %x41-46 / %x61-66   ; 0-9, A-F, or a-f
       ; HEXDIG equivalent to HEXDIG rule in [RFC5234]