Extended BNF Notation Syntax

This module implements the syntactic requirements of
the Extended BNF Standard ISO/IEC 14977 : 1996(E).

Syntactic-Exception
Symbol: -t "not token"
Use:       following a token in the definitions-list
Form:      bnf= <no-space> "space" -t <character> ;bnf
Allows any character except a space.
Only applies to tokens. Can't be used on productions.

Optional-Sequence
Symbol:    (/  /)  EBNF Standard alternative representation
Use:       To allow a sequence but not insist on it.
Form:      bnf= <signed> '-' <number> | (/ "+" /) <number> ;bnf
Allows an unary "+" sign without insisting on it.
Can be applied to any ebnf sequence. Functionally,
does not alter the success flag but does advance
the scan pointer.

Repeated-Sequence
Symbol:    {  }
Use:       repeat a sequence an indefinate number of times
           from 0..n
Form:      bnf= <-leading> { "space" } <char> ;bnf
Skips from 1 to n leading spaces before <char>.
The sequence to be repeated must be a token or
encapsulated within a single production definition.

n-Repeated-Sequence
Symbol:    {*  *}
Use:       repeat a sequence a specified number of times
Form:      bnf= <5spaces> 5 {* "space" *} ;bnf
Parses exactly five spaces.
The sequence to be repeated must be a token or
encapsulated within a single production definition.

Default Definitions
Default definitions for text, ascii graphic characters,
spaces and gaps (white space). These definitions may need
to be replaced or altered for specific lexical
requirements.
Note: By convention, EBNF production names are enclosed
in angle brackets for clarity.

Comments
Symbol:    (*  *)
Use:       Create brief or extended multi-line comments
Form:      (* This is an EBNF comment *)
(*
   So is this!
*)
Comments may not contain start-comment or end-comment symbols.

Special-Sequence
Symbol:    ??
Use:       Create special side comments
Form:      ?? See design note 64.11a ??
??
   Use for design or other issues,
   section numbering,
   references, or any special notes.
??
The EBNF Standard specifies using a single "?"
but EBNF 4.0 uses two.

BACK