<prog> -> <opisanie> main ( ) { <define_list> <operlist> } <opis_fun> %
<opisanie> -> <prototype_f> | %
<prototype_f> -> <one_prot> <pr> %
<one_prot> -> <tip> id ( <parlist_pr> ) ; %
<pr> -> <prototype_f> | %
<parlist_pr> -> <tip> id <pparlist_pr> %
<pparlist_pr> -> , <tip> id <pparlist_pr> | %
<define_list> -> <define> <define_list> | %
<define> -> <tip> <id_list> ; %
<tip> -> <tip1> | unsigned <tip1> %
<tip1> -> int | float | void %
<id_list> -> id <mas> <continlist> %
<continlist> -> , id <mas> <continlist> | %
<mas> -> [ const ] | %
<opis_fun> -> <tip> id ( <parlist> ) { <operlist> } | %
<parlist> -> <tip> id <pparlist> %
<pparlist> -> , <tip> id <pparlist> | %
<block> -> { <operlist> } %
<operlist> -> <label> <oper> ; <poperlist> %
<poperlist> -> <operlist> | %
<label> -> const : | %
<oper> -> <block> | <do_while> | <switch> | <goto> | return <ret> | id <procpr> | printf ( <pr_arg> ) | scanf ( <pr_arg> ) %
<pr_arg> -> <slag> <ppr_arg> %
<ppr_arg> -> , <slag> | %
<goto> -> goto <slag> %
<do_while> -> do <operlist> while <exp> %
<switch> -> switch id { <caselist> <def> } %
<def> -> default : <operlist> break ; | % 
<caselist> -> case const : <operlist> break ; <pcaselist> %
<pcaselist> -> <caselist> | %
<ret> -> <slag> | %
<procpr> -> <prsv> | <param> <pparam> %
<pparam> -> <prsv> | %
<prsv> -> = <exp> %
<exp> -> ( <slag> <pexp> ) | <slag> <pexp> %
<pexp> -> <binop1> <exp> | <binop2> <exp> | <binop3> <exp> | <binop4> <exp> | <binop5> <exp> | <binop6> <exp> | <binop7> <exp> | <binop8> <exp> | <binop9> <exp> |  %
<slag> -> const | id <param1> | cos ( <exp> ) %
<param1> -> <param> | %
<param> -> ( <idlist> ) | [ <slag> ] %
<idlist> -> id <pidlist> %
<pidlist> -> , id <pidlist> |  %
<binop1> -> + %
<binop2> -> ++ %
<binop3> -> != %
<binop4> -> += %
<binop5> -> > %
<binop6> -> == %
<binop7> -> / %
<binop8> -> && %
<binop9> -> * %