Skip to content

Commit f692faf

Browse files
committed
rename
1 parent 74de79b commit f692faf

File tree

2 files changed

+39
-44
lines changed

2 files changed

+39
-44
lines changed

crates/syntax/src/parsing/reparsing.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ fn reparse_block(
9494
return None;
9595
}
9696

97-
let tree_traversal = reparser.parse(&parser_tokens);
97+
let tree_traversal = reparser.parse(&parser_input);
9898

9999
let (green, new_parser_errors, _eof) = build_tree(lexed, tree_traversal, false);
100100

crates/syntax/src/parsing/text_tree_sink.rs

Lines changed: 38 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -17,35 +17,32 @@ pub(crate) fn build_tree(
1717
parser_output: parser::Output,
1818
synthetic_root: bool,
1919
) -> (GreenNode, Vec<SyntaxError>, bool) {
20-
let mut builder = TextTreeSink::new(lexed);
20+
let mut builder = Builder::new(lexed);
2121

2222
if synthetic_root {
23-
builder.start_node(SyntaxKind::SOURCE_FILE);
23+
builder.enter(SyntaxKind::SOURCE_FILE);
2424
}
2525

2626
for event in parser_output.iter() {
2727
match event {
2828
parser::Step::Token { kind, n_input_tokens: n_raw_tokens } => {
2929
builder.token(kind, n_raw_tokens)
3030
}
31-
parser::Step::Enter { kind } => builder.start_node(kind),
32-
parser::Step::Exit => builder.finish_node(),
31+
parser::Step::Enter { kind } => builder.enter(kind),
32+
parser::Step::Exit => builder.exit(),
3333
parser::Step::Error { msg } => {
3434
let text_pos = builder.lexed.text_start(builder.pos).try_into().unwrap();
3535
builder.inner.error(msg.to_string(), text_pos);
3636
}
3737
}
3838
}
3939
if synthetic_root {
40-
builder.finish_node()
40+
builder.exit()
4141
}
42-
builder.finish_eof()
42+
builder.build()
4343
}
4444

45-
/// Bridges the parser with our specific syntax tree representation.
46-
///
47-
/// `TextTreeSink` also handles attachment of trivia (whitespace) to nodes.
48-
struct TextTreeSink<'a> {
45+
struct Builder<'a> {
4946
lexed: LexedStr<'a>,
5047
pos: usize,
5148
state: State,
@@ -58,7 +55,35 @@ enum State {
5855
PendingFinish,
5956
}
6057

61-
impl<'a> TextTreeSink<'a> {
58+
impl<'a> Builder<'a> {
59+
fn new(lexed: parser::LexedStr<'a>) -> Self {
60+
Self { lexed, pos: 0, state: State::PendingStart, inner: SyntaxTreeBuilder::default() }
61+
}
62+
63+
fn build(mut self) -> (GreenNode, Vec<SyntaxError>, bool) {
64+
match mem::replace(&mut self.state, State::Normal) {
65+
State::PendingFinish => {
66+
self.eat_trivias();
67+
self.inner.finish_node();
68+
}
69+
State::PendingStart | State::Normal => unreachable!(),
70+
}
71+
72+
let (node, mut errors) = self.inner.finish_raw();
73+
for (i, err) in self.lexed.errors() {
74+
let text_range = self.lexed.text_range(i);
75+
let text_range = TextRange::new(
76+
text_range.start.try_into().unwrap(),
77+
text_range.end.try_into().unwrap(),
78+
);
79+
errors.push(SyntaxError::new(err, text_range))
80+
}
81+
82+
let is_eof = self.pos == self.lexed.len();
83+
84+
(node, errors, is_eof)
85+
}
86+
6287
fn token(&mut self, kind: SyntaxKind, n_tokens: u8) {
6388
match mem::replace(&mut self.state, State::Normal) {
6489
State::PendingStart => unreachable!(),
@@ -69,7 +94,7 @@ impl<'a> TextTreeSink<'a> {
6994
self.do_token(kind, n_tokens as usize);
7095
}
7196

72-
fn start_node(&mut self, kind: SyntaxKind) {
97+
fn enter(&mut self, kind: SyntaxKind) {
7398
match mem::replace(&mut self.state, State::Normal) {
7499
State::PendingStart => {
75100
self.inner.start_node(kind);
@@ -93,43 +118,13 @@ impl<'a> TextTreeSink<'a> {
93118
self.eat_n_trivias(n_attached_trivias);
94119
}
95120

96-
fn finish_node(&mut self) {
121+
fn exit(&mut self) {
97122
match mem::replace(&mut self.state, State::PendingFinish) {
98123
State::PendingStart => unreachable!(),
99124
State::PendingFinish => self.inner.finish_node(),
100125
State::Normal => (),
101126
}
102127
}
103-
}
104-
105-
impl<'a> TextTreeSink<'a> {
106-
pub(super) fn new(lexed: parser::LexedStr<'a>) -> Self {
107-
Self { lexed, pos: 0, state: State::PendingStart, inner: SyntaxTreeBuilder::default() }
108-
}
109-
110-
pub(super) fn finish_eof(mut self) -> (GreenNode, Vec<SyntaxError>, bool) {
111-
match mem::replace(&mut self.state, State::Normal) {
112-
State::PendingFinish => {
113-
self.eat_trivias();
114-
self.inner.finish_node();
115-
}
116-
State::PendingStart | State::Normal => unreachable!(),
117-
}
118-
119-
let (node, mut errors) = self.inner.finish_raw();
120-
for (i, err) in self.lexed.errors() {
121-
let text_range = self.lexed.text_range(i);
122-
let text_range = TextRange::new(
123-
text_range.start.try_into().unwrap(),
124-
text_range.end.try_into().unwrap(),
125-
);
126-
errors.push(SyntaxError::new(err, text_range))
127-
}
128-
129-
let is_eof = self.pos == self.lexed.len();
130-
131-
(node, errors, is_eof)
132-
}
133128

134129
fn eat_trivias(&mut self) {
135130
while self.pos < self.lexed.len() {

0 commit comments

Comments
 (0)