This appendix contains the formal definition of the Verilog-2001 standard in Backus-Naur Form (BNF). The formal definition contains a description of every possible usage of Verilog HDL. Therefore, it is very useful if there is a doubt on the usage of certain Verilog HDL syntax.
Though the BNF may be hard to understand initially, the following summary may help the reader better understand the formal syntax definition:
Bold text represents literal words themselves (these are called terminals). Example: module.
Non-bold text (possibly with underscores) represents syntactic categories (these are called non terminals). Example: port_identifier.
Syntactic categories are defined using the form: syntactic_category ::= ...