// 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)