number: /[0-9]+(?:\.[0-9]+)?/,
keyword: ['say', 'menu', 'item', 'end', 'exit', 'goto', 'if',
'finish', 'clear', 'buy', 'transact', 'setflag'],
- label: /[a-zA-Z][a-zA-Z0-9]*:/,
- word: /[a-zA-Z][a-zA-Z0-9]*/,
+ label: /[a-zA-Z_][a-zA-Z0-9_]*:/,
+ word: /[a-zA-Z_][a-zA-Z0-9_]*/,
dqstring: { match: /"(?:\\["\\]|[^\n"\\])*"/, value: s => s.slice(1, -1) },
sqstring: { match: /'(?:\\['\\]|[^\n'\\])*'/, value: s => s.slice(1, -1) },
mlstring: { match: /\[\[\[[^]*?\]\]\]/, lineBreaks: true, value: s => s.slice(3, -3).trim() },