From 966e9db2b83802dfb55d55bd3a26e69dced1bbd7 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Wed, 1 Aug 2018 10:40:07 +0300 Subject: Extract libeditor --- src/parser_impl/event.rs | 2 +- src/parser_impl/mod.rs | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) (limited to 'src/parser_impl') diff --git a/src/parser_impl/event.rs b/src/parser_impl/event.rs index eb5d0a4be..66a0b6fc0 100644 --- a/src/parser_impl/event.rs +++ b/src/parser_impl/event.rs @@ -76,7 +76,7 @@ pub(crate) enum Event { }, } -pub(super) fn process(builder: &mut impl Sink, tokens: &[Token], events: Vec) { +pub(super) fn process<'a>(builder: &mut impl Sink<'a>, tokens: &[Token], events: Vec) { let mut idx = 0; let mut holes = Vec::new(); diff --git a/src/parser_impl/mod.rs b/src/parser_impl/mod.rs index b58094be3..2791c8da5 100644 --- a/src/parser_impl/mod.rs +++ b/src/parser_impl/mod.rs @@ -14,10 +14,10 @@ use { use SyntaxKind::{self, EOF, TOMBSTONE}; -pub(crate) trait Sink { +pub(crate) trait Sink<'a> { type Tree; - fn new(text: String) -> Self; + fn new(text: &'a str) -> Self; fn leaf(&mut self, kind: SyntaxKind, len: TextUnit); fn start_internal(&mut self, kind: SyntaxKind); @@ -27,9 +27,9 @@ pub(crate) trait Sink { } /// Parse a sequence of tokens into the representative node tree -pub(crate) fn parse(text: String, tokens: &[Token]) -> S::Tree { +pub(crate) fn parse<'a, S: Sink<'a>>(text: &'a str, tokens: &[Token]) -> S::Tree { let events = { - let input = input::ParserInput::new(&text, tokens); + let input = input::ParserInput::new(text, tokens); let parser_impl = ParserImpl::new(&input); let mut parser_api = Parser(parser_impl); grammar::file(&mut parser_api); -- cgit v1.2.3