Skip to main content

oak_c/language/
mod.rs

1use crate::{ast::CRoot, lexer::CTokenType, parser::CElementType};
2use oak_core::{Language, LanguageCategory};
3use serde::{Deserialize, Serialize};
4
5/// C 语言实现
6#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash, Serialize, Deserialize)]
7pub struct CLanguage {}
8
9impl CLanguage {
10    pub fn new() -> Self {
11        Self {}
12    }
13}
14
15impl Language for CLanguage {
16    const NAME: &'static str = "c";
17    const CATEGORY: LanguageCategory = LanguageCategory::Programming;
18
19    type TokenType = CTokenType;
20    type ElementType = CElementType;
21    type TypedRoot = CRoot;
22}
23
24impl Default for CLanguage {
25    fn default() -> Self {
26        Self {}
27    }
28}