A lossless Twig lexer
npm install twig-lexer --save-dev
import {TwigLexer} from 'twig-lexer';
let lexer = new TwigLexer();
let tokens = lexer.tokenize('Hello {{world}}!');
Read the documentation for more information.
As incredible as it sounds, Twig is a language with no official specifications - even internally at SensioLabs, it seems. As such, it is subject to interpretations and twig-lexer is one of them. It's very close to TwigPHP lexer (and as such implements things like the operator confusion) but also outputs some token types that are not output by TwigPHP lexer - like OPENING_QUOTE
or WHITESPACE
- or with different names - like TAG_START
instead of BLOCK_START
.
When (if) official specifications are available, twig-lexer will be updated to match them.
Apache-2.0 © Eric MORAND