Skip to main content

oak_mojo/
lib.rs

1#![feature(new_range_api)]
2#![warn(missing_docs)]
3//! Mojo support for the Oak language framework.
4
5/// AST module.
6pub mod ast;
7/// Builder module.
8pub mod builder;
9/// Lexer module.
10pub mod lexer;
11/// Parser module.
12pub 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/// Mojo language definition.
20#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Default)]
21pub struct MojoLanguage;
22
23impl Language for MojoLanguage {
24    const NAME: &'static str = "mojo";
25    type TokenType = lexer::token_type::MojoTokenType;
26    type ElementType = parser::element_type::MojoElementType;
27    type TypedRoot = Vec<ast::MojoStatement>;
28}