oak_cpp/language/
mod.rs

1use crate::{kind::CppSyntaxKind, lexer::CppLexer};
2use oak_core::Language;
3
4/// C++ 语言实现
5#[derive(Debug, Clone)]
6pub struct CppLanguage;
7
8impl Language for CppLanguage {
9    type SyntaxKind = CppSyntaxKind;
10    type TypedRoot = ();
11}
12
13impl CppLanguage {
14    /// 创建新的 C++ 语言实例
15    pub fn new() -> Self {
16        Self
17    }
18
19    /// 创建 C++ 词法分析器
20    pub fn lexer(&self) -> CppLexer<'_> {
21        CppLexer::new(self)
22    }
23}
24
25impl Default for CppLanguage {
26    fn default() -> Self {
27        Self::new()
28    }
29}