<PrgModule> -> <mparam> main ( <mparam> ) { <Define_list> <Statement_list> } %
<mparam> -> void |  %

<Define_list> -> <Define> <_Define_list> | %
<Define> -> <type> <id_list> ; %
<type> -> char | int %
<id_list> -> id <ContinList> %
<ContinList> -> , id <ContinList> | %
<_Define_list> -> <Define> <_Define_list> | %

<Statement_list> -> <Statement> <ContinueStatement_list> | %
<ContinueStatement_list> -> <Statement> <ContinueStatement_list> | %
<Statement> -> <Assign> | <if> | <block> | ; | <for> %

<Assign> -> id = <Expression> ; %
<Expression> -> <term> <Exp_Continue> %
<term> -> id | const %
<Exp_Continue> -> * <term> <Exp_Continue> | + <term> <Exp_Continue> | - <term> <Exp_Continue> | %

<if> -> if ( <Condition> ) <Statement> else <Statement> %
<Condition> -> <term> <Continue_Condition> %
<Continue_Condition> -> < <term> | > <term> | <= <term> | >= <term> | != <term> %

<block> -> { <Statement_list> } %
<for> -> for ( <init> ; <cond> ; <Adjst> ) <Statement> %
<init> -> <term> = <Expression> %
<Adjst> -> id = id + const %
<cond> -> id <Continue_Condition1> const %
<Continue_Condition1> -> < | > | <= | <= %
