// Very crude grammar for a subset of Twig templating syntax @top Template { (directive | Text)* } directive { Insert } @skip {space} { Insert { "{{" DirectiveContent "}}" } } @tokens { Text { ![{] Text? | "{" (@eof | ![%{] Text?) } space { @whitespace+ } DirectiveContent { ![%}] DirectiveContent? | $[%}] (@eof | ![}] DirectiveContent?) } @precedence { space DirectiveContent } "{{" "}}" // "{%" "%}" } @external propSource twigHighlight from "./twig-highlight"