diff --git a/crates/generate/src/prepare_grammar/extract_tokens.rs b/crates/generate/src/prepare_grammar/extract_tokens.rs index 1c96c17d..cb40ce5a 100644 --- a/crates/generate/src/prepare_grammar/extract_tokens.rs +++ b/crates/generate/src/prepare_grammar/extract_tokens.rs @@ -213,7 +213,12 @@ pub(super) fn extract_tokens( { reserved_words.push(Symbol::terminal(index)); } else { - let token_name = match &reserved_rule { + let rule = if let Rule::Metadata { rule, .. } = &reserved_rule { + rule.as_ref() + } else { + &reserved_rule + }; + let token_name = match rule { Rule::String(s) => s.clone(), Rule::Pattern(p, _) => p.clone(), _ => "unknown".to_string(),