Abbreviation Meaning
KW Keyword
TK Token
SB Symbol
Decl Declartion
EMPTY $\varepsilon$

Token List - TK

Data Meaning
NONE
IDENT Identifier
NUMBER
CHAR
EOF

Keyword List - KW

Data Meaning
PROGRAM
CONST
TYPE int, float, char
VAR
INTEGER int
CHAR char
ARRAY
OF
FUNCTION
PROCEDURE
BEGIN {
END }
CALL
IF
THEN
ELSE
WHILE
DO
FOR
TO

Symbol List - SB

Data Meaning
SEMICOLON ;
COLON :
PERIOD .
COMMA ,
ASSIGN =
EQ ==
NEQ !==
LT >
LE >=
GT <
GE <=
PLUS +
MINUS -
TIMES *
SLASH /
LPAR Left parenthesis (
RPAR Right parenthesis )
LSEL Left Square Brackets [
RSEL Right Square Brackets ]

Tổng cộng 90 productions

<Pro> ::= KW_PROGRAM TK_INDENT SB_SEMICOLON <Block> **SB_PERIOD**

Có 5 Block

Constant → Type → Variable → Function, Procedure → Statement <Block><Block2><Block3><Block4><Block5>

<Block> ::= KW_CONST <ConstDecl> <ConstDecls> <Block2>
        ::= <Block2>
<ConstDecls> ::= <ConstDecl> <ConstDecls>
             ::= EMPTY

<ConstDecl> ::= TK_IDENT SB_EQUAL <Constant> SB_SEMICOLON
<Block2> ::= KW_TYPE <TypeDecl> <TypeDecls> <Block3>
				 ::= <Block3>