private Expression ParseFactor() { var primary = ParsePrimary(); while (true) { FactorOperation factOp = ParseFactorOperation(); if (factOp != FactorOperation.None) { var right = ParsePrimary(); if (right == null) { throw new ParsingException(ErrorKind.Factor, Seek, GetNextChar()); } primary = new Factor(factOp, primary, right); } else { break; } } return(primary); }
public Factor(FactorOperation factOp, Expression left, Expression right) { Operator = factOp; Left = left; Right = right; }