Commit 9168f718efd6842abe20e1f98ab12a805a8d6a02

Thomas de Grivel 2024-06-25T09:26:11

lib: turn .facts files into .c3 files

diff --git a/lib/c3/0.1/array.c3 b/lib/c3/0.1/array.c3
index d635438..1669853 100644
--- a/lib/c3/0.1/array.c3
+++ b/lib/c3/0.1/array.c3
@@ -1,4 +1,7 @@
 defmodule Array do
 
   def cast = cfn Array "array_init_cast" (Result, Sym, Tag)
+
+  def data = cfn Tag "array_data_tag" (Tag, Tag, Result)
+
 end
diff --git a/lib/c3/0.1/array.facts b/lib/c3/0.1/array.facts
deleted file mode 100644
index b19dcc1..0000000
--- a/lib/c3/0.1/array.facts
+++ /dev/null
@@ -1,7 +0,0 @@
-%{module: C3.Facts.Dump,
-  version: 1}
-add {Array, :is_a, :module}
-replace {Array, :symbol, Array.cast}
-replace {Array.cast, :symbol_value, cfn Array "array_init_cast" (Result, Tag)}
-add {Array, :symbol, Array.data}
-replace {Array.data, :symbol_value, cfn Tag "array_data_tag" (Tag, Tag, Result)}
diff --git a/lib/c3/0.1/gl/dvec2.facts b/lib/c3/0.1/gl/dvec2.facts
deleted file mode 100644
index a45e5f3..0000000
--- a/lib/c3/0.1/gl/dvec2.facts
+++ /dev/null
@@ -1,5 +0,0 @@
-%{module: C3.Facts.Dump,
-  version: 1}
-replace {GL.Dvec2, :is_a, :module}
-replace {GL.Dvec2, :defstruct, [x: (F64) 0,
-                                y: (F64) 0]}
diff --git a/lib/c3/0.1/gl/dvec3.facts b/lib/c3/0.1/gl/dvec3.facts
deleted file mode 100644
index 981ae52..0000000
--- a/lib/c3/0.1/gl/dvec3.facts
+++ /dev/null
@@ -1,6 +0,0 @@
-%{module: C3.Facts.Dump,
-  version: 1}
-replace {GL.Dvec3, :is_a, :module}
-replace {GL.Dvec3, :defstruct, [x: (F64) 0,
-                                y: (F64) 0,
-                                z: (F64) 0]}
diff --git a/lib/c3/0.1/gl/object.facts b/lib/c3/0.1/gl/object.facts
deleted file mode 100644
index 3cf4fb1..0000000
--- a/lib/c3/0.1/gl/object.facts
+++ /dev/null
@@ -1,10 +0,0 @@
-%{module: C3.Facts.Dump,
-  version: 1}
-replace {GL.Object, :is_a, :module}
-replace {GL.Object, :defstruct, [vertex: (GL.Vertex[]) {},
-                                 triangle: (GL.Triangle[]) {},
-                                 gl_mode: (U32) 0,
-                                 gl_vao: (U32) 0,
-                                 gl_vbo: (U32) 0,
-                                 gl_ebo: (U32) 0]}
-replace {GL.Object, :clean, cfn Void "gl_object_clean" (GL.Object)}
diff --git a/lib/c3/0.1/gl/sphere.facts b/lib/c3/0.1/gl/sphere.facts
deleted file mode 100644
index 30e03a4..0000000
--- a/lib/c3/0.1/gl/sphere.facts
+++ /dev/null
@@ -1,7 +0,0 @@
-%{module: C3.Facts.Dump,
-  version: 1}
-replace {GL.Sphere, :is_a, :module}
-replace {GL.Sphere, :defstruct, [object: %GL.Object{},
-                                 segments_u: (Uw) 3,
-                                 segments_v: (Uw) 2]}
-replace {GL.Sphere, :clean, cfn Void "gl_sphere_clean" (GL.Sphere)}
diff --git a/lib/c3/0.1/gl/triangle.facts b/lib/c3/0.1/gl/triangle.facts
deleted file mode 100644
index 273167d..0000000
--- a/lib/c3/0.1/gl/triangle.facts
+++ /dev/null
@@ -1,6 +0,0 @@
-%{module: C3.Facts.Dump,
-  version: 1}
-replace {GL.Triangle, :is_a, :module}
-replace {GL.Triangle, :defstruct, [a: (U32) 0,
-                                   b: (U32) 1,
-                                   c: (U32) 2]}
diff --git a/lib/c3/0.1/gl/vec2.facts b/lib/c3/0.1/gl/vec2.facts
deleted file mode 100644
index 97f3576..0000000
--- a/lib/c3/0.1/gl/vec2.facts
+++ /dev/null
@@ -1,5 +0,0 @@
-%{module: C3.Facts.Dump,
-  version: 1}
-replace {GL.Vec2, :is_a, :module}
-replace {GL.Vec2, :defstruct, [x: (F32) 0,
-                               y: (F32) 0]}
diff --git a/lib/c3/0.1/gl/vec3.facts b/lib/c3/0.1/gl/vec3.facts
deleted file mode 100644
index 2c5f514..0000000
--- a/lib/c3/0.1/gl/vec3.facts
+++ /dev/null
@@ -1,6 +0,0 @@
-%{module: C3.Facts.Dump,
-  version: 1}
-replace {GL.Vec3, :is_a, :module}
-replace {GL.Vec3, :defstruct, [x: (F32) 0,
-                               y: (F32) 0,
-                               z: (F32) 0]}
diff --git a/lib/c3/0.1/gl/vertex.facts b/lib/c3/0.1/gl/vertex.facts
deleted file mode 100644
index b76260f..0000000
--- a/lib/c3/0.1/gl/vertex.facts
+++ /dev/null
@@ -1,6 +0,0 @@
-%{module: C3.Facts.Dump,
-  version: 1}
-replace {GL.Vertex, :is_a, :module}
-replace {GL.Vertex, :defstruct, [position:  %GL.Vec3{},
-                                 normal:    %GL.Vec3{},
-                                 tex_coord: %GL.Vec2{}]}
diff --git a/lib/c3/0.1/list.facts b/lib/c3/0.1/list.facts
deleted file mode 100644
index 17a8cad..0000000
--- a/lib/c3/0.1/list.facts
+++ /dev/null
@@ -1,20 +0,0 @@
-%{module: C3.Facts.Dump,
-  version: 1}
-add {List, :is_a, :module}
-add {List, :symbol, List.cast}
-add {List, :symbol, List.map}
-add {List, :symbol, List.reverse}
-replace {List.cast, :symbol_value, cfn List "list_init_cast" (Result, Tag)}
-replace {List.map, :symbol_value, fn {
-  ([], _) do
-    []
-  end
-  ([a | b], f) {
-    [f(a) | List.map(b, f)]
-  }
-}}
-replace {List.reverse, :symbol_value, fn {
-  (x) { List.reverse(x, []) }
-  ([], acc) { acc }
-  ([a | b], acc) { List.reverse(b, [a | acc]) }
-}}