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

suite() public method

public suite ( ) : SuiteStatement
return SuiteStatement
        public SuiteStatement suite()
        {
            List<Statement> stmts = new List<Statement>();
            if (Peek(TokenType.COMMENT))
            {
                stmts.Add(comment_stmt());
            }
            if (PeekAndDiscard(TokenType.NEWLINE))
            {
                while (!Peek(TokenType.INDENT))
                {
                    var token = Expect(TokenType.COMMENT);
                    stmts.Add(new CommentStatement(filename, token.Start, token.End) { comment = (string) token.Value });
                    Expect(TokenType.NEWLINE);
                }
                Expect(TokenType.INDENT);
                while (!Peek(TokenType.EOF) && !PeekAndDiscard(TokenType.DEDENT))
                {
                    stmts.Add(stmt());
                }
            }
            else
            {
                var stmt = simple_stmt();
                stmts.Add(stmt);
            }
            return new SuiteStatement(stmts, filename, stmts[0].Start, stmts.Last().End);
        }

Usage Example

Example #1
0
 private Statement ParseSuite(string input)
 {
     var lex = Lex(input);
     lex.Get();
     var par = new Parser("foo.py", lex);
     return par.suite();
 }