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

raise_stmt() public method

public raise_stmt ( ) : Statement
return Statement
        public Statement raise_stmt()
        {
            Exp exToRaise = null;
            Exp exOriginal = null;
            var token = Expect(TokenType.Raise);
            var posStart = token.Start;
            var posEnd = token.End;
            if (!Peek(stmt_follow))
            {
                exToRaise = test();
                posEnd = exToRaise.End;
                if (PeekAndDiscard(TokenType.From))
                {
                    exOriginal = test();
                    posEnd = exOriginal.End;
                }
                else if (PeekAndDiscard(TokenType.COMMA))
                {
                    Exp ex2 = test();
                    Exp ex3 = new NoneExp(filename, ex2.End, ex2.End);
                    if (PeekAndDiscard(TokenType.COMMA))
                    {
                        ex3 = test();
                    }
                    exOriginal = new PyTuple(new List<Exp> { ex2, ex3 }, filename, posStart, (ex3 ?? ex2).End);
                    posEnd = exOriginal.End;
                }
            }
            return new RaiseStatement(exToRaise, exOriginal, filename, posStart, posEnd);
        }