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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
//! Parse and analyze Autodesk Maya MEL from a single crate.
//!
//! `maya-mel` is the public library entry point for this workspace. It keeps
//! the common MEL workflow available from one dependency while leaving
//! lower-level syntax, parsing, and Maya-specific layers available as public
//! modules when you need tighter control.
//!
//! # Quick Start
//!
//! ```rust
//! use maya_mel::{analyze, collect_top_level_facts, parse_source};
//!
//! let parsed = parse_source("global proc hello() {}");
//! let analysis = analyze(&parsed.syntax, parsed.source_view());
//! let facts = collect_top_level_facts(&parsed);
//!
//! assert!(analysis.diagnostics.is_empty());
//! assert!(!facts.items.is_empty());
//! ```
//!
//! ```rust
//! use maya_mel::{MayaCommandRegistry, collect_top_level_facts_with_registry, parse_source};
//!
//! let parsed = parse_source("createNode transform -n \"root\";");
//! let facts = collect_top_level_facts_with_registry(&parsed, &MayaCommandRegistry::new());
//!
//! assert_eq!(facts.items.len(), 1);
//! ```
//!
//! # Common Workflows
//!
//! - Use [`parse_source`] or [`parse_file`] to build a typed MEL syntax tree.
//! - Use [`analyze`] to resolve generic MEL semantics and collect diagnostics.
//! - Use [`collect_top_level_facts`] to gather Maya-specific command facts.
//! - Use [`MayaCommandRegistry`] with [`analyze_with_registry`] or
//! [`collect_top_level_facts_with_registry`] when builtin Maya command metadata matters.
//! - Use [`parser`], [`sema`], or [`maya`] directly for advanced workflows.
//!
//! # Module Guide
//!
//! - [`parser`] exposes full and lightweight parse entry points.
//! - [`sema`] exposes generic semantic analysis at the module root, with
//! advanced command contracts under [`sema::command_schema`] and command
//! normalization data under [`sema::command_norm`].
//! - [`maya`] exposes Maya-specific fact collection at the module root, with
//! detailed fact model types under [`maya::model`].
//! - [`ast`], [`syntax`], and [`mod@lexer`] expose lower-level structures.
//!
//! There is intentionally no crate prelude. The crate root stays small and
//! covers the common parse/analyze/fact-collection workflow, while explicit
//! module paths carry the advanced surfaces.
//!
//! # Stability
//!
//! This crate is published as experimental `0.x`. Root-level APIs are intended
//! to cover the common workflow, while advanced surfaces may continue to move
//! between releases.
extern crate self as mel_ast;
extern crate self as mel_lexer;
extern crate self as mel_maya;
extern crate self as mel_parser;
extern crate self as mel_sema;
extern crate self as mel_syntax;
/// Typed MEL syntax tree structures returned by the parser.
/// MEL tokenization utilities and lexer entry points.
/// Maya-specific metadata, registries, and top-level fact collection.
/// Full and lightweight MEL parsing entry points.
/// Generic semantic analysis and command normalization.
/// Shared spans, tokens, and source mapping primitives.
pub use ;
pub use decode;
pub use ;
pub use *;
pub use *;
pub use *;
pub use ;
pub use *;
pub use MayaTopLevelFacts;
pub use ;
pub use ;
pub use ;