FUNCTION := TYPE MODIFIERS _IDENTIFIER ARGSLIST ( ';' | STMTLIST )
TYPE := 'int'
MODIFIERS := '*'*
-ARGSLIST := '(' [ TYPE _IDENTIFIER ( ',' TYPE _IDENTIFIER)]* ] ')'
+ARGSLIST := '(' [ TYPE MODIFIERS _IDENTIFIER ( ',' TYPE MODIFIERS _IDENTIFIER )* ] ')'
STMTLIST := '{' ( VARIABLE | STATEMENT | STMTLIST )* '}'
VARIABLE := TYPE MODIFIERS _IDENTIFIER [ = EXPRESSION ] ';'
STATEMENT := ( ';' | EXPRESSION ';' | WHILE | IF | RETURN )
P6EXPR := P5EXPR ( '==' P5EXPR )*
P5EXPR := P3EXPR ( ( '<' | '>' ) P3EXPR )*
P3EXPR := P2EXPR ( ( '+' | '-' ) P2EXPR )*
-P2EXPR := _NUMBER ( ( '*' | '/' ) _NUMBER )*
\ No newline at end of file
+P2EXPR := SUBEXPR ( ( '*' | '/' ) SUBEXPR )*
+SUBEXPR := ( '(' EXPRESSION ')' | _NUMBER | _IDENTIFIER )