\r
struct Context\r
{\r
+ std::optional<std::string> name;\r
std::shared_ptr<Context> parent;\r
std::vector<Variable> variables;\r
+ std::vector<Function> functions;\r
+ std::vector<Struct> structs;\r
};\r
\r
enum class TypeModifierType\r
struct Function\r
{\r
std::string name;\r
- std::vector<std::string> genericTypeNames;\r
- std::vector<std::vector<Type>> genericInstantiations;\r
Type returnType;\r
std::vector<Variable> parameters;\r
bool defined;\r
+\r
+ std::vector<std::string> genericTypeNames;\r
+ std::vector<std::vector<Type>> genericInstantiations;\r
+\r
Body body;\r
};\r
\r
{\r
std::string name;\r
std::shared_ptr<Context> ctx;\r
- std::vector<Struct> structs;\r
- std::vector<Function> functions;\r
std::vector<Namespace> namespaces;\r
};\r
\r
struct Program\r
{\r
std::shared_ptr<Context> ctx;\r
- std::vector<Struct> structs;\r
- std::vector<Function> functions;\r
std::vector<Namespace> namespaces;\r
};\r
\r