Identifiers starting with 'of' in the 'each' value variable break the lexer
dmfay opened this issue · 0 comments
dmfay commented
Originally pugjs/pug-lexer#85 but I'm copying over here since pug-lexer is now part of this monorepo:
This was reported against my eslint pug plugin:
valpackett/eslint-plugin-pug#10in the value variable position, an identifier like
offers
and in fact anything that matchesof.+
(i.e. notof
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]`).
I encountered this with each officer in officers
.
Pug Version: 3.0.2
Node Version: any