FE 0.13.1
Header-only C++ frontend library
Loading...
Searching...
No Matches
Class Hierarchy

Go to the graphical class hierarchy

This inheritance list is sorted roughly, but not completely, alphabetically:
 Cfe::Lexer< K, S >::AheadA decoded code point together with the byte range it occupies
 Cfe::Arena::Allocator< T >An allocator in order to use this Arena for containers
 Cfe::Parser< Tok, Tag, K, S >::AnchorRAII helper that anchors a Tag for its lifetime; use Parser::anchor to build one
 Cfe::ArenaAn arena pre-allocates so-called pages of size Arena::page_size_
 Cfe::BitsetA dynamically growing set of bits with small storage optimization
 Cfe::utf8::Char32Wrapper for char32_t with an operator<< that writes UTF-8
 Cfe::cli::CliHolds the Opts, parses argc/argv, and renders the help
 Cfe::DbgThe debug info of an entity: where it came from and what it was called
 Cfe::DbgKeyOpaque handle to a Dbg interned in a Driver; see Driver::dbg
 Cfe::Arena::Deleter< T >
 Cfe::DiagHow a diagnostic lays out - and how much of it an Error keeps
  Cfe::CodeDiagThe Diag a Driver installs by default: colors a `citation` and drops its backticks - or keeps them verbatim without color; \` is a literal backtick
 Cfe::Dbg::Eq
 Cfe::Sym::Eq
 Cfe::Sym::String::Equal
 Cfe::XTrie< D, K, N >::Data::Equal
 Cfe::ErrorCollects diagnostics and hands each to the Diag that lays it out
 Cstd::exception
  Cfe::Error::BailWhat Error::ack and Error::bail throw
 Cstd::false_type
  Cfe::is_bit_enum< T >
 Cfe::Log::FmtLoc< Args >A std::format_string that remembers where it was written
 Cstd::formatter
  Cfe::basic_ostream_formatter< char >
  Cfe::basic_ostream_formatter< Char >Make types that support ostream operators available for std::format
 Cfe::cli::GroupStarts a new section in the help output; see fe::cli::group
 Cfe::Bitset::Hash
 Cfe::Dbg::Hash
 Cfe::Sym::Hash
 Cfe::Sym::String::Hash
 Cfe::XTrie< D, K, N >::Data::Hash
 Cstd::integral_constant
  Cstd::tuple_size< fe::Span< T, N > >
 Cfe::Bitset::iteratorIterates over the indices of all set bits in ascending order
 Cfe::XTrie< D, K, N >::Set::iterator
 Cfe::Join< R >Join elements of range with sep
 Cfe::Lexer< K, S >The blueprint for a lexer with a buffer of K tokens to peek into the future (Lexer::ahead)
 Cfe::LocLocation within a Src: the half-open byte range [Loc::begin, Loc::end)
 Cfe::LogFacility to log what you are doing
 Cstd::logic_error
  Cfe::sys::CmdNotFoundThrown by sys::require_cmd when a command cannot be located on the system
 Cstd::pmr::memory_resource
  Cfe::Arena::MemoryResourceA memory resource bridge in order to use this Arena for pmr containers
 Cfe::Error::MsgOne Tag::Error or Tag::Warn together with the Notes that belong to it
 Cfe::lct::Node< P, K >This is an intrusive Link-Cut-Tree
 Cfe::Error::NoteA secondary message elaborating a Msg
 Cfe::cli::OptOne option or positional argument; build one with fe::cli::opt, fe::cli::arg, or fe::cli::help
 Cfe::Parser< Tok, Tag, K, S >The blueprint for a recursive descent/ ascent parser using a K lookahead of Tokens
 Cfe::PathHashHashes a std::filesystem::path - consistent with its operator==, which compares lexically
 Cfe::PosByte offset into a Src; pass around as value
 Cfe::ProfilerRecords wall-clock timings for (possibly nested) named Profiler::Spans and reports them in various formats
 Cfe::Bitset::referenceProxy that Bitset::operator[] hands out to read/write the bit it refers to
 Cfe::Restore< T, Get, Set >RAII guard that restores a value at the end of the scope
 Cfe::Restore< T, nullptr, nullptr >Restores ref to its current value at the end of the scope
 Cfe::Ring< T, N >A ring buffer with N elements
 Cfe::Ring< T, 1 >Specialization if N == 1 - doesn't need a ring
 Cfe::Ring< T, 2 >Specialization if N == 2; doesn't need a ring, we just copy
 Cfe::RuntimeCast< B >Inherit from this class using CRTP, for some nice dynamic_cast-style wrappers
 Cfe::XTrie< D, K, N >::Set
 Cfe::SnippetThe underlined source excerpt that goes below a diagnostic
 Cfe::Profiler::SpanA single run
 Cstd::span
  Cfe::Span< const T, N >
  Cfe::Span< T, N >This is a thin wrapper for std::span<T, N> with the following additional features:
 Cfe::SrcThe content of one source file together with the offsets its rows start at
 Cfe::SrcMapInterns the text - and the std::filesystem::path - of every file a Loc may point into
 Cfe::StreamFn< F >Wrap a callable f(std::ostream&) -> std::ostream& so it streams via operator<< and std::format
 Cfe::Sym::String
 Cfe::SymA Symbol just wraps a pointer to Sym::String, so pass Sym itself around as value
 Cfe::SymPoolHash set where all strings - wrapped in Symbol - live in
  Cfe::DriverUse/derive from this class for "global" variables that you need all over the place
 Cfe::TabKeeps track of indentation level during output
 Cfe::Parser< Tok, Tag, K, S >::Tracker
 Cstd::tuple_element< I, fe::Span< T, N > >
 Cdetail::VectorBase
  Cfe::Vector< fe::Dbg >
  Cfe::Vector< T, N, A >This is a thin wrapper for absl::InlinedVector<T, N, A> which is a drop-in replacement for std::vector<T, A>
 Cfe::Worklist< Set, C >A worklist that pushes each element at most once
 Cfe::XTrie< D, K, N >Hash-consed sets of D*
 Carray< fe::Lexer::Ahead, N >
 Carray< Tok, N >