From the Back Cover
Write good regexes and parsers with the Perl 6 programming language. You’ll see how regexes are used for searching, parsing, and validation: in particular the grammar extension makes them uniquely suitable for parsing, the main focus of this book. Written by Perl 6 expert Moritz Lenz, a core contributor of Rakudo, Parsing with Perl 6 Regexes and Grammars starts from the very basics of regular expressions, and then explores how they integrate with regular Perl 6 code. Then follows a deeper exploration of how regexes work under the hood and a discussion of common techniques for constructing regexes and exploring the data under scrutiny. Later material goes beyond relatively simple formats to reusable named regexes and grammars, which permit code reuse in grammars, and shows how to write parsers for more involved data formats. Error reporting and case studies wrap up the topic.
While regexes allow you to search for patterns in text and validate input, Perl 6 regexes advance that concept: you’ll see how they are easier to read, yet much more powerful, than the traditional "Perl-compatible regular expression". With improved reusability and backtracking control, you will be able to write complete parsers with the help of this book.
- Discover the building blocks of Perl 6 regexes
- Handle regex mechanics and master useful regex techniques
- Extract data and work with patterns among these use cases
- Reuse named regexes and other grammars as components or templates
- Write full parsers, including advanced error reporting and data extraction
- Learn how to parse nested scopes and indention-based formats
About the Author
Moritz Lenz is a software engineer and architect. In the Perl community, he is well known for his contributions to the Perl 6 programming language, the Rakudo Perl 6 compiler, related test suite, infrastructure and tools. At his employer, noris network AG, he introduced continuous delivery for many in-house developed applications, and now wants to share his experience with the wider world.