Expressive Compile Time Parsers

Speaker: Alon Wolf

Audience level: [ Intermediate | Advanced ]

Modern C++ has many language features and that can be leveraged to design an expressive API or a domain-specific language. However, these features are limited by the syntax rules of C++. To overcome this limitation, we will discuss the use of compile-time parsers to write more expressive code with zero overhead.

We will analyze open-source compile-time parsing libraries from C++11 to C++23 and compare their APIs in terms of flexibility and expressiveness. Additionally, we will delve into the techniques used in the implementation of these libraries to handle compile-time parsing under the constraints of compile-time execution.

Finally, we will highlight how these libraries can be used to reduce boilerplate and write compile-time regular expressions, parsers, parser generators, Rust's macro rules and reflection features. Attendees of this talk will gain a deeper understanding of the power and versatility of compile-time parsers in C++.