2.1 Augmented BNF : 증가된 BNF

구현자는 이 구격을 이해하기 위해 표기법을 숙지해야 한다.

이 문서에 명시된 모든 메커니즘은 BNF에 자세히 설명되어 있다.

name=definition

규칙의 이름은 단순히 이름 자체이며 "<"와 ">"를 포함하지 않으며 동일한 "=" 문자로 정의와 구분된다.

공백은 연속선의 들여쓰기가 둘 이상의 줄에 걸쳐 있는 규칙 정의를 나타내는 데 사용된다는 점에서만 중요.

SP, LWS, HT, CRLF, DIGITE, ALPHA 등과 같은 일부 기본 규칙은 대문자로 표시됨.

각 괄호는 규칙 이름 사용을 식별하기 쉽게 할 때마다 정의 내에서 사용됩니다.

"literal"

따옴표는 리터럴 텍스트를 둘러싼다. 달리 명시되지 않는 한 텍스트는 대소문자를 구분하지 않는다.

rule1 | rule2

막대("|")로 구분된 요소는 대안으로, 예를 들어 "예 | 아니오"는 예 또는 아니오를 받아들인다.

(rule1 rule2)

괄호로 둘러싸인 요소는 단일 요소로 처리됩니다.

따라서, ("elem (foo | bar) lem") 은 토큰 시퀀스의 "elem foolem" 과 "elem barlem" 을 허용한다.

*rule

요소 앞에 있는 문자 “*”는 반복을 나타냅니다.

전체 형식은 "원소"이며, 최소 및 최대 <m>개의 원소를 나타냅니다.

기본값은 0과 무한대이므로 “(원소)”는 0을 포함한 모든 숫자를 허용하고, “1원소”는 최소 1개를 허용하며, "1*2원소"는 1개 또는 2개를 허용한다.