Packages

Elixir bindings to the tree-sitter-mf2 grammar. Incremental, error-recovering CST parser for ICU MessageFormat 2 (MF2) messages suitable for editor tooling and LSP use.

Current section

Files

Jump to
localize_mf2_treesitter lib localize mf2 tree_sitter nif.ex
Raw

lib/localize/mf2/tree_sitter/nif.ex

defmodule Localize.Mf2.TreeSitter.Nif do
@moduledoc false
@on_load :load_nif
@typedoc "Opaque handle to a tree-sitter parse tree."
@type tree :: reference()
@typedoc "Opaque encoding of a `TSNode` plus its owning tree."
@type node_handle :: {:node, tree(), binary()}
def load_nif do
path =
:localize_mf2_treesitter
|> :code.priv_dir()
|> Path.join("localize_mf2_treesitter_nif")
:erlang.load_nif(String.to_charlist(path), 0)
end
def parse(_source), do: :erlang.nif_error(:nif_not_loaded)
def tree_root_node(_tree), do: :erlang.nif_error(:nif_not_loaded)
def tree_to_sexp(_tree), do: :erlang.nif_error(:nif_not_loaded)
def node_type(_node), do: :erlang.nif_error(:nif_not_loaded)
def node_start_byte(_node), do: :erlang.nif_error(:nif_not_loaded)
def node_end_byte(_node), do: :erlang.nif_error(:nif_not_loaded)
def node_start_point(_node), do: :erlang.nif_error(:nif_not_loaded)
def node_end_point(_node), do: :erlang.nif_error(:nif_not_loaded)
def node_is_named(_node), do: :erlang.nif_error(:nif_not_loaded)
def node_has_error(_node), do: :erlang.nif_error(:nif_not_loaded)
def node_child_count(_node), do: :erlang.nif_error(:nif_not_loaded)
def node_named_child_count(_node), do: :erlang.nif_error(:nif_not_loaded)
def node_child(_node, _index), do: :erlang.nif_error(:nif_not_loaded)
def node_named_child(_node, _index), do: :erlang.nif_error(:nif_not_loaded)
def node_to_sexp(_node), do: :erlang.nif_error(:nif_not_loaded)
def node_parent(_node), do: :erlang.nif_error(:nif_not_loaded)
def node_next_sibling(_node), do: :erlang.nif_error(:nif_not_loaded)
def node_prev_sibling(_node), do: :erlang.nif_error(:nif_not_loaded)
def node_next_named_sibling(_node), do: :erlang.nif_error(:nif_not_loaded)
def node_prev_named_sibling(_node), do: :erlang.nif_error(:nif_not_loaded)
def node_descendant_for_byte_range(_node, _start, _end), do: :erlang.nif_error(:nif_not_loaded)
def node_named_descendant_for_byte_range(_node, _start, _end),
do: :erlang.nif_error(:nif_not_loaded)
def node_is_error(_node), do: :erlang.nif_error(:nif_not_loaded)
def node_is_missing(_node), do: :erlang.nif_error(:nif_not_loaded)
def query_new(_source), do: :erlang.nif_error(:nif_not_loaded)
def query_pattern_count(_query), do: :erlang.nif_error(:nif_not_loaded)
def query_capture_count(_query), do: :erlang.nif_error(:nif_not_loaded)
def query_capture_names(_query), do: :erlang.nif_error(:nif_not_loaded)
def query_matches(_query, _node), do: :erlang.nif_error(:nif_not_loaded)
def query_captures(_query, _node), do: :erlang.nif_error(:nif_not_loaded)
def parse_incremental(_old_tree, _edits, _source), do: :erlang.nif_error(:nif_not_loaded)
def tree_get_changed_ranges(_old_tree, _new_tree), do: :erlang.nif_error(:nif_not_loaded)
end