Beispiel #1
0
        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;
            }
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
 public static void Rule(Term result, Term term, TermOperator op, Factor factor)
 {
     result.Value = op.Function(term.Value, factor.Value);
 }
Beispiel #4
0
 public static void Rule(Term result, Term term, TermOperator op, Factor factor)
 {
     result.Value = op.Function(term.Value, factor.Value);
 }
Beispiel #5
0
 public Term(TermOperator termOp, Expression left, Expression right)
 {
     Left     = left;
     Right    = right;
     Operator = termOp;
 }