Team Zero+ Final

Grammar: Source Code                                     
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


Output:

Debug:



Abstract Syntax Tree:


Target Code: