1pub mod syntax_kind;
2pub use syntax_kind::*;
3
4mod syntax_error;
5pub use syntax_error::*;
6
7pub mod ast;
8pub mod token;
9
10#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
11pub enum MicalLanguage {}
12
13impl rowan::Language for MicalLanguage {
14 type Kind = SyntaxKind;
15 fn kind_from_raw(raw: rowan::SyntaxKind) -> Self::Kind {
16 SyntaxKind::from(raw)
17 }
18 fn kind_to_raw(kind: Self::Kind) -> rowan::SyntaxKind {
19 kind.into()
20 }
21}
22
23pub type SyntaxNode = rowan::SyntaxNode<MicalLanguage>;
24pub type SyntaxToken = rowan::SyntaxToken<MicalLanguage>;
25pub type SyntaxElement = rowan::SyntaxElement<MicalLanguage>;
26pub type SyntaxNodeChildren = rowan::SyntaxNodeChildren<MicalLanguage>;
27pub type SyntaxElementChildren = rowan::SyntaxElementChildren<MicalLanguage>;
28pub type Preorder = rowan::api::Preorder<MicalLanguage>;
29pub type PreorderWithTokens = rowan::api::PreorderWithTokens<MicalLanguage>;
30pub type SyntaxNodePtr = rowan::ast::SyntaxNodePtr<MicalLanguage>;
31pub use rowan::{GreenNode, TextLen, TextRange, TextSize};