glsl_lang_pp/parser/
ast.rs1use rowan::GreenNode;
2
3use crate::util::LineMap;
4
5use super::{Error, SyntaxNode};
6
7#[derive(Debug, Clone)]
8pub struct Ast {
9 green_node: GreenNode,
10 errors: Vec<Error>,
11 line_map: LineMap,
12}
13
14impl Ast {
15 pub fn new(green_node: GreenNode, errors: Vec<Error>, line_map: LineMap) -> Self {
16 Self {
17 green_node,
18 errors,
19 line_map,
20 }
21 }
22
23 pub fn into_inner(self) -> (SyntaxNode, Vec<Error>, LineMap) {
24 (
25 SyntaxNode::new_root(self.green_node),
26 self.errors,
27 self.line_map,
28 )
29 }
30
31 pub fn green_node(&self) -> &GreenNode {
32 &self.green_node
33 }
34}