Program |
::== |
Statement $
|
Statement |
::== |
print ( Expr ) |
|
::== |
id = Expr |
|
::==
|
IfExpr
|
|
::==
|
WhileExpr
|
|
::==
|
VarDecl
|
|
::== |
{StatementList } |
StatementList |
::== |
Statement StatementList |
|
::== |
epsilon |
WhileExpr
|
::==
|
while ( CompExpr )
{
StatementList }
|
IfExpr
|
::==
|
if ( CompExpr )
{
StatementList }
|
Expr |
::== |
IntExpr
|
|
::== |
CharExpr
|
|
::== |
id |
IntExpr
|
::==
|
digit op Expr
|
|
::==
|
digit
|
CharExpr
|
::==
|
" CharList "
|
CompExpr
|
::==
|
c_arg c_op c_arg
|
CharList
|
::==
|
Char CharList
|
|
::==
|
Space CharList
|
|
::==
|
epsilon
|
VarDecl
|
::==
|
Type Id
|
Type
|
::==
|
int | char
|
Id
|
::==
|
Char
|
Char
|
::==
|
a |b | c ... z |
Space
|
::==
|
the space character
|
digit |
::== |
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8
| 9 | 0 |
op |
::== |
+
|
c_op
|
::==
|
==
|
c_arg
|
::==
|
Id | digit
|
Note: $ denotes end of file
// denotes comment
Test Cases
|
|