- See also:
-
Common Text Transformation Library
- Overview
- Introduction
- CTTL license
- Portability and debugging
- Thread safety
- Terminology
- Grammar
- Mutable universe
- Download CTTL
- Sample programs
- Substrings
- Introduction
- Identity vector
- The input class
- The node class
- Node creation
- Node identity
- Copying nodes
- Node assignment
- Node swap
- Offset-like behavior of the node
- Node navigation
- Node data access
- Adaptor behavior of the node
- Edge classes
- Edge creation
- Copying edges
- Edge assignment
- Edge swap
- String-like behavior of the edge
- Adaptor behavior of the edge
- Example
- Grammar evaluation
- Introduction
- Alphabets and symbols
- Grammar expression
- Overview
- Left factoring
- Left recursion
- Parseable universe
- Grammar evaluation methods
- Method match()
- Method find(), search
- Method bang_find(), repeatable search
- Leftmost terminal symbol
- Search transitivity
- Search parsers
- Method runtime_match()
- Evaluation result
- Production rule functions
- Semantic actions
- Strict universe: strict_edge_T
- White space policies
- Pre-defined policies
- policy_default
- policy_space<>
- policy_space< flag_follow_region >
- policy_space< flag_follow_space|flag_follow_region >
- policy_space< flag_cpp_comments >
- Stream parsers
- Grammar tutorial
- Abstract
- Arithmetic expression parser sample
- Sample output
- Program organization
- The grammar
- Semantic action example
- CTTL grammar reference
- Introduction
- Lexeme functions
- symbol()
- entity()
- begin()
- end()
- symbol(true)
- symbol(false)
- begin(true)
- begin(false)
- begin(std::set<std::string>&)
- symbol(char)
- entity(char)
- begin(char)
- end(char)
- entity(is...)
- begin(is...)
- end(is...)
- first(is...)
- symbol(text)
- entity(text)
- begin(text)
- end(text)
- first(text)
- Function adaptors
- rule(), grammar rule adaptor
- CTTL_RULE()
- CTTL_MEMBER_RULE()
- CTTL_STATIC_RULE()
- Grammar expression adaptors
- Node expression adaptor
- Edge expression adaptor
- Entity expression adaptor
- Quotes
- Quote evaluation rules
- Quote formats
- Generic quote, quote(RL,RM,RR)
- Asymmetric quote, quote(true,RM,RR)
- Single character quote, quote(char,RM,char)
- Single wide character quote, wchar_quote(wchar_t,RM,wchar_t)
- ANSI single quote, ansi_single_quote(RM)
- ANSI double quote, ansi_double_quote(RM)
- C single quote, c_single_quote(RM)
- C double quote, c_double_quote(RM)
- Wide char ANSI single quote, wchar_ansi_single_quote(RM)
- Wide char ANSI double quote, wchar_ansi_double_quote(RM)
- Wide char C single quote, wchar_c_single_quote(RM)
- Wide char C double quote, wchar_c_double_quote(RM)
- Leximatic metaphors
- literal() and wchar_literal()
- entity() metaphor
- Backtracking vs. predictive parsing
- Overloaded operators
- Search operator, '!'
- Repeatable search operator, '!!'
- Unary logical not operator, '-'
- Unary Kleene star operator, '*'
- Unary Kleene plus operator, '+'
- Binary Kleene star operator, '*'
- Binary Kleene plus operator, '+'
- Greedy Kleene plus operator, '+'
- Binary set complement, '-'
- Binary sequence operator, '+'
- Binary set intersection operator, '&'
- Binary concatenation operator, '^'
- Binary set union operator, '|'
- Binary POSIX union operator, '||'
- CTTL Lambda Expressions
-
introduction
-
lambda requirements
-
lambda expression
-
example of data deposit
-
example of subscript
access to values
-
example of text
transformation
-
example of closure
(delayed function call)
-
scalar primitive
-
scalar interface
-
stack primitive
-
overloaded stack operators
-
overloaded operators
-
connecting lambda
expressions with CTTL grammar rules
-
Kleene star modifier
(epsilon parser)
-
Kleene plus modifier
(direct parser)
-
closure (delayed function call)
-
higher-order functions
-
pre-defined
higher-order function expressions
-
syntax trees
-
arithmetic interpreter
example
-
integer tree
-
lambda debugging and tracing
- Lambda samples:
-
alphabetical index of lambda samples
-
lambda grammars
-
lambda expressions
-
stl container access
-
stl iterator access
-
text transformation samples
-
function composition samples
-
scalar primitives
-
overloaded subscript operator
-
std::stack access
-
cttl::node, cttl::edge access
-
std::set, std::pair access
-
std::map, std::pair access
-
std::bitset access
-
stream output iterators
- Grammar debugging and tracing
- Introduction
- Trace-level macros
- CTTL_TRACE_TRIVIAL
- CTTL_TRACE_RULES
- CTTL_TRACE_EVERYTHING
- Grammar trace macros
- CTTL_TRACE_MESSAGE
- CTTL_RULE
- CTTL_MEMBER_RULE
- CTTL_STATIC_RULE
- Trace sample
- Trace symbols
- Table of trace symbols
- Advice
- Utility Classes and Functions
- Utility Classes:
-
cttl::inode_reader Representation
of a readable node of a
syntax tree.
-
cttl::inode_writer Representation
of a writable node of a
syntax tree.
-
cttl::offset_stack_guard Utility
class to track cttl::input positions in nested grammars.
- Utility Functions:
-
cttl::file2string() Reads data from a text
file and returns a string containing the data.
-
cttl::string2file() Writes data from the
string into a text file.
-
cttl::itos() Converts integer to string.
-
cttl::pipe_input_2_vector() Inputs data
from standard input and stores it in a vector of strings provided by the user.
-
cttl::pipe_input_2_string() Inputs data
from standard input and stores it in a string provided by the user.
-
cttl::current_time() Returns current time.
-
cttl::time2string() Converts time_t to
string.
- External Links
- Quick Reference
Copyright © 1997-2006 Igor Kholodov
mailto:cttl@users.sourceforge.net.
Permission to copy, use, modify, sell and distribute this document
is granted provided this copyright notice appears in all copies.
This document is provided "as is" without express or implied
warranty, and with no claim as to its suitability for any purpose.
Generated on Thu Nov 2 17:44:53 2006 for Common Text Transformation Library by
1.3.9.1