Boost C++ Libraries Home Libraries People FAQ More


Spirit X3 3.10

Joel de Guzman

Hartmut Kaiser

Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Table of Contents

Syntax Diagram
Parsing Expression Grammar
Attributes of Primitive Components
Attributes of Compound Components
More About Attributes of Compound Components
Attributes of Nonterminals
Quick Start
Warming up
Parser Semantic Actions
Complex - Our first complex parser
Sum - adding numbers
Number List - stuffing numbers into a std::vector
Number List Redux - list syntax
Number List Attribute - one more, with style
Roman Numerals
Employee - Parsing into structs
X3 Program Structure
Annotations - Decorating the ASTs
RExpressions - Recursive ASTs!
Error Handling
Quick Reference
Common Notation
Character Parsers
Numeric Parsers
String Parsers
Auxiliary Parsers
Binary Parsers
Parser Directives
Parser Operators
Parser Semantic Actions
Compound Attribute Rules
Parser Semantic Actions
Spirit V3.10 (Boost V1.78.0)
Spirit V3.0.9 (Boost V1.77.0)
Spirit V3.0.8 (Boost V1.76.0)
Spirit V3.0.7 (Boost V1.74.0)
Spirit V3.0.6 (Boost V1.73.0)
Spirit V3.0.5 (Boost V1.72.0)
Spirit V3.0.4 (Boost V1.71.0)
Spirit V3.0.4 (Boost V1.70.0)
Spirit V3.0.3 (Boost V1.69.0)
Spirit V3.0.2 (Boost V1.68.0)
Spirit V3.0.1 (Boost V1.67.0)

This is the documentation of the newest version of Spirit (currently, V3.10).

Spirit X3 in Boost 1.81 (scheduled to November 2022) will use C++17 features.

Supported compilers will be: * Clang 4 (currently 3.6) * GCC 7 (currently 5) * VS 2017 v15.8 (currently 2015 U3)