@top Template { (Tag | Text)* }

@local tokens {
  TagClose { "]}" }
  @else TagContent
}

@skip { } {
  TagOpen { "${[" }
  Tag { TagOpen (TagContent)+ TagClose }
}

@tokens {
  Text { ![$] Text? | "$" (@eof | ![{] Text?) }
}

@external propSource highlight from "./highlight"
