|
FE 0.15.0
A C++23 toolkit for writing compiler/interpreter frontends.
|
#include <cassert>#include <array>#include <bit>#include <iosfwd>#include <optional>#include <string>#include <unordered_map>#include <unordered_set>#include "fe/arena.h"#include "fe/hash.h"Go to the source code of this file.
Classes | |
| class | fe::Sym |
| A Symbol just wraps a pointer to Sym::String, so pass Sym itself around as value. More... | |
| struct | fe::Sym::String |
| struct | fe::Sym::String::Equal |
| struct | fe::Sym::String::Hash |
| Hashes the characters, not the pointer - String::Equal compares them, and the two have to agree. More... | |
| struct | fe::Sym::Hash |
| struct | fe::Sym::Eq |
| class | fe::SymTab< V, Size > |
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. More... | |
| class | fe::SymPool |
| Hash set where all strings - wrapped in Symbol - live in. More... | |
Namespaces | |
| namespace | fe |
Typedefs | |
SymMap/SymSet | |
Set/Map is keyed by pointer - which is hashed in SymPool. | |
| template<class V> | |
| using | fe::SymMap = std::unordered_map<Sym, V, Sym::Hash, Sym::Eq> |
| using | fe::SymSet = std::unordered_set<Sym, Sym::Hash, Sym::Eq> |