| 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>