private void AddTerm(Term term, TermOperator @operator) { TermItem item = new TermItem() { Operator = @operator, Term = term }; if (_firstTerm == null) { _firstTerm = _lastTerm = item; } else { _lastTerm.NextItem = item; _lastTerm = _lastTerm.NextItem; } }
private Expression ParseTerm() { var factor = ParseFactor(); while (true) { TermOperator termOp = ParseTermOperator(); if (termOp != TermOperator.None) { var right = ParseFactor(); if (right == null) { throw new ParsingException(ErrorKind.Term, Seek, GetNextChar()); } factor = new Term(termOp, factor, right); } else { break; } } return(factor); }
public static void Rule(Term result, Term term, TermOperator op, Factor factor) { result.Value = op.Function(term.Value, factor.Value); }
public static void Rule(Term result, Term term, TermOperator op, Factor factor) { result.Value = op.Function(term.Value, factor.Value); }
public Term(TermOperator termOp, Expression left, Expression right) { Left = left; Right = right; Operator = termOp; }