Gyoji Compiler
Loading...
Searching...
No Matches
gyoji-mir.hpp
1#pragma once
2
3#include <gyoji-mir/types.hpp>
4#include <gyoji-mir/operations.hpp>
5#include <gyoji-mir/functions.hpp>
6#include <gyoji-mir/symbols.hpp>
7
37namespace Gyoji::mir {
38
57 class MIR {
58 public:
59 MIR();
60 ~MIR();
61
74 const Types & get_types() const;
85 Types & get_types();
86
99 const Symbols & get_symbols() const;
100
113
127 const Functions & get_functions() const;
140
181 void dump(FILE *out) const;
182 private:
183 Functions functions;
184 Types types;
185 Symbols symbols;
186 };
187};
Container for functions.
Definition functions.hpp:24
The middle-tier intermediate representation (MIR) of a translation unit.
Definition gyoji-mir.hpp:57
const Symbols & get_symbols() const
Immutable symbol table.
Definition mir.cpp:32
void dump(FILE *out) const
Dump MIR for debugging.
Definition mir.cpp:36
const Types & get_types() const
Immutable type container.
Definition mir.cpp:12
const Functions & get_functions() const
Immutable function table.
Definition mir.cpp:20
Symbol table for the intermediate representation (MIR)
Definition symbols.hpp:72
Set of types extracted from a translation unit.
Definition types.hpp:40
Middle intermediate representation (MIR) of a translation unit.
Definition gyoji-mir.hpp:37