summaryrefslogtreecommitdiff
path: root/pest_consume_macros/src/match_inputs.rs
diff options
context:
space:
mode:
Diffstat (limited to 'pest_consume_macros/src/match_inputs.rs')
-rw-r--r--pest_consume_macros/src/match_inputs.rs27
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() {