glsl_lang_pp/parser/
ast.rs

1use 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}