]> gitweb.ps.run Git - toc/commitdiff
example and todo
authorPatrick Schönberger <patrick.schoenberger@posteo.de>
Wed, 11 Aug 2021 15:18:26 +0000 (17:18 +0200)
committerPatrick Schönberger <patrick.schoenberger@posteo.de>
Wed, 11 Aug 2021 15:18:26 +0000 (17:18 +0200)
src/main.cpp
src/repr.h
test/test2.toc
todo.txt

index e7c03e6d348f29ab3cd59c908787e19e73ca35f3..3523cdfbabe1b685d2d30d09d80ab66524a422d8 100644 (file)
@@ -31,8 +31,7 @@ int main(int argc, const char * argv[])
     return 1;\r
   }\r
 \r
-  std::string s = tree->toStringTree(&parser) + "\n";\r
-\r
+  //std::string s = tree->toStringTree(&parser) + "\n";\r
   //std::cout << "Parse Tree: " << s << std::endl;\r
 \r
   Program prg = getProgram(prog, nullptr);\r
@@ -41,9 +40,6 @@ int main(int argc, const char * argv[])
   {\r
     tocProgram(std::cout, prg);\r
 \r
-    // if (!checkProgram(prg))\r
-    //   std::cerr << "Error" << std::endl;\r
-\r
     std::ofstream ofs("output.c");\r
     tocProgram(ofs, prg);\r
     ofs.close();\r
index b30aecd1a8f15aa1fc9c827804ef6c01693856e8..ff54f971c731da26a9f2da64a683c5c86cc01d79 100644 (file)
@@ -79,11 +79,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
index 6e8d4f885b2363c99dba37751829a4f56c0fa772..1447c8f3ea5cc70e961fb74d4ce492f1e465086e 100644 (file)
@@ -35,6 +35,11 @@ struct S1<T> {
   }\r
 }\r
 \r
+struct S2 {\r
+  abc(): S2 { }\r
+  xyz(): S2 { }\r
+}\r
+\r
 func generic1<A>(a1 : A, a2 : A) : A {\r
   return a1 + a2;\r
 }\r
@@ -57,5 +62,8 @@ func main(argc : int, argv : char**) : int {
   generic1<int>(1, 2);\r
   generic1<double>(3.4, 5.6);\r
 \r
+  var s: S2;\r
+  s.abc().xyz();\r
+\r
   return 0;\r
 }
\ No newline at end of file
index 25b447305dd13049952be76d42b6f01b9b002b98..e066ece2148c6195fb8f728637d79945dea0aeaf 100644 (file)
--- a/todo.txt
+++ b/todo.txt
@@ -44,17 +44,18 @@ define grammar:
 \r
 \r
 \r
-\r
+~14.08 Abgabe Paper/Code\r
 \r
 \r
 Missing:\r
-- unions\r
+- unions/enums\r
 - const/static/extern\r
-- operator precedence\r
+- operator precedence(given by C compiler)\r
 - bitfields\r
 - nested bodies {}\r
 - multiple files\r
 - call outer functions with same name (::f1())\r
+- automatically select function/var/struct from namespace recursively\r
 - generic methods\r
 - nested type instantiation\r
 - automatic dereference/->\r