Skip to main content

oak_lean/language/
mod.rs

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