An assembler program is a sequence of blocks.
In a sequence of blocks, every block is either a primitive block or a complex block.
prod instruction can precede the sequence of blocks.
ret instruction can follow the sequence of blocks.
The sequence of blocks can consist of a single block.
A primitive block is a
call instruction or
putback instruction can follow the
A complex block corresponds to a ‘?’ or ‘*’ quantifier or a set of alternatives separated by ‘|’. Every complex block begins with a look-ahead analysis sub-block. Every alternative separated by ‘|’ or subexpression under the ‘?’ or ‘*’ quantifier is a sequence of blocks.
|• Look-ahead Analysis Sub-block|
|• Pipe Alternatives|
|• Question Quantifier|
|• Asterisk Quantifier|