A Practical Introduction to PSL

From IEEE Std.1850-2005. Copyright 2005 IEEE. All rights reserved.*
Below we present the syntax of PSL in Backus-Naur Form (BNF).
The formal syntax described uses the following extended Backus-Naur Form (BNF).
The initial character of each word in a nonterminal is capitalized. For example:
PSL_Statement
A nonterminal is either a single word or multiple words separated by underscores. When a multiple word nonterminal containing underscores is referenced within the text (e.g., in a statement that describes the semantics of the corresponding syntax), the underscores are replaced with spaces.
Boldface words are used to denote reserved keywords, operators, and punctuation marks as a required part of the syntax. For example:
<b class="bold">vunit (;</b>
The ::= operator separates the two parts of a BNF syntax definition. The syntax category appears to the left of this operator and the syntax description appears to the right of the operator. For example, item (d) shows three options for a Vunit_Type.
A vertical bar separates alternative items (use one only) unless it appears in boldface, in which case it stands for itself. For example:
Vunit_Type ::= <b class="bold">vunit</b> <b class="bold">vprop</b> <b class="bold">vmode</b>
Square brackets enclose optional items unless it appears in boldface, in which case it stands for itself. For example:
Sequence_Declaration ::= <b class="bold">sequence</b> Name [ <b class="bold">(</b>Formal_Parameter_List) ] DEF_SYM Sequence<b class="bold">;</b>
indicates that (F ormal_P arameter_L ist) is an optional syntax item for Sequence_ Declaration, whereas
Sequence <b class="bold">[</b> <b class="bold">*</b>