pub struct OpenerScan { /* private fields */ }Expand description
The running state that turns is_conditional_opener into a positional
decision: the operand-slot countdown and the \ifcsname body.
Feed the control words in document order through Self::visit — the parser
in a pre-pass over the token stream, the linter walking COMMAND nodes in
preorder.
The state is a running countdown, so whether a word is visited is itself a
decision, and the two consumers make it differently on purpose (module doc).
The rule is which question the filter answers. Tokens the document does not
execute must not be visited at all — the linter withholds the whole span of
a \def body, because a \let carried inside one must not arm the countdown
for the code after it. Tokens that merely have no node to build are visited
and then discarded from the result — the parser does this for expl3 regions,
so an in-region \ifcsname still opens and closes its skip window for the
words that follow.
Implementations§
Trait Implementations§
Source§impl Clone for OpenerScan
impl Clone for OpenerScan
Source§fn clone(&self) -> OpenerScan
fn clone(&self) -> OpenerScan
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more