This library generates parsers for C++ code.
Within CTTL's framework, a substring is an object that interacts with text segments that are enclosed by the STL's std::basic_string template class. The library offers two distinct template classes, cttl::const_edge and cttl::edge, for constant and mutable data access, respectively, which represent CTTL substrings. Users have the ability to compare, insert, delete, or replace substrings across multiple text inputs, and if the content of the text changes, substrings adjust their positions accordingly. CTTL proudly boasts a guarantee that the substrings remain stable with respect to potentially mutable text.
Moreover, CTTL permits substrings to be parsed with an EBNF-like grammar. The lexical analysis engine integrated within CTTL generates a sequence of substrings corresponding to the parsed symbols. Additionally, BNF and EBNF grammars can be composed directly in C++. CTTL provides features such as template meta-programming and operator overloading that allow users to write C++ expressions that describe grammar rules, with no additional steps of parsing, compiling, or generating source code necessary. Finally, the CTTL program uses an LL(INF)-parser, which is a recursive-descent parser with infinite lookahead, and is compiled to implement these rules.
Version 301: N/A