A particular variant of EBNF (Extended Bachus Naur Form) will be used to describe the FunnelWeb syntax. In this variant, literal strings are delimited by double quotes (e.g. "string"), optional constructs by square brackets (e.g. [optional]), and constructs repeated zero or more times by braces (e.g. {zeroormore}). Constructs to be repeated a fixed number of times are enclosed in braces followed by a decimal number indicating the number of times to be repeated (e.g. {sixtimes}6). Constructs to be repeated one or more times are enclosed in braces and followed by a + (e.g. {oneormore}+). The traditional BNF ``::='' is replaced by the visually simpler ``=''. The traditional BNF angle brackets are abandoned.
Although FunnelWeb allows the special character to be changed using the construct ``<special>='', use of ``<special>'' to refer to FunnelWeb's special character is cumbersome and abstract. To simplify the presentation, the default special character ``@'' is used throughout this chapter to represent the special character.