From a1c187eef3ba08076aedb5154929f7eda8d1b424 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Wed, 12 Aug 2020 18:26:51 +0200 Subject: Rename ra_syntax -> syntax --- crates/ra_syntax/src/parsing.rs | 59 ----------------------------------------- 1 file changed, 59 deletions(-) delete mode 100644 crates/ra_syntax/src/parsing.rs (limited to 'crates/ra_syntax/src/parsing.rs') diff --git a/crates/ra_syntax/src/parsing.rs b/crates/ra_syntax/src/parsing.rs deleted file mode 100644 index 68a39eb21..000000000 --- a/crates/ra_syntax/src/parsing.rs +++ /dev/null @@ -1,59 +0,0 @@ -//! Lexing, bridging to parser (which does the actual parsing) and -//! incremental reparsing. - -mod lexer; -mod text_token_source; -mod text_tree_sink; -mod reparsing; - -use crate::{syntax_node::GreenNode, AstNode, SyntaxError, SyntaxNode}; -use text_token_source::TextTokenSource; -use text_tree_sink::TextTreeSink; - -pub use lexer::*; - -pub(crate) use self::reparsing::incremental_reparse; -use parser::SyntaxKind; - -pub(crate) fn parse_text(text: &str) -> (GreenNode, Vec) { - let (tokens, lexer_errors) = tokenize(&text); - - let mut token_source = TextTokenSource::new(text, &tokens); - let mut tree_sink = TextTreeSink::new(text, &tokens); - - parser::parse(&mut token_source, &mut tree_sink); - - let (tree, mut parser_errors) = tree_sink.finish(); - parser_errors.extend(lexer_errors); - - (tree, parser_errors) -} - -/// Returns `text` parsed as a `T` provided there are no parse errors. -pub(crate) fn parse_text_fragment( - text: &str, - fragment_kind: parser::FragmentKind, -) -> Result { - let (tokens, lexer_errors) = tokenize(&text); - if !lexer_errors.is_empty() { - return Err(()); - } - - let mut token_source = TextTokenSource::new(text, &tokens); - let mut tree_sink = TextTreeSink::new(text, &tokens); - - // TextTreeSink assumes that there's at least some root node to which it can attach errors and - // tokens. We arbitrarily give it a SourceFile. - use parser::TreeSink; - tree_sink.start_node(SyntaxKind::SOURCE_FILE); - parser::parse_fragment(&mut token_source, &mut tree_sink, fragment_kind); - tree_sink.finish_node(); - - let (tree, parser_errors) = tree_sink.finish(); - use parser::TokenSource; - if !parser_errors.is_empty() || token_source.current().kind != SyntaxKind::EOF { - return Err(()); - } - - SyntaxNode::new_root(tree).first_child().and_then(T::cast).ok_or(()) -} -- cgit v1.2.3