local Lexer = require 'Lexer' return Lexer { { 'and', 'AND' }, { 'break', 'BREAK' }, { 'do', 'DO' }, { 'else', 'ELSE' }, { 'elseif', 'ELSEIF' }, { 'end', 'END' }, { 'for', 'FOR' }, { 'function', 'FUNCTION' }, { 'if', 'IF' }, { 'in', 'IN' }, { 'local', 'LOCAL' }, { 'not', 'NOT' }, { 'or', 'OR' }, { 'repeat', 'REPEAT' }, { 'return', 'RETURN' }, { 'then', 'THEN' }, { 'until', 'UNTIL' }, { 'while', 'WHILE' }, { '%+' , 'PLUS' }, { '%-' , 'MINUS' }, { '%*' , 'TIMES' }, { '%/' , 'DIVIDE' }, { '%%' , 'MODULO' }, { '%^' , 'CARET' }, { '%#' , 'HASHTAG' }, { '%==' , 'EQ' }, { '%~=' , 'NEQ' }, { '%<=' , 'LEQ' }, { '%>=' , 'GEQ' }, { '%<' , 'LE' }, { '%>' , 'GT' }, { '%=', 'ASSIGN' }, { '%(' , 'LPAR' }, { '%)' , 'RPAR' }, { '%{' , 'LBRACE' }, { '%}' , 'RBRACE' }, { '%;' , 'SEMICOLON' }, { '%,' , 'COMMA' }, { '%.%.' , 'CONCAT' }, { '%.%.%.' , 'VARARG' }, -- { 'false', 'FALSE' }, { 'true', 'TRUE' }, { 'nil', 'NIL' }, { '%[', 'LBRACK' }, { '%]', 'RBRACK' }, { '%:', 'COLON' }, { '%.', 'DOT' }, -- { '%d+%.?%d*', 'NUMBER' }, { '%d*%.?%d+', 'NUMBER' }, { '[%a_][%d%a_]*', 'IDENTIFIER' }, { '\".-\"', 'STRING' }, { '\'.-\'', 'STRING' }, { '%[%[.-%]%]', 'STRING' }, { '%-%-.-\n', Lexer.CONTINUE }, { '%-%-%[%[.-%]%]', Lexer.CONTINUE }, { '%s+', Lexer.CONTINUE }, }