Mini PASCAL Grammar
Key
ALL_CAPS
Non-Terminals
lower case and symbols
Terminals (Tokens)
|
grammar metasymbol OR
A b | c == A b
A c
{ term, term, .. }
Select1 Set
• PROGRAM → program id ; DECLARATIONS CMPD_STMT .
period
• ID_LIST → id ID_LIST_END
• ID_LIST_END → , ID_LIST |
• DECLARATIONS → var ID_LIST : TYPE ; DECLARATIONS |
• TYPE → integer |
real |
string
• CMPD_STMT → begin OPT_STMTS end
• OPT_STMTS → |
STMT_LIST
• STMT_LIST → STMT STMT_LIST_END
• STMT_LIST_END → ; STMT_LIST |
•
• STMT → id := EXPR |
CMPD_STMT |
if COND then STMT else STMT |
while COND do STMT
• COND → EXPR RELOP EXPR
• EXPR → VAL EXPR_END
• EXPR_END → ARITH_OP VAL EXPR_END |
• ARITH_OP → + |
– |
* |
/
• RELOP → < |
<= |
> |
>= |
<> |
=
• VAL → id |
int_lit |
real_lit |
char_lit |
( EXPR ) |
SIGN VAL
• SIGN → + |
−