diff options
Diffstat (limited to 'src/tree/file_builder.rs')
-rw-r--r-- | src/tree/file_builder.rs | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/src/tree/file_builder.rs b/src/tree/file_builder.rs index 738705f02..47038496d 100644 --- a/src/tree/file_builder.rs +++ b/src/tree/file_builder.rs | |||
@@ -1,10 +1,16 @@ | |||
1 | // FIXME(CAD97): I don't understand this mod well enough to stub out docs for the public symbols yet | 1 | //! This module provides a way to construct a `File`. |
2 | #![allow(missing_docs)] | 2 | //! It is intended to be completely decoupled from the |
3 | 3 | //! parser, so as to allow to evolve the tree representation | |
4 | //! and the parser algorithm independently. | ||
5 | //! | ||
6 | //! The `Sink` trait is the bridge between the parser and the | ||
7 | //! tree builder: the parser produces a stream of events like | ||
8 | //! `start node`, `finish node`, and `FileBuilder` converts | ||
9 | //! this stream to a real tree. | ||
4 | use {SyntaxKind, TextRange, TextUnit}; | 10 | use {SyntaxKind, TextRange, TextUnit}; |
5 | use super::{File, NodeData, NodeIdx, SyntaxErrorData}; | 11 | use super::{File, NodeData, NodeIdx, SyntaxErrorData}; |
6 | 12 | ||
7 | pub trait Sink { | 13 | pub(crate) trait Sink { |
8 | fn leaf(&mut self, kind: SyntaxKind, len: TextUnit); | 14 | fn leaf(&mut self, kind: SyntaxKind, len: TextUnit); |
9 | fn start_internal(&mut self, kind: SyntaxKind); | 15 | fn start_internal(&mut self, kind: SyntaxKind); |
10 | fn finish_internal(&mut self); | 16 | fn finish_internal(&mut self); |
@@ -12,7 +18,7 @@ pub trait Sink { | |||
12 | } | 18 | } |
13 | 19 | ||
14 | #[derive(Debug)] | 20 | #[derive(Debug)] |
15 | pub struct FileBuilder { | 21 | pub(crate) struct FileBuilder { |
16 | text: String, | 22 | text: String, |
17 | nodes: Vec<NodeData>, | 23 | nodes: Vec<NodeData>, |
18 | errors: Vec<SyntaxErrorData>, | 24 | errors: Vec<SyntaxErrorData>, |