diff options
author | Nadrieril | 2019-09-10 17:34:59 +0200 |
---|---|---|
committer | Nadrieril | 2019-09-10 17:34:59 +0200 |
commit | 50f586844c096d98a7d5b07332a6a77dac4ec933 (patch) | |
tree | 959ce463b56dfb54e96cb8d6609cb44b50697c25 /pest_consume_macros/src/match_inputs.rs | |
parent | 26f54b10314f90dc5457cd0760af7f109be78e5f (diff) |
Rename various bits of the pest_consume API
Diffstat (limited to 'pest_consume_macros/src/match_inputs.rs')
-rw-r--r-- | pest_consume_macros/src/match_inputs.rs | 27 |
1 files changed, 13 insertions, 14 deletions
diff --git a/pest_consume_macros/src/match_inputs.rs b/pest_consume_macros/src/match_inputs.rs index 34bfd38..773f806 100644 --- a/pest_consume_macros/src/match_inputs.rs +++ b/pest_consume_macros/src/match_inputs.rs @@ -23,7 +23,7 @@ enum ChildrenBranchPatternItem { #[derive(Debug, Clone)] struct ParseChildrenInput { - consumer: Type, + parser: Type, input_expr: Expr, branches: Punctuated<ChildrenBranch, Token![,]>, } @@ -66,12 +66,12 @@ impl Parse for ChildrenBranchPatternItem { impl Parse for ParseChildrenInput { fn parse(input: ParseStream) -> Result<Self> { - let consumer = if input.peek(token::Lt) { + let parser = if input.peek(token::Lt) { let _: token::Lt = input.parse()?; - let consumer = input.parse()?; + let parser = input.parse()?; let _: token::Gt = input.parse()?; let _: Token![;] = input.parse()?; - consumer + parser } else { parse_quote!(Self) }; @@ -80,7 +80,7 @@ impl Parse for ParseChildrenInput { let branches = Punctuated::parse_terminated(input)?; Ok(ParseChildrenInput { - consumer, + parser, input_expr, branches, }) @@ -90,13 +90,12 @@ impl Parse for ParseChildrenInput { fn make_parser_branch( branch: &ChildrenBranch, i_inputs: &Ident, - consumer: &Type, + parser: &Type, ) -> Result<TokenStream> { use ChildrenBranchPatternItem::{Multiple, Single}; let body = &branch.body; - let aliased_rule = - quote!(<#consumer as ::pest_consume::PestConsumer>::AliasedRule); + let aliased_rule = quote!(<#parser as ::pest_consume::Parser>::AliasedRule); // Convert the input pattern into a pattern-match on the Rules of the children. This uses // slice_patterns. @@ -156,7 +155,7 @@ fn make_parser_branch( let mut parses = Vec::new(); for (rule_name, binder) in singles_before_multiple.into_iter() { parses.push(quote!( - let #binder = #consumer::#rule_name( + let #binder = #parser::#rule_name( #i_inputs.next().unwrap() )?; )) @@ -165,7 +164,7 @@ fn make_parser_branch( // only the unmatched inputs are left for the variable-length pattern, if any. for (rule_name, binder) in singles_after_multiple.into_iter().rev() { parses.push(quote!( - let #binder = #consumer::#rule_name( + let #binder = #parser::#rule_name( #i_inputs.next_back().unwrap() )?; )) @@ -173,7 +172,7 @@ fn make_parser_branch( if let Some((rule_name, binder)) = multiple { parses.push(quote!( let #binder = #i_inputs - .map(|i| #consumer::#rule_name(i)) + .map(|i| #parser::#rule_name(i)) .collect::<Result<Vec<_>, _>>()? .into_iter(); )) @@ -196,17 +195,17 @@ pub fn match_inputs( let i_inputs = Ident::new("___inputs", Span::call_site()); let input_expr = &input.input_expr; - let consumer = &input.consumer; + let parser = &input.parser; let branches = input .branches .iter() - .map(|br| make_parser_branch(br, &i_inputs, consumer)) + .map(|br| make_parser_branch(br, &i_inputs, parser)) .collect::<Result<Vec<_>>>()?; Ok(quote!({ #[allow(unused_mut)] let mut #i_inputs = #input_expr; - let #i_input_rules = #i_inputs.aliased_rules::<#consumer>(); + let #i_input_rules = #i_inputs.aliased_rules::<#parser>(); #[allow(unreachable_code)] match #i_input_rules.as_slice() { |