Boost C++ Libraries Home Libraries People FAQ More

Next

Spirit 2.59

Joel de Guzman

Hartmut Kaiser

Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)


Table of Contents

Preface
What's New
Spirit V2.5.9 (Boost V1.78.0)
Spirit V2.5.8 (Boost V1.77.0)
Spirit V2.5.8 (Boost V1.76.0)
Spirit V2.5.8 (Boost V1.74.0)
Spirit V2.5.8 (Boost V1.73.0)
Spirit V2.5.8 (Boost V1.72.0)
Spirit V2.5.8 (Boost V1.71.0)
Spirit V2.5.8
Spirit V2.5.7
Spirit V2.5.6
Spirit V2.5.5
Spirit V2.5.4
Spirit V2.5.3
Spirit V2.5.2
Spirit V2.5.1
Spirit V2.5
Spirit V2.4.2
Spirit V2.4.1
Spirit V2.4
Spirit V2.3
Spirit V2.2
Spirit V2.1
Spirit Classic
Introduction
Structure
Include
Abstracts
Syntax Diagram
Parsing Expression Grammar
Attributes
Attributes of Primitive Components
Attributes of Compound Components
More About Attributes of Compound Components
Attributes of Rules and Grammars
Qi - Writing Parsers
Tutorials
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
Mini XML - ASTs!
Mini XML - Error Handling
Quick Reference
Common Notation
Qi Parsers
Compound Attribute Rules
Nonterminals
Parser Semantic Actions
Phoenix
Reference
Parser Concepts
Parser Basics
Parser API
Semantic Actions with Parsers
Auto Parser
Auxiliary Parsers
Binary Parsers
Character Parsers
Parser Directives
Nonterminal Parsers
Numeric Parsers
Parser Operators
Stream Parsers
String Parsers
Qi Index
Karma - Writing Generators
Tutorials
Quick Start
Warming up
Generator Semantic Actions
Complex - A first more complex generator
Complex - Made easier
Complex - Fully Integrated
Number List - Printing Numbers From a std::vector
Matrix of Numbers - Printing Numbers From a Matrix
Quick Reference
Common Notation
Karma Generators
Compound Attribute Rules
Nonterminals
Generator Semantic Actions
Phoenix
Reference
Generator Concepts
Generator Basics
Generator API
Semantic Actions with Generators
Auto Generator
Auxiliary Generators
Binary Generators
Char Generators
Generator Directives
Nonterminal Generators
Numeric Generators
Generator Operators
Stream Generators
String Generators
Performance Measurements
Performance of Numeric Generators
Karma Index
Lex - Writing Lexical Analyzers
Introduction to Spirit.Lex
Spirit.Lex Tutorials
Spirit.Lex Tutorials Overview
Quickstart 1 - A word counter using Spirit.Lex
Quickstart 2 - A better word counter using Spirit.Lex
Quickstart 3 - Counting Words Using a Parser
Abstracts
Lexer Primitives
Tokenizing Input Data
Lexer Semantic Actions
The Static Lexer Model
Quick Reference
Common Notation
Primitive Lexer Components
Semantic Actions
Phoenix
Supported Regular Expressions
Reference
Lexer Concepts
Basics
Lexer API
Token definition Primitives
Advanced
In Depth
Parsers in Depth
Customization of Spirit's Attribute Handling
Determine if a Type Should be Treated as a Container (Qi and Karma)
Determine if a Type Should be Treated as a String (Qi and Karma)
Determine Whether a Component Handles Container Attributes (Qi and Karma)
Transform an Attribute to a Different Type (Qi and Karma)
Store a Parsed Attribute Value (Qi)
Store Parsed Attribute Values into a Container (Qi)
Re-Initialize an Attribute Value before Parsing (Qi)
Extract an Attribute Value to Generate Output (Karma)
Extract From a Container Attribute Value to Generate Output (Karma)
Extract Attribute Values to Generate Output from a Container (Karma)
Extract a C-Style String to Generate Output from a String Type (Karma)
Atomically Extract an Attribute Value from a Container (Karma)
Create Components from Attributes (Qi and Karma)
Supporting Libraries
The multi pass iterator
The line position iterator
The utree data structure
Spirit FAQ
Notes
Porting from Spirit 1.8.x
Style Guide
Rationale
Spirit Repository
Acknowledgments
References

This is the documentation of the latest LTS (C++03) version of Spirit (currently, V2.59). For the newest (C++14) version, please follow to Spirit.X3. If you're looking for the documentation of Spirit's first generation version (formerly Spirit V1.8), see Spirit.Classic.


Next