Skip to main content

shuck_ast/
lib.rs

1#![warn(missing_docs)]
2#![cfg_attr(not(test), warn(clippy::unwrap_used))]
3
4//! AST, token, and span types shared across the Shuck workspace.
5//!
6//! `shuck-parser` produces these data structures, while crates such as `shuck-indexer`,
7//! `shuck-linter`, `shuck-semantic`, and `shuck-formatter` consume them.
8
9#[doc(hidden)]
10mod arena;
11#[doc(hidden)]
12mod ast;
13#[doc(hidden)]
14mod command_resolution;
15#[doc(hidden)]
16mod name;
17pub mod raw_shell;
18#[doc(hidden)]
19mod span;
20#[doc(hidden)]
21mod tokens;
22
23/// Compact typed arena index and list storage utilities.
24pub use arena::{IdRange, Idx, ListArena};
25#[doc(hidden)]
26pub use ast::*;
27#[doc(hidden)]
28pub use command_resolution::*;
29/// Identifier names used throughout the shell AST.
30pub use name::Name;
31/// Source positions, spans, and text range utilities.
32pub use span::{Position, Span, TextRange, TextSize};
33/// Token kinds emitted by the lexer.
34pub use tokens::TokenKind;