// Tokens for the template-level lexer.
///|
/// A token produced by the template-level lexer.
///
/// The lexer splits raw template text into three kinds of segments: literal
/// text, variable expressions (`{{ ... }}`), and block tags (`{% ... %}`).
/// Comments (`{# ... #}`) are discarded during lexing.
pub(all) enum Token {
/// Literal text between tags.
Text(String)
/// Raw expression text from `{{ ... }}` (trimmed).
Variable(String)
/// Raw tag text from `{% ... %}` (trimmed), e.g. `if x > 1`, `for i in xs`.
Tag(String)
} derive(Debug, Eq)