twig-lexer
A lossless Twig lexer
Installation
npm install twig-lexer --save-dev
Usage
import {TwigLexer} from 'twig-lexer';
let lexer = new TwigLexer();
let tokens = lexer.tokenize('Hello {{world}}!');
API
Read the documentation for more information.
About Twig specifications - or lack thereof
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.
License
Apache-2.0 © Eric MORAND