public Node ElseIf() { var node = new ElseIfListNode(); while (CurrentToken == TokenCategory.ELSEIF) { var node1 = new ElseIfNode(); Expect(TokenCategory.ELSEIF); Expect(TokenCategory.PARENTHESIS_OPEN); node1.Add(Expr()); Expect(TokenCategory.PARENTHESIS_CLOSE); Expect(TokenCategory.LLAVE_OPEN); node1.Add(StmtList()); Expect(TokenCategory.LLAVE_CLOSE); node.Add(node1); } return(node); }