idnits 2.17.1 draft-ietf-drums-abnf-00.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- ** Cannot find the required boilerplate sections (Copyright, IPR, etc.) in this document. Expected boilerplate is as follows today (2024-04-26) according to https://trustee.ietf.org/license-info : IETF Trust Legal Provisions of 28-dec-2009, Section 6.a: This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. IETF Trust Legal Provisions of 28-dec-2009, Section 6.b(i), paragraph 2: Copyright (c) 2024 IETF Trust and the persons identified as the document authors. All rights reserved. IETF Trust Legal Provisions of 28-dec-2009, Section 6.b(i), paragraph 3: This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- ** Missing expiration date. The document expiration date should appear on the first and last page. ** The document seems to lack a 1id_guidelines paragraph about Internet-Drafts being working documents. ** The document seems to lack a 1id_guidelines paragraph about 6 months document validity -- however, there's a paragraph with a matching beginning. Boilerplate error? ** The document seems to lack a 1id_guidelines paragraph about the list of current Internet-Drafts. ** The document seems to lack a 1id_guidelines paragraph about the list of Shadow Directories. == No 'Intended status' indicated for this document; assuming Proposed Standard == The page length should not exceed 58 lines per page, but there was 1 longer page, the longest (page 1) being 159 lines Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** The document seems to lack an Abstract section. ** The document seems to lack a Security Considerations section. ** The document seems to lack an IANA Considerations section. (See Section 2.2 of https://www.ietf.org/id-info/checklist for how to handle the case when there are no actions for IANA.) ** The document seems to lack an Authors' Addresses Section. ** The document seems to lack a both a reference to RFC 2119 and the recommended RFC 2119 boilerplate, even if it appears to use RFC 2119 keywords. RFC 2119 keyword, line 79: '...6. [RULE]: OPTIONAL...' Miscellaneous warnings: ---------------------------------------------------------------------------- == Line 48 has weird spacing: '...are not used,...' == Line 49 has weird spacing: '...of a rule is ...' == Line 50 has weird spacing: '... may be upper...' == Line 51 has weird spacing: '...lower case). ...' == Line 52 has weird spacing: '...re used in...' == (18 more instances...) -- The document seems to lack a disclaimer for pre-RFC5378 work, but may have content which was first submitted before 10 November 2008. If you have contacted all the original authors and they are all willing to grant the BCP78 rights to the IETF Trust, then this is fine, and you can ignore this comment. If not, you may need to add the pre-RFC5378 disclaimer. (See the Legal Provisions document at https://trustee.ietf.org/license-info for more information.) -- The document date (8 March 1996) is 10276 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) -- Missing reference section? 'RULE' on line 79 looks like a reference Summary: 11 errors (**), 0 flaws (~~), 8 warnings (==), 3 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 1 Network Working Group D. Crocker 2 Internet-Draft Internet Mail Consortium 3 Expiration <6/95> 8 March 1996 5 Augmented BNF for Syntax Specifictions 6 8 STATUS OF THIS MEMO 10 This document is an Internet-Draft. Internet-Drafts are working 11 documents of the Internet Engineering Task Force (IETF), its 12 areas, and its working groups. Note that other groups may also 13 distribute working documents as Internet-Drafts. 15 Internet-Drafts are draft documents valid for a maximum of six 16 months and may be updated, replaced, or obsoleted by other 17 documents at any time. It is inappropriate to use Internet- 18 Drafts as reference material or to cite them other than as ``work 19 in progress.'' 21 To learn the current status of any Internet-Draft, please check 22 the ``1id-abstracts.txt'' listing contained in the Internet- 23 Drafts Shadow Directories on ftp.is.co.za (Africa), nic.nordu.net 24 (Europe), munnari.oz.au (Pacific Rim), ds.internic.net (US East 25 Coast), or ftp.isi.edu (US West Coast). 27 TABLE OF CONTENTS 29 1. INTRODUCTION 31 Internet technical specifications often need to define a format 32 syntax and are free to employ whatever notation their authors 33 deem useful. Over the years, a modified of Backus-Naur Form 34 (BNF), called Augmented BNF, has been popular. It balances 35 compactness with reasonable representation power. In the early 36 days of the Arpanet, each specification contained its own 37 provision for ABNF. This included the email specifications, 38 RFC733 and then RFC822 which have come to be the common citations 39 for defining ABNF. The current document separates out that 40 definition, to permit selective reference. 42 The differences between standard BNF and ABNF involve naming 43 rules and indicating repetition and "local" alternatives. The 44 current document adds value-ranges. 46 2. RULE NAMING 48 Angle brackets ("<", ">") are not used, in general. The name 49 of a rule is simply the name itself, rather than "". 50 Quotation-marks enclose literal text (which may be upper and/or 51 lower case). Certain basic rules are in uppercase, such as 52 SPACE, TAB, CRLF, DIGIT, ALPHA, etc. Angle brackets are used in 53 rule definitions, and in the rest of this document, whenever 54 their presence will facilitate discerning the use of rule names. 56 3. RULE1 / RULE2: ALTERNATIVES 58 Elements separated by slash ("/") are alternatives. Therefore 59 "foo / bar" will accept foo or bar. 61 4. (RULE1 RULE2): LOCAL ALTERNATIVES 63 Elements enclosed in parentheses are treated as a single 64 element. Thus, "(elem (foo / bar) elem)" allows the token 65 sequences "elem foo elem" and "elem bar elem". 67 5. *RULE: REPETITION 69 The character "*" preceding an element indicates repetition. The 70 full form is: 72 *element 74 indicating at least and at most occurrences of element. 75 Default values are 0 and infinity so that "*(element)" allows any 76 number, including zero; "1*element" requires at least one; and 77 "1*2element" allows one or two. 79 6. [RULE]: OPTIONAL 81 Square brackets enclose optional elements; "[foo bar]" is 82 equivalent to "*1(foo bar)". 84 7. NRULE: SPECIFIC REPETITION 86 "(element)" is equivalent to "*(element)"; that is, 87 exactly occurrences of (element). Thus 2DIGIT is a 2-digit 88 number, and 3ALPHA is a string of three alphabetic characters. 90 8. #RULE: LISTS 92 A construct "#" is defined, similar to "*", as follows: 94 #element 96 indicating at least and at most elements, each separated 97 by one or more commas (","). This makes the usual form of lists 98 very easy; a rule such as '(element *("," element))' can be shown 99 as "1#element". Wherever this construct is used, null elements 100 are allowed, but do not contribute to the count of elements 101 present. That is, "(element),,(element)" is permitted, but 102 counts as only two elements. Therefore, where at least one ele 103 ment is required, at least one non-null element must be present. 104 Default values are 0 and infinity so that "#(element)" allows any 105 number, including zero; "1#element" requires at least one; and 106 "1#2element" allows one or two. 108 9. ; COMMENTS 110 A semi-colon, set off some distance to the right of rule 111 text, starts a comment that continues to the end of line. This 112 is a simple way of including useful notes in parallel with the 113 specifications. 115 10. VALUE RANGES 117 Elements separated by double periods ("..") specify a range of 118 values. Therefore "foo..bar" represents the range of data 119 values from foo to bar, inclusively. 121 11. ACKNOWLEDGEMENTS 123 The syntax for ABNF was originally specified in RFC #733, 124 Ken L. Harrenstien, of SRI International, was responsible for re- 125 coding the BNF into an augmented BNF that makes the 126 representation smaller and easier to understand. 128 12. CONTACT 130 David H. Crocker 132 Brandenburg Consulting 133 675 Spruce Dr. 134 Sunnyvale, CA 94086 USA 136 138 Phone: +1 408 246 8253 139 Fax: +1 408 249 6205