Gyoji Compiler
Loading...
Searching...
No Matches
gyoji-analysis.hpp
1#pragma once
2#include <gyoji-mir.hpp>
3#include <gyoji-context.hpp>
4
36namespace Gyoji::analysis {
37
50 public:
53 virtual void check(const Gyoji::mir::MIR & mir) const = 0;
54
55 Gyoji::context::CompilerContext & get_compiler_context() const;
56 const std::string & get_name() const;
57 private:
58 Gyoji::context::CompilerContext & compiler_context;
59 std::string name;
60 };
61
73 public:
76
77 virtual void check(const Gyoji::mir::MIR & mir) const;
78 private:
79 void check_type(const Gyoji::mir::Type & type) const;
80 };
81
100 public:
103
104 virtual void check(const Gyoji::mir::MIR & mir) const;
105 private:
106 void check(const Gyoji::mir::Function & function) const;
107 };
108
117 public:
120 virtual void check(const Gyoji::mir::MIR & mir) const;
121 private:
122 void check(const Gyoji::mir::Function & function) const;
123 };
124
135 public:
138 virtual void check(const Gyoji::mir::MIR & mir) const;
139 };
140
152 public:
155 virtual void check(const Gyoji::mir::MIR & mir) const;
156 };
157
158};
159
Performs the borrow-checker algorithm.
Definition gyoji-analysis.hpp:116
Performs checks for return-value consistency.
Definition gyoji-analysis.hpp:134
Check that all types have been fully declared before use.
Definition gyoji-analysis.hpp:72
Checks for the existence of unreachable code.
Definition gyoji-analysis.hpp:99
This pass ensures that every variable that has been declared is also paired with an un-declare.
Definition gyoji-analysis.hpp:151
Abstract interface to analysis passes.
Definition gyoji-analysis.hpp:49
Compiler Context.
Definition gyoji-context.hpp:30
Function inside a translation unit.
Definition functions.hpp:303
The middle-tier intermediate representation (MIR) of a translation unit.
Definition gyoji-mir.hpp:57
This represents a type as declared in a translation unit.
Definition types.hpp:299
Analysis pass performs checks to ensure semantic consistency.
Definition gyoji-analysis.hpp:36