This book provides a thorough and self-contained treatment of analytic combinatorics, centred around the notion of a generating function. In the first part of the book, the authors develop a very general framework for symbolic description of classes of combinatorial structures. This framework allows one to easily express the link between combinatorial classes and their corresponding generating functions, both in the unlabelled and labelled setting. The second part of the book deals with applications of complex analysis in combinatorial enumeration, with a main focus on coefficient asymptotics established by singularity analysis and contour integration. In the third part of the book, the authors explain how to apply analysis of multivariate generating functions in the study of limit laws for distributions of various parameters in random combinatorial structures. The presentation of all these topics is very well organised, starting from basic notions and proceeding towards the most advanced recent developments of the theory. In the appendix, the authors give an overview of basic probability and analysis, as well as other necessary preliminary concepts. The book provides an ample amount of examples and illustrations, as well as a comprehensive bibliography. It is valuable both as a reference work for researchers working in the field and as an accessible introduction suitable for students at an advanced graduate level.