lib/kinda.ex
defmodule Kinda do
alias Kinda.CodeGen.KindDecl
require Logger
@moduledoc """
Documentation for `Kinda`.
"""
def unwrap_ref(%{ref: ref}) do
ref
end
def unwrap_ref(arguments) when is_list(arguments) do
Enum.map(arguments, &unwrap_ref/1)
end
def unwrap_ref(term) do
term
end
def module_name(zig_t, forward_module, zig_t_module_map) do
if Kinda.ZigAST.is_array?(zig_t) do
forward_module |> Module.concat("Array")
else
if Kinda.ZigAST.is_ptr?(zig_t) do
forward_module |> Module.concat("Ptr")
else
zig_t_module_map |> Map.fetch!(zig_t)
end
end
end
def zig_sources() do
__DIR__ |> Path.join("..") |> Path.join("zig-src") |> Path.join("*.zig") |> Path.wildcard()
end
end