Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

This is the documentation for an old version of Boost. Click here to view this page for the latest version.
Next

Spirit 2.1

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
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
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
Semantic Actions
Phoenix
Reference
Parser Concepts
Basics
Parse API
Action
Auxiliary
Binary
Char
Directive
Nonterminal
Numeric
Operator
Stream
String
Karma - Writing Generators
Tutorials
Quick Start
Warming up
Semantic Actions
Complex - A first more complex generator
Complex - Made easier
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
Semantic Actions
Phoenix
Reference
Generator Concepts
Basics
Generate API
Action
Auxiliary
Binary
Char
Directive
Nonterminal
Numeric
Operator
Stream
String
Performance Measurements
Performance of Numeric Generators
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)
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 Attribute Values to Generate Output from a Container (Karma)
Supporting libraries
The multi pass iterator
Spirit FAQ
Notes
Porting from Spirit 1.8.x
Style Guide
Spirit Repository
Acknowledgments
References

This is the documentation of the newest version of Spirit (currently, V2.1). If you're looking for the documentation of Spirit's previous version (formerly Spirit V1.8), see Spirit.Classic.

Last revised: November 10, 2009 at 02:03:20 GMT


Next