program : main_statement_list main_statement_list : statement | main_statement_list statement statement : declaration ";" | selection | iteration | put_function ";" | set_function ";" | mass_expr ";" | "{" statement_list "}" statement_list : statement | statement_list statement declaration : TYPE declarator_list declarator_list : declarator | declarator_list "," declarator declarator : NO_DEFINE | NO_DEFINE "[" one_expr "]" | NO_DEFINE "(" one_expr "," one_expr ")" | NO_DEFINE "(" one_expr "," one_expr "," one_expr ")" selection : if.prefix statement | if.prefix statement "else" statement if.prefix : "if" "(" cond_expr ")" iteration : for.prefix statement | while.prefix statement for.prefix : "for" "(" mass_expr ";" cond_expr ";" mass_expr ")" while.prefix : "while" "(" cond_expr ")" put_function : "put" "(" put_argment ")" put_argment : STRING | one_int_variable | one_flt_variable | int_variable | flt_variable set_function : "set" "(" set_argment ")" set_argment : address_variable "," PARAMETER "," set_argment_sub | address_variable "," PARAMETER "," PARAMETER set_argment_sub : one_expr | set_argment_sub "," one_expr mass_expr : one_expr | mass_expr "," one_expr | addr_int_variable "=" one_expr | addr_flt_variable "=" one_expr | addr_one_int_variable "=" one_expr | addr_one_flt_variable "=" one_expr one_expr : value_variable | function | "(" one_expr ")" | "(" TYPE ")" one_expr %prec TOPOP | "++" one_expr | "--" one_expr | "+" one_expr %prec TOPOP | "-" one_expr %prec TOPOP | one_expr "*" one_expr | one_expr "/" one_expr | one_expr "%" one_expr | one_expr "+" one_expr | one_expr "-" one_expr | one_expr "++" | one_expr "--" cond_expr : "(" cond_expr ")" | one_expr ">" one_expr | one_expr ">=" one_expr | one_expr "<" one_expr | one_expr "<=" one_expr | one_expr "==" one_expr | one_expr "!=" one_expr | one_expr "||" one_expr | one_expr "&&" one_expr address_variable : iCUB_VAL | fCUB_VAL | iIMG_VAL | fIMG_VAL | addr_one_int_variable | addr_one_flt_variable addr_one_int_variable : INT_VAL addr_one_flt_variable : FLT_VAL addr_int_variable : iCUB_VAL "(" one_expr "," one_expr "," one_expr ")" | iIMG_VAL "(" one_expr "," one_expr ")" | INT_VAL "[" one_expr "]" addr_flt_variable : fCUB_VAL "(" one_expr "," one_expr "," one_expr ")" | fIMG_VAL "(" one_expr "," one_expr ")" | FLT_VAL "[" one_expr "]" value_variable : constant | one_int_variable | one_flt_variable | int_variable | flt_variable constant : INTEGER | FLOTING | STRING one_int_variable : INT_VAL one_flt_variable : FLT_VAL int_variable : iCUB_VAL "(" one_expr "," one_expr "," one_expr ")" | iIMG_VAL "(" one_expr "," one_expr ")" | INT_VAL "[" one_expr "]" flt_variable : fCUB_VAL "(" one_expr "," one_expr "," one_expr ")" | fIMG_VAL "(" one_expr "," one_expr ")" | FLT_VAL "[" one_expr "]" function : FUNC "(" argment_list ")" argment_list : | argment | argment_list "," argment argment : address_variable | constant | NO_DEFINE | PARAMETER