Identifiers starting with 'of' in the 'each' value variable break the lexer
valpackett opened this issue · 0 comments
valpackett commented
This was reported against my eslint pug plugin:
valpackett/eslint-plugin-pug#10
in the value variable position, an identifier like offers
and in fact anything that matches of.+
(i.e. not of
itself) seems to explode:
> const lex = require('pug-lexer')
> lex('each x in of')
[{"type":"each","loc":{"start":{"line":1,"column":1},"end":{"line":1,"column":13}},"val":"x","key":null,"code":"of"},{"type":"eos","loc":{"start":{"line":1,"column":13},"end":{"line":1,"column":13}}}]
> lex('each x in ofX')
Uncaught Error: Pug:1:14
> 1| each x in ofX
--------------------^
The value variable for each must either be a valid identifier (e.g. `item`) or a pair of identifiers in square brackets (e.g. `[key, value]`).