boolean isOperition = current.type == TokeType.OPERATION;
if (isOperition && current.value.equals("+")) {
nextToken();
value = new MulExpression(left, value);
node = parseAddOperation(value);
} else if (isOperition && current.value.equals("-")) {
nextToken();
value = new MulExpression(left, value);
node = parseSubOperation(value);
} else if (isOperition && current.value.equals("*")) {
nextToken();
value = new MulExpression(left, value);
node = parseMulOperation(value);
} else if (isOperition && current.value.equals("/")) {
nextToken();
value = new MulExpression(left, value);
node = parseDivOperation(value);
} else if (isOperition && current.value.equals("%")) {
nextToken();
value = new ModExpression(left, value);
node = parseModOperation(value);
} else {
node = new MulExpression(left, value);
}
return node;
}