metaparse.qbk 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. [library Boost.Metaparse
  2. [quickbook 1.6]
  3. [copyright 2015 Abel Sinkovics]
  4. [purpose Library for building compile-time parsers]
  5. [id metaparse]
  6. [dirname metaparse]
  7. [license
  8. Distributed under the Boost Software License, Version 1.0.
  9. (See accompanying file LICENSE_1_0.txt or copy at
  10. [@http://www.boost.org/LICENSE_1_0.txt http://www.boost.org/LICENSE_1_0.txt])
  11. ]
  12. [authors [Sinkovics, Abel] ]
  13. [category metaprogramming]
  14. ]
  15. [section Description]
  16. Metaparse is a parser generator library for template metaprograms. The purpose
  17. of this library is to support the creation of parsers that parse at compile
  18. time. This library is intended to be used for embedded domain specific language
  19. creation for C++. The input of the generated parser is a compile time string,
  20. see [link string `string`]. The result of the parsing process is either an
  21. error or any other result the writer of the parser specifies.
  22. The library is similar to Boost.Spirit, however while parsers built with Spirit
  23. parse at run-time, parsers built with Metaparse parse at compile-time. Parsers
  24. built with Metaparse can output:
  25. * types
  26. * constant values
  27. * objects (types with public static members)
  28. * callable C++ functions (types with public static method)
  29. * template metafunction classes
  30. See section [link result_types What can be built from a compile-time string?]
  31. for further details.
  32. Based on C++11 features the library can provide advanced utilities for defining
  33. the input string, the rest of the library works on C++98-based compilers as
  34. well. Note that if you build the tests and examples with Boost.Build using GCC
  35. or Clang, the compiler will not have C++11 (or newer) enabled. To build the
  36. tests and examples in C++11-mode, you need to run `b2 cxxflags="-std=c++11"`.
  37. An external tutorial can be found at
  38. [@https://github.com/sabel83/metaparse_tutorial#metaparse-tutorial https://github.com/sabel83/metaparse_tutorial#metaparse-tutorial]
  39. [endsect]
  40. [section Related publications and blogs]
  41. Ábel Sinkovics, Dave Abrahams: [br]
  42. *Using strings in C++ template metaprograms*, [br]
  43. [@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]
  44. Ábel Sinkovics, Zoltán Porkoláb: [br]
  45. *Domain-Specific Language Integration with C++ Template Metaprogramming*, [br]
  46. In Marjan Mernik (Ed): Formal and Practical Aspects of Domain-Specific
  47. Languages: Recent Developments. Published by Information Science Reference (an
  48. imprint of IGI Global), Hershey PA, USA. ISBN 978-1-4666-2092-6 (hardcover) -
  49. ISBN 978-1-4666-2093-3 (ebook) - ISBN 978-1-4666-2094-0 pp. 33-56.
  50. doi:10.4018/978-1-4666-2092-6.ch002
  51. Ábel Sinkovics, Zoltán Porkoláb: [br]
  52. *Metaparse - Compile-time Parsing with C++ Template Metaprogramming*, [br]
  53. In C++Now! Aspen, Colorado, 15th May, 2012. [br]
  54. [@http://www.youtube.com/watch?v=v3XoWi0XbZk Talk]
  55. Zoltán Porkoláb, Ábel Sinkovics: [br]
  56. *Domain-specific Language Integration with Compile-time Parser Generator
  57. Library*, [br]
  58. In Eelco Visser, Jaakko Järvi, editors, Proceedings of the ninth
  59. international conference on Generative programming and component
  60. engineering (GPCE 2010). ACM, October 2010, pp. 137-146.
  61. [endsect]
  62. [include preface.qbk]
  63. [include getting_started.qbk]
  64. [include manual.qbk]
  65. [include versioning.qbk]
  66. [include performance.qbk]
  67. [include design.qbk]
  68. [include reference.qbk]