Augmented BNF for Syntax Specifications: ABNF
RFC 2234
Document | Type |
RFC - Proposed Standard
(November 1997; Errata)
Obsoleted by RFC 4234
|
|
---|---|---|---|
Authors | Paul Overell , Dave Crocker | ||
Last updated | 2020-01-21 | ||
Stream | IETF | ||
Formats | plain text html pdf htmlized with errata bibtex | ||
Stream | WG state | (None) | |
Document shepherd | No shepherd assigned | ||
This information refers to IESG processing after the RFC was initially published: | |||
IESG | IESG state | RFC 2234 (Proposed Standard) | |
Consensus Boilerplate | Unknown | ||
Telechat date | |||
Responsible AD | Scott Hollenbeck | ||
Send notices to | ned.freed@mrochek.com, paulo@turnpike.com |
Network Working Group D. Crocker, Ed. Request for Comments: 2234 Internet Mail Consortium Category: Standards Track P. Overell Demon Internet Ltd. November 1997 Augmented BNF for Syntax Specifications: ABNF Status of this Memo This document specifies an Internet standards track protocol for the Internet community, and requests discussion and suggestions for improvements. Please refer to the current edition of the "Internet Official Protocol Standards" (STD 1) for the standardization state and status of this protocol. Distribution of this memo is unlimited. Copyright Notice Copyright (C) The Internet Society (1997). All Rights Reserved. TABLE OF CONTENTS 1. INTRODUCTION .................................................. 2 2. RULE DEFINITION ............................................... 2 2.1 RULE NAMING .................................................. 2 2.2 RULE FORM .................................................... 3 2.3 TERMINAL VALUES .............................................. 3 2.4 EXTERNAL ENCODINGS ........................................... 5 3. OPERATORS ..................................................... 5 3.1 CONCATENATION RULE1 RULE2 ............................. 5 3.2 ALTERNATIVES RULE1 / RULE2 ................................... 6 3.3 INCREMENTAL ALTERNATIVES RULE1 =/ RULE2 .................... 6 3.4 VALUE RANGE ALTERNATIVES %C##-## ........................... 7 3.5 SEQUENCE GROUP (RULE1 RULE2) ................................. 7 3.6 VARIABLE REPETITION *RULE .................................... 8 3.7 SPECIFIC REPETITION NRULE .................................... 8 3.8 OPTIONAL SEQUENCE [RULE] ..................................... 8 3.9 ; COMMENT .................................................... 8 3.10 OPERATOR PRECEDENCE ......................................... 9 4. ABNF DEFINITION OF ABNF ....................................... 9 5. SECURITY CONSIDERATIONS ....................................... 10 Crocker & Overell Standards Track [Page 1] RFC 2234 ABNF for Syntax Specifications November 1997 6. APPENDIX A - CORE ............................................. 11 6.1 CORE RULES ................................................... 11 6.2 COMMON ENCODING .............................................. 12 7. ACKNOWLEDGMENTS ............................................... 12 8. REFERENCES .................................................... 13 9. CONTACT ....................................................... 13 10. FULL COPYRIGHT STATEMENT ..................................... 14 1. INTRODUCTION Internet technical specifications often need to define a format syntax and are free to employ whatever notation their authors deem useful. Over the years, a modified version of Backus-Naur Form (BNF), called Augmented BNF (ABNF), has been popular among many Internet specifications. It balances compactness and simplicity, with reasonable representational power. In the early days of the Arpanet, each specification contained its own definition of ABNF. This included the email specifications, RFC733 and then RFC822 which have come to be the common citations for defining ABNF. The current document separates out that definition, to permit selective reference. Predictably, it also provides some modifications and enhancements. The differences between standard BNF and ABNF involve naming rules, repetition, alternatives, order-independence, and value ranges. Appendix A (Core) supplies rule definitions and encoding for a core lexical analyzer of the type common to several Internet specifications. It is provided as a convenience and is otherwise separate from the meta language defined in the body of this document, and separate from its formal status. 2. RULE DEFINITION 2.1 Rule Naming The name of a rule is simply the name itself; that is, a sequence of characters, beginning with an alphabetic character, and followed by a combination of alphabetics, digits and hyphens (dashes). NOTE: Rule names are case-insensitive The names <rulename>, <Rulename>, <RULENAME> and <rUlENamE> all refer to the same rule. Crocker & Overell Standards Track [Page 2] RFC 2234 ABNF for Syntax Specifications November 1997 Unlike original BNF, angle brackets ("<", ">") are not required. However, angle brackets may be used around a rule name whenever their presence will facilitate discerning the use of a rule name. This is typically restricted to rule name references in free-form prose, orShow full document text