Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/mbe/src/expander/transcriber.rs')
| -rw-r--r-- | crates/mbe/src/expander/transcriber.rs | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/crates/mbe/src/expander/transcriber.rs b/crates/mbe/src/expander/transcriber.rs index b1b3f63fd3..93d29b6ffe 100644 --- a/crates/mbe/src/expander/transcriber.rs +++ b/crates/mbe/src/expander/transcriber.rs @@ -103,6 +103,23 @@ fn expand_subtree( err = err.or(e); push_fragment(arena, fragment) } + Op::Ignore { name, id } => { + // Expand the variable, but ignore the result. This registers the repetition count. + expand_var(ctx, name, *id); + } + Op::Index { depth } => { + let index = ctx + .nesting + .get(ctx.nesting.len() - 1 - (*depth as usize)) + .map_or(0, |nest| nest.idx); + arena.push( + tt::Leaf::Literal(tt::Literal { + text: index.to_string().into(), + id: tt::TokenId::unspecified(), + }) + .into(), + ); + } } } // drain the elements added in this instance of expand_subtree |