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>