1use crate::ClojureSyntaxKind;
2use oak_core::tree::{RedLeaf, RedNode};
3
4pub type ClojureNode = RedNode<ClojureSyntaxKind>;
5pub type ClojureToken = RedLeaf<ClojureSyntaxKind>;
6
7#[derive(Debug, Clone)]
8pub struct ClojureRoot {
9 syntax: ClojureNode,
10}
11
12impl ClojureRoot {
13 pub fn cast(node: ClojureNode) -> Option<Self> {
14 if node.green.kind == ClojureSyntaxKind::SourceFile { Some(ClojureRoot { syntax: node }) } else { None }
15 }
16
17 pub fn syntax(&self) -> &ClojureNode {
18 &self.syntax
19 }
20}