1use rowan::{GreenNodeBuilder, Language, SyntaxKind as RowanSyntaxKind};
2
3use crate::SyntaxKind;
4
5#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
6pub enum OnlyLanguage {}
7
8impl Language for OnlyLanguage {
9 type Kind = SyntaxKind;
10
11 fn kind_from_raw(raw: RowanSyntaxKind) -> Self::Kind {
12 SyntaxKind::from(raw)
13 }
14
15 fn kind_to_raw(kind: Self::Kind) -> RowanSyntaxKind {
16 kind.into()
17 }
18}
19
20pub type SyntaxNode = rowan::SyntaxNode<OnlyLanguage>;
21pub type SyntaxToken = rowan::SyntaxToken<OnlyLanguage>;
22
23pub fn builder() -> GreenNodeBuilder<'static> {
24 GreenNodeBuilder::new()
25}