Introduction
The Soul project contains two C++ tools: a lexical analyzer generator and a parser generator. In addition it contains a number of C++ libraries implemented using these tools.
Versions 4.0.0 and 4.1.0 have been implemented using new exciting C++ features: modules and concepts.
The tools and libraries of the current version of the Soul project has been implemented and tested using Microsoft Visual Studio 2022 Community Edition for Windows version 17.5.3
using the x64 configuration, with Boost C++ version 1.77 libraries installed.
Requirements
The requirements for using these tools and libraries are:
- Microsoft Visual Studio 2022 with 'Desktop Development with C++' tool chain installed.
- Boost C++ Libraries installed
Components
The project includes the following components:
- slg: Soul lexer generator
- spg: Soul parser generator
- xml_parser: an XML parser with SAX-like API.
- dom: A DOM library.
- dom_parser: an XML parser that parses an XML document to a DOM document.
- xpath: XPath query engine.
- serialization: XML serialization library.
- xmlsergen: a tool that generates XML serializable C++ classes implemented using the serialization library.
- rex: a regular expression library.
Examples
The project contains two examples:
- minilang language example that contains a lexer and a parser implemented using slg and spg.
- book_server example implemented using the xmlsergen tool that uses Soul library components.