1use crate::{ast::CRoot, lexer::CTokenType, parser::CElementType};
2use oak_core::{Language, LanguageCategory};
3use serde::{Deserialize, Serialize};
4
5#[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}