MimIR
MimIR is my Intermediate Representation
Loading...
Searching...
No Matches
driver.h File Reference
#include <filesystem>
#include <list>
#include <string>
#include <utility>
#include <absl/container/flat_hash_map.h>
#include <absl/container/node_hash_map.h>
#include <fe/driver.h>
#include <fe/log.h>
#include <fe/profile.h>
#include "mim/flags.h"
#include "mim/plugin.h"
#include "mim/world.h"
#include "mim/ast/tok.h"
Include dependency graph for driver.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  mim::PlainNames
 Renders Defs with their plain Def::sym instead of Def::unique_name while alive. More...
class  mim::Diag
 Renders a diagnostic through PlainNames and - if that turned out ambiguous - once more with Def::unique_name. More...
class  mim::Driver
 Some "global" variables needed all over the place. More...
struct  mim::Driver::Names
class  mim::Driver::Paths
 An ordered list of directories. More...
class  mim::Driver::Imports
struct  mim::Driver::Imports::Entry

Namespaces

namespace  mim

Macros

#define GET_FUN_PTR(plugin, f)

Typedefs

using mim::Keys = fe::SymTab<ast::Tok::Tag, ast::Num_Keys + ast::Num_Subst>
 The reserved words the ast::Lexer looks up, keyed by the Sym it has just interned.

Class Documentation

◆ mim::Driver::Names

struct mim::Driver::Names

Definition at line 91 of file driver.h.

Class Members
bool clashed = false
size_t depth = 0
flat_hash_map< Sym, u32 > sym2gid

◆ mim::Driver::Imports::Entry

struct mim::Driver::Imports::Entry

Definition at line 141 of file driver.h.

Class Members
bool path The directive spelled a path (import "a/b.mim") rather than a name.
const Src * src
Sym sym
Tag tag

Macro Definition Documentation

◆ GET_FUN_PTR

#define GET_FUN_PTR ( plugin,
f )
Value:
get_fun_ptr<decltype(f)>(plugin, #f)

Definition at line 232 of file driver.h.