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

expr_stmt() public method

public expr_stmt ( ) : Statement
return Statement
        public Statement expr_stmt()
        {
            // Hack to deal with print statement from python 2.*
            if (Peek(TokenType.ID, "print"))
            {
                return print_stmt();
            }
            var lhs = testlist_star_expr();
            if (Peek(augassign_set))
            {
                var op = augassign();
                Exp e2;
                if (Peek(TokenType.Yield))
                    e2 = yield_expr();
                else 
                    e2 = testlist();
                lhs = new AssignExp(lhs, op, e2, filename, lhs.Start, e2.End);
            }
            else 
            {
                Exp rhs = null;
                while (PeekAndDiscard(TokenType.EQ))
                {
                    if (Peek(TokenType.Yield))
                        rhs = yield_expr();
                    else 
                        rhs = testlist_star_expr();
                }
                if (rhs != null)
                    lhs = new AssignExp(lhs, Op.Assign, rhs, filename, lhs.Start, rhs.End);
            }
            return new ExpStatement(lhs, filename, lhs.Start, lhs.End);
        }