123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- [library Boost.Metaparse
- [quickbook 1.6]
- [copyright 2015 Abel Sinkovics]
- [purpose Library for building compile-time parsers]
- [id metaparse]
- [dirname metaparse]
- [license
- 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 http://www.boost.org/LICENSE_1_0.txt])
- ]
- [authors [Sinkovics, Abel] ]
- [category metaprogramming]
- ]
- [section Description]
- Metaparse is a parser generator library for template metaprograms. The purpose
- of this library is to support the creation of parsers that parse at compile
- time. This library is intended to be used for embedded domain specific language
- creation for C++. The input of the generated parser is a compile time string,
- see [link string `string`]. The result of the parsing process is either an
- error or any other result the writer of the parser specifies.
- The library is similar to Boost.Spirit, however while parsers built with Spirit
- parse at run-time, parsers built with Metaparse parse at compile-time. Parsers
- built with Metaparse can output:
- * types
- * constant values
- * objects (types with public static members)
- * callable C++ functions (types with public static method)
- * template metafunction classes
- See section [link result_types What can be built from a compile-time string?]
- for further details.
- Based on C++11 features the library can provide advanced utilities for defining
- the input string, the rest of the library works on C++98-based compilers as
- well. Note that if you build the tests and examples with Boost.Build using GCC
- or Clang, the compiler will not have C++11 (or newer) enabled. To build the
- tests and examples in C++11-mode, you need to run `b2 cxxflags="-std=c++11"`.
- An external tutorial can be found at
- [@https://github.com/sabel83/metaparse_tutorial#metaparse-tutorial https://github.com/sabel83/metaparse_tutorial#metaparse-tutorial]
- [endsect]
- [section Related publications and blogs]
- Ábel Sinkovics, Dave Abrahams: [br]
- *Using strings in C++ template metaprograms*, [br]
- [@http://web.archive.org/web/20140217173026/http://cpp-next.com/archive/2012/10/using-strings-in-c-template-metaprograms http://web.archive.org/web/20140217173026/http://cpp-next.com/archive/2012/10/using-strings-in-c-template-metaprograms]
- Ábel Sinkovics, Zoltán Porkoláb: [br]
- *Domain-Specific Language Integration with C++ Template Metaprogramming*, [br]
- In Marjan Mernik (Ed): Formal and Practical Aspects of Domain-Specific
- Languages: Recent Developments. Published by Information Science Reference (an
- imprint of IGI Global), Hershey PA, USA. ISBN 978-1-4666-2092-6 (hardcover) -
- ISBN 978-1-4666-2093-3 (ebook) - ISBN 978-1-4666-2094-0 pp. 33-56.
- doi:10.4018/978-1-4666-2092-6.ch002
- Ábel Sinkovics, Zoltán Porkoláb: [br]
- *Metaparse - Compile-time Parsing with C++ Template Metaprogramming*, [br]
- In C++Now! Aspen, Colorado, 15th May, 2012. [br]
- [@http://www.youtube.com/watch?v=v3XoWi0XbZk Talk]
- Zoltán Porkoláb, Ábel Sinkovics: [br]
- *Domain-specific Language Integration with Compile-time Parser Generator
- Library*, [br]
- In Eelco Visser, Jaakko Järvi, editors, Proceedings of the ninth
- international conference on Generative programming and component
- engineering (GPCE 2010). ACM, October 2010, pp. 137-146.
- [endsect]
- [include preface.qbk]
- [include getting_started.qbk]
- [include manual.qbk]
- [include versioning.qbk]
- [include performance.qbk]
- [include design.qbk]
- [include reference.qbk]
|