]> gitweb.ps.run Git - toc/blobdiff - src/repr.h
structs and functions in ctx
[toc] / src / repr.h
index b30aecd1a8f15aa1fc9c827804ef6c01693856e8..709528d3c8b55986ea65e73c164ff69f27d95855 100644 (file)
@@ -39,8 +39,11 @@ struct Stmt;
 \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
@@ -79,11 +82,13 @@ struct Body
 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
@@ -108,16 +113,12 @@ struct Namespace
 {\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