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

funcdef() public method

public funcdef ( ) : FunctionDef
return FunctionDef
        public FunctionDef funcdef()
        {
            var start = Expect(TokenType.Def).Start;
            var token = Expect(TokenType.ID);
            var fnName = new Identifier((string) token.Value, filename, token.Start, token.End);
            Debug.Print("  Parsing {0}", fnName.Name);
            List<Parameter> parms = parameters();
            Exp t = null;
            if (PeekAndDiscard(TokenType.LARROW))
            {
                t = test();
            }
            Expect(TokenType.COLON);
            var s = suite();
            var vararg = parms.Where(p => p.vararg).SingleOrDefault();
            var kwarg = parms.Where(p => p.keyarg).SingleOrDefault();
            return new FunctionDef(
                fnName, 
                parms,
                vararg!= null? vararg.Id : null, 
                kwarg != null ? kwarg.Id : null,
                t,
                s, 
                filename, start, s.End);
        }

Usage Example

Esempio n. 1
0
 private Statement ParseFuncdef(string input)
 {
     var lex = Lex(input);
     var par = new Parser("foo.py", lex);
     return par.funcdef();
 }