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}