Crate ra_ap_mbe

Source
Expand description

mbe (short for Macro By Example) crate contains code for handling macro_rules macros. It uses TokenTree (from tt package) as the interface, although it contains some code to bridge SyntaxNodes and TokenTrees as well!

The tests for this functionality live in another crate: hir_def::macro_expansion_tests::mbe.

Structs§

DeclarativeMacro
This struct contains AST for a single macro_rules definition. What might be very confusing is that AST has almost exactly the same shape as tt::TokenTree, but there’s a crucial difference: in macro rules, $ident and $()* have special meaning (see Var and Repeat data structures)
Delimiter
ExpandError
Punct
ValueResult

Enums§

CountError
DelimiterKind
ExpandErrorKind
ParseError

Functions§

expect_fragment

Type Aliases§

ExpandResult
MatchedArmIndex
Index of the matched macro arm on successful expansion.