tinylex
Version:
A simple iterative lexer written in TypeScript
22 lines (19 loc) • 539 B
JavaScript
var keywords = require('./darklord.keywords')
var KEYWORD = new RegExp(`^(?:${keywords.join('|')})`)
var COMMENT = /^\s*(#.*)\n/
var IDENTIFIER = /^[a-z]\w*/
var NUMBER = /^(?:\+|-)?(?:\.)?\d+\.?(?:\d+)?/
var STRING_SINGLE = /^'([^']*)'/
var STRING_DOUBLE = /^"([^"]*)"/
var LOGICAL = /^(?:\|\||&&|==|!=|<=|>=)/
var WHITESPACE = /^\s/
module.exports = [
[COMMENT, 'COMMENT'],
[KEYWORD, 0],
[IDENTIFIER, 'IDENTIFIER'],
[NUMBER, 'NUMBER'],
[LOGICAL, 0],
[STRING_SINGLE, 'STRING'],
[STRING_DOUBLE, 'STRING'],
[WHITESPACE]
]