|
FE 0.15.0
A C++23 toolkit for writing compiler/interpreter frontends.
|
| Nfe | |
| Nlct | |
| CNode | This is an intrusive Link-Cut-Tree |
| Nsys | |
| CCmdNotFound | Thrown by sys::require_cmd when a command cannot be located on the system |
| Nterm | Lightweight stream-based terminal colors for diagnostics and CLI output |
| CCited | An owning message fragment that spells `citations` of its own; what format_cite yields |
| CCite | A borrowed fragment whose backticks stay markup; format_cite escapes every other argument |
| Nutf8 | UTF-8 helpers for decoding byte streams, encoding char32_t values, and running ASCII-style character classification on char32_t |
| CChar32 | Wrapper for char32_t with an operator<< that writes UTF-8 |
| CArena | An arena pre-allocates so-called pages of size Arena::page_size_ |
| CMemoryResource | A memory resource bridge in order to use this Arena for pmr containers |
| CAllocator | An allocator in order to use this Arena for containers |
| CDeleter | |
| CRef | A non-owning pointer into an Arena |
| Cbasic_ostream_formatter | Make types that support ostream operators available for std::format |
| CBitset | A dynamically growing set of bits with small storage optimization |
| Creference | Proxy that Bitset::operator[] hands out to read/write the bit it refers to |
| Citerator | Iterates over the indices of all set bits in ascending order |
| CHash | |
| CCite | A borrowed fragment whose backticks stay markup; format_cite escapes every other argument |
| CCited | An owning message fragment that spells `citations` of its own; what format_cite yields |
| CCli | A small command-line parser for a single command - no subcommands |
| CCodeDiag | The Diag a Driver installs by default: colors a `citation` and drops its backticks - or keeps them verbatim without color; \` is a literal backtick and \\ a literal backslash |
| CDbg | The debug info of an entity: where it came from and what it was called |
| CHash | |
| CEq | |
| CDbgKey | Opaque handle to a Dbg interned in a Driver; see Driver::dbg |
| CDiag | How a diagnostic lays out - and how much of it an Error keeps |
| CDriver | Use/derive from this class for "global" variables that you need all over the place |
| CError | Collects diagnostics and hands each to the Diag that lays it out |
| CBail | What Error::ack and Error::bail throw |
| CNote | A secondary message elaborating a Msg |
| CMsg | One Tag::Error or Tag::Warn together with the Notes that belong to it |
| Cis_bit_enum | |
| CJoin | Join elements of range with sep |
| CLexer | The blueprint for a lexer with a buffer of K tokens to peek into the future (Lexer::ahead) |
| CAhead | A decoded code point together with the byte range it occupies |
| CLoc | Location within a Src: the half-open byte range [Loc::begin, Loc::end) |
| CLog | Facility to log what you are doing |
| CFmtLoc | A cite_string that remembers where it was written |
| CParser | The blueprint for a recursive descent/ ascent parser using a K lookahead of Tokens |
| CTracker | |
| CAnchor | RAII helper that anchors a Tag for its lifetime; use Parser::anchor to build one |
| CPathHash | Hashes a std::filesystem::path - consistent with its operator==, which compares lexically |
| CPatricia | Hash-consed, immutable sets of D*, ordered by an unsigned id the elements carry themselves |
| CSet | An immutable set - really just a tagged pointer, so copy it around freely |
| Citerator | Yields the D* in ascending Key::key order |
| CPos | Byte offset into a Src; pass around as value |
| CProfiler | Records wall-clock timings for (possibly nested) named Profiler::Spans and reports them in various formats |
| CSpan | A single run |
| CRestore | RAII guard that restores a value at the end of the scope |
| CRestore< T, nullptr, nullptr > | Restores ref to its current value at the end of the scope |
| CRing | A ring buffer with N elements |
| CRing< T, 1 > | Specialization if N == 1 - doesn't need a ring |
| CRing< T, 2 > | Specialization if N == 2; doesn't need a ring, we just copy |
| CRuntimeCast | Inherit from this class using CRTP, for some nice dynamic_cast-style wrappers |
| CSnippet | The underlined source excerpt that goes below a diagnostic |
| CSpan | This is a thin wrapper for std::span<T, N> with the following additional features: |
| CSrc | The content of one source file together with the offsets its rows start at |
| CSrcMap | Interns the text - and the std::filesystem::path - of every file a Loc may point into |
| CStreamFn | Wrap a callable f(std::ostream&) -> std::ostream& so it streams via operator<< and std::format |
| CSym | A Symbol just wraps a pointer to Sym::String, so pass Sym itself around as value |
| CString | |
| CEqual | |
| CHash | Hashes the characters, not the pointer - String::Equal compares them, and the two have to agree |
| CHash | |
| CEq | |
| CSymPool | Hash set where all strings - wrapped in Symbol - live in |
| CSymTab | A fixed-capacity Symbol -> V map for a closed set of Size entries: filled once, then only looked up - a Lexer's reserved words, say |
| CTab | Keeps track of indentation level during output |
| CVector | This is a thin wrapper for absl::InlinedVector<T, N, A> which is a drop-in replacement for std::vector<T, A> |
| CVLA | CRTP base that gives Self one VLA per element type in Self::VLA_Types directly behind it in memory - the C flexible array member, generalized to several arrays of different type |
| CWorklist | A worklist that pushes each element at most once |
| CXTrie | Hash-consed sets of D* |
| CSet | |
| Citerator | |
| Nstd | |
| Ctuple_size< fe::Span< T, N > > | |
| Ctuple_element< I, fe::Span< T, N > > |