Пример #1
0
        public Node FunDef()
        {
            //‹id›(‹id-list›?){‹var-def›* ‹stmt-list›*}
            var n = new FunDef()
            {
                AnchorToken = Expect(TokenCategory.IDENTIFIER)
            };

            Expect(TokenCategory.OPENEDPAR);
            //if(CurrentToken != TokenCategory.CLOSEDPAR){
            n.Add(IdList());
            //}
            Expect(TokenCategory.CLOSEDPAR);
            Expect(TokenCategory.OPENEDCURLY);

            //while(CurrentToken == TokenCategory.VAR){
            //n.Add(VarDef());
            //}
            n.Add(VarDefList());
            //if(firstOfStmt.Contains(CurrentToken)){
            n.Add(StmtList());
            //}
            Expect(TokenCategory.CLOSEDCURLY);
            return(n);
        }
Пример #2
0
        //<fundef>//
        public Node FunDef()
        {
            var result = new FunDef();

            result.Add(new Identifier()
            {
                AnchorToken = Expect(TokenCategory.IDENTIFIER)
            });

            Expect(TokenCategory.PARENTHESIS_OPEN);

            result.Add(ParamList());

            Expect(TokenCategory.PARENTHESIS_CLOSE);
            Expect(TokenCategory.CURLY_BRACKET_OPEN);

            result.Add(VarDefList());
            result.Add(StmtList());

            Expect(TokenCategory.CURLY_BRACKET_CLOSE);

            return(result);
        }