Rule 1 program -> function_name function_body program Rule 2 program -> empty Rule 3 function_name -> VAR LPAREN RPAREN Rule 4 function_body -> BEGIN multiple_statements END Rule 5 multiple_statements -> statement multiple_statements Rule 6 multiple_statements -> empty Rule 7 statement -> PRINT expression Rule 8 statement -> SLEEP LPAREN NUMBER RPAREN Rule 9 statement -> VAR EQUALS expression Rule 10 statement -> VAR LPAREN RPAREN Rule 11 statement -> expression Rule 12 statement -> if_part only_then_part Rule 13 only_then_part -> multiple_statements ENDIF Rule 14 statement -> if_part then_part else_part Rule 15 if_part -> IF LPAREN expression RPAREN Rule 16 then_part -> multiple_statements Rule 17 else_part -> ELSE multiple_statements ENDIF Rule 18 statement -> while_head while_condition while_body Rule 19 while_head -> WHILE Rule 20 while_condition -> LPAREN expression RPAREN Rule 21 while_body -> multiple_statements ENDWHILE Rule 22 statement -> BREAK Rule 23 expression -> OUTB LPAREN NUMBER factor RPAREN Rule 24 expression -> INB LPAREN NUMBER RPAREN Rule 25 expression -> INPUT Rule 26 expression -> bitwise_ex Rule 27 expression -> expression AND bitwise_ex Rule 28 expression -> expression OR bitwise_ex Rule 29 bitwise_ex -> rel_ex Rule 30 bitwise_ex -> bitwise_ex LTOP rel_ex Rule 31 bitwise_ex -> bitwise_ex LEOP rel_ex Rule 32 bitwise_ex -> bitwise_ex GTOP rel_ex Rule 33 bitwise_ex -> bitwise_ex GEOP rel_ex Rule 34 bitwise_ex -> bitwise_ex EQOP rel_ex Rule 35 bitwise_ex -> bitwise_ex NEOP rel_ex Rule 36 rel_ex -> shift_term Rule 37 rel_ex -> rel_ex LSHIFTOP shift_term Rule 38 rel_ex -> rel_ex RSHIFTOP shift_term Rule 39 shift_term -> term Rule 40 shift_term -> shift_term ADDOP term Rule 41 shift_term -> shift_term SUBOP term Rule 42 term -> ufactor Rule 43 term -> term MULOP ufactor Rule 44 term -> term DIVOP ufactor Rule 45 ufactor -> factor Rule 46 ufactor -> SUBOP factor Rule 47 factor -> NUMBER Rule 48 factor -> VAR Rule 49 factor -> LPAREN expression RPAREN Rule 50 empty ->