1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
//! Strongly-typed AST types for Elixir, auto-generated from
//! [`tree-sitter-elixir`](https://docs.rs/tree-sitter-elixir)'s `node-types.json`.
//!
//! This crate is generated by [`treesitter-types`](https://docs.rs/treesitter-types) and is
//! automatically kept up to date when a new version of the grammar crate is released.
//!
//! See the [Tree-sitter](https://tree-sitter.github.io/tree-sitter/) project for more
//! information about the underlying parser framework.
//!
//! # Example
//!
//! ```
//! use treesitter_types_elixir::*;
//!
//! // A minimal Elixir hello-world program.
//! let src = b"\
//! defmodule Hello do
//! def world do
//! IO.puts(\"Hello, World!\")
//! end
//! end
//! ";
//!
//! // Parse the source with tree-sitter and convert into typed AST.
//! let mut parser = tree_sitter::Parser::new();
//! parser.set_language(&tree_sitter_elixir::LANGUAGE.into()).unwrap();
//! let tree = parser.parse(src, None).unwrap();
//! let source = Source::from_node(tree.root_node(), src).unwrap();
//!
//! // The source has one top-level child: the `defmodule` call.
//! assert_eq!(source.children.len(), 1);
//! assert_eq!(source.span.start.row, 0);
//! assert!(source.span.end.row >= 4);
//! ```
pub use ;
pub use *;