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); }
//<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); }