代写 Mini PASCAL Grammar

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