Skip to main content

oak_lua/language/
mod.rs

1#![doc = include_str!("readme.md")]
2//! Lua language definition.
3//!
4//! Defines the core structure for the Lua language, implementing the oak-core Language trait.
5
6use oak_core::{Language, LanguageCategory};
7#[cfg(feature = "serde")]
8use serde::{Deserialize, Serialize};
9
10/// Lua language definition.
11#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
12#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
13pub struct LuaLanguage {}
14
15impl Language for LuaLanguage {
16    const NAME: &'static str = "lua";
17    const CATEGORY: LanguageCategory = LanguageCategory::Programming;
18
19    type TokenType = crate::lexer::token_type::LuaTokenType;
20    type ElementType = crate::parser::element_type::LuaElementType;
21    type TypedRoot = crate::ast::LuaRoot;
22}
23
24impl LuaLanguage {
25    /// Creates a new Lua language instance.
26    pub fn new() -> Self {
27        Self {}
28    }
29}
30
31impl Default for LuaLanguage {
32    fn default() -> Self {
33        Self {}
34    }
35}