Expression returns Expression: Multiplication;
Multiplication returns Expression: Addition => ({Multiplication.left = current} '*' right = Addition)*;
Addition returns Expression: Primary => ({Addition.left = current} '+' right = Primary)*;
Primary returns Expression: Integer | '(' Expression ')';
Integer returns Integer: value = INT;
Expression returns Expression: Addition;
Addition returns Expression: Integer => ({Addition.left = current) '+' right = Integer)*;
Integer returns Integer: value = INT;
Expression returns Expression: Addition;
Addition returns Expression: Integer => ({Addition.left = current} '+' right = Addition)?;
Integer returns Integer: value = INT;
Expression returns Expression: Addition;
Addition returns Expression: Integer => ({Addition.left = current} '+' right = Integer)?;
Integer returns Integer: value = INT;