1
0
assert-gooder/lua_lang.lua

65 lines
2.0 KiB
Lua
Raw Normal View History

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 },
}