Pytocs.Syntax.Parser.term C# (CSharp) Method

term() public method

public term ( ) : Exp
return Exp
        public Exp term()
        {
            var e = factor();
            if (e == null)
                return null;
            for (; ; )
            {
                Op op;
                switch (lexer.Peek().Type)
                {
                case TokenType.OP_STAR: op = Op.Mul; break;
                case TokenType.OP_SLASH: op = Op.Div; break;
                case TokenType.OP_SLASHSLASH: op = Op.IDiv; break;
                case TokenType.OP_PERCENT: op = Op.Mod; break;
                default: return e;
                }
                lexer.Get();
                var r = factor();
                if (r == null)
                    Unexpected();
                e = new BinExp(op, e, r, filename, e.Start, r.End);
            }
        }