1#![feature(new_range_api)]
2#![warn(missing_docs)]
3#![doc = include_str!("readme.md")]
4
5pub mod ast;
7pub mod builder;
9pub mod lexer;
11pub mod parser;
13
14pub use lexer::token_type::MojoTokenType as TokenType;
15pub use parser::element_type::MojoElementType as ElementType;
16
17use oak_core::Language;
18
19#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Default)]
21#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
22pub struct MojoLanguage;
23
24impl Language for MojoLanguage {
25 const NAME: &'static str = "mojo";
26 type TokenType = lexer::token_type::MojoTokenType;
27 type ElementType = parser::element_type::MojoElementType;
28 type TypedRoot = Vec<ast::MojoStatement>;
29}