FE 0.15.0
A C++23 toolkit for writing compiler/interpreter frontends.
Loading...
Searching...
No Matches
Class List
Here are the classes, structs, unions and interfaces with brief descriptions:
 Nfe
  Nlct
   CNodeThis is an intrusive Link-Cut-Tree
  Nsys
   CCmdNotFoundThrown by sys::require_cmd when a command cannot be located on the system
  NtermLightweight stream-based terminal colors for diagnostics and CLI output
   CCitedAn owning message fragment that spells `citations` of its own; what format_cite yields
   CCiteA borrowed fragment whose backticks stay markup; format_cite escapes every other argument
  Nutf8UTF-8 helpers for decoding byte streams, encoding char32_t values, and running ASCII-style character classification on char32_t
   CChar32Wrapper for char32_t with an operator<< that writes UTF-8
  CArenaAn arena pre-allocates so-called pages of size Arena::page_size_
   CMemoryResourceA memory resource bridge in order to use this Arena for pmr containers
   CAllocatorAn allocator in order to use this Arena for containers
   CDeleter
   CRefA non-owning pointer into an Arena
  Cbasic_ostream_formatterMake types that support ostream operators available for std::format
  CBitsetA dynamically growing set of bits with small storage optimization
   CreferenceProxy that Bitset::operator[] hands out to read/write the bit it refers to
   CiteratorIterates over the indices of all set bits in ascending order
   CHash
  CCiteA borrowed fragment whose backticks stay markup; format_cite escapes every other argument
  CCitedAn owning message fragment that spells `citations` of its own; what format_cite yields
  CCliA small command-line parser for a single command - no subcommands
  CCodeDiagThe 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
  CDbgThe debug info of an entity: where it came from and what it was called
   CHash
   CEq
  CDbgKeyOpaque handle to a Dbg interned in a Driver; see Driver::dbg
  CDiagHow a diagnostic lays out - and how much of it an Error keeps
  CDriverUse/derive from this class for "global" variables that you need all over the place
  CErrorCollects diagnostics and hands each to the Diag that lays it out
   CBailWhat Error::ack and Error::bail throw
   CNoteA secondary message elaborating a Msg
   CMsgOne Tag::Error or Tag::Warn together with the Notes that belong to it
  Cis_bit_enum
  CJoinJoin elements of range with sep
  CLexerThe blueprint for a lexer with a buffer of K tokens to peek into the future (Lexer::ahead)
   CAheadA decoded code point together with the byte range it occupies
  CLocLocation within a Src: the half-open byte range [Loc::begin, Loc::end)
  CLogFacility to log what you are doing
   CFmtLocA cite_string that remembers where it was written
  CParserThe blueprint for a recursive descent/ ascent parser using a K lookahead of Tokens
   CTracker
   CAnchorRAII helper that anchors a Tag for its lifetime; use Parser::anchor to build one
  CPathHashHashes a std::filesystem::path - consistent with its operator==, which compares lexically
  CPatriciaHash-consed, immutable sets of D*, ordered by an unsigned id the elements carry themselves
   CSetAn immutable set - really just a tagged pointer, so copy it around freely
    CiteratorYields the D* in ascending Key::key order
  CPosByte offset into a Src; pass around as value
  CProfilerRecords wall-clock timings for (possibly nested) named Profiler::Spans and reports them in various formats
   CSpanA single run
  CRestoreRAII 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
  CRingA 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
  CRuntimeCastInherit from this class using CRTP, for some nice dynamic_cast-style wrappers
  CSnippetThe underlined source excerpt that goes below a diagnostic
  CSpanThis is a thin wrapper for std::span<T, N> with the following additional features:
  CSrcThe content of one source file together with the offsets its rows start at
  CSrcMapInterns the text - and the std::filesystem::path - of every file a Loc may point into
  CStreamFnWrap a callable f(std::ostream&) -> std::ostream& so it streams via operator<< and std::format
  CSymA Symbol just wraps a pointer to Sym::String, so pass Sym itself around as value
   CString
    CEqual
    CHashHashes the characters, not the pointer - String::Equal compares them, and the two have to agree
   CHash
   CEq
  CSymPoolHash set where all strings - wrapped in Symbol - live in
  CSymTabA fixed-capacity Symbol -> V map for a closed set of Size entries: filled once, then only looked up - a Lexer's reserved words, say
  CTabKeeps track of indentation level during output
  CVectorThis is a thin wrapper for absl::InlinedVector<T, N, A> which is a drop-in replacement for std::vector<T, A>
  CVLACRTP 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
  CWorklistA worklist that pushes each element at most once
  CXTrieHash-consed sets of D*
   CSet
    Citerator
 Nstd
  Ctuple_size< fe::Span< T, N > >
  Ctuple_element< I, fe::Span< T, N > >