X::Assembler::Lexer
Constants
DIRECTIVES = {"module" => TokenType::DIRECTIVE_MODULE, "dynamic" => TokenType::DIRECTIVE_DYNAMIC, "static" => TokenType::DIRECTIVE_STATIC, "require" => TokenType::DIRECTIVE_REQUIRE, "import" => TokenType::DIRECTIVE_IMPORT, "export" => TokenType::DIRECTIVE_EXPORT, "process" => TokenType::DIRECTIVE_PROCESS, "supervisor" => TokenType::DIRECTIVE_SUPERVISOR, "child" => TokenType::DIRECTIVE_CHILD, "subroutine" => TokenType::DIRECTIVE_SUBROUTINE, "local" => TokenType::DIRECTIVE_LOCAL, "global" => TokenType::DIRECTIVE_GLOBAL, "end" => TokenType::DIRECTIVE_END}
Directive lookup table
KEYWORDS = {"push" => TokenType::KEYWORD_PUSH, "pop" => TokenType::KEYWORD_POP, "dup" => TokenType::KEYWORD_DUP, "over" => TokenType::KEYWORD_OVER, "swap" => TokenType::KEYWORD_SWAP, "rot" => TokenType::KEYWORD_ROT, "-rot" => TokenType::KEYWORD_ROT_DOWN, "nip" => TokenType::KEYWORD_NIP, "tuck" => TokenType::KEYWORD_TUCK, "depth" => TokenType::KEYWORD_DEPTH, "pick" => TokenType::KEYWORD_PICK, "roll" => TokenType::KEYWORD_ROLL, "add" => TokenType::KEYWORD_ADD, "sub" => TokenType::KEYWORD_SUB, "mul" => TokenType::KEYWORD_MUL, "div" => TokenType::KEYWORD_DIV, "mod" => TokenType::KEYWORD_MOD, "neg" => TokenType::KEYWORD_NEG, "abs" => TokenType::KEYWORD_ABS, "inc" => TokenType::KEYWORD_INC, "dec" => TokenType::KEYWORD_DEC, "pow" => TokenType::KEYWORD_POW, "floor" => TokenType::KEYWORD_FLOOR, "ceil" => TokenType::KEYWORD_CEIL, "round" => TokenType::KEYWORD_ROUND, "min" => TokenType::KEYWORD_MIN, "max" => TokenType::KEYWORD_MAX, "band" => TokenType::KEYWORD_BAND, "bor" => TokenType::KEYWORD_BOR, "bxor" => TokenType::KEYWORD_BXOR, "bnot" => TokenType::KEYWORD_BNOT, "shl" => TokenType::KEYWORD_SHL, "shr" => TokenType::KEYWORD_SHR, "ushr" => TokenType::KEYWORD_USHR, "eq" => TokenType::KEYWORD_EQ, "neq" => TokenType::KEYWORD_NEQ, "ideq" => TokenType::KEYWORD_IDEQ, "nideq" => TokenType::KEYWORD_NIDEQ, "lt" => TokenType::KEYWORD_LT, "lte" => TokenType::KEYWORD_LTE, "gt" => TokenType::KEYWORD_GT, "gte" => TokenType::KEYWORD_GTE, "is_null" => TokenType::KEYWORD_IS_NULL, "is_not_null" => TokenType::KEYWORD_IS_NOT_NULL, "and" => TokenType::KEYWORD_AND, "or" => TokenType::KEYWORD_OR, "not" => TokenType::KEYWORD_NOT, "xor" => TokenType::KEYWORD_XOR, "load" => TokenType::KEYWORD_LOAD, "store" => TokenType::KEYWORD_STORE, "gload" => TokenType::KEYWORD_GLOAD, "gstore" => TokenType::KEYWORD_GSTORE, "upload" => TokenType::KEYWORD_UPLOAD, "upstore" => TokenType::KEYWORD_UPSTORE, "if" => TokenType::KEYWORD_IF, "else" => TokenType::KEYWORD_ELSE, "loop" => TokenType::KEYWORD_LOOP, "break" => TokenType::KEYWORD_BREAK, "break_if" => TokenType::KEYWORD_BREAK_IF, "break_unless" => TokenType::KEYWORD_BREAK_UNLESS, "continue" => TokenType::KEYWORD_CONTINUE, "jump" => TokenType::KEYWORD_JUMP, "jt" => TokenType::KEYWORD_JT, "jf" => TokenType::KEYWORD_JF, "jt?" => TokenType::KEYWORD_JT_KEEP, "jf?" => TokenType::KEYWORD_JF_KEEP, "call" => TokenType::KEYWORD_CALL, "call_dynamic" => TokenType::KEYWORD_CALL_DYNAMIC, "call_indirectt" => TokenType::KEYWORD_CALL_INDIRECT, "return" => TokenType::KEYWORD_RETURN, "halt" => TokenType::KEYWORD_HALT, "nop" => TokenType::KEYWORD_NOP, "lambda" => TokenType::KEYWORD_LAMBDA, "invoke" => TokenType::KEYWORD_INVOKE, "bind" => TokenType::KEYWORD_BIND, "self" => TokenType::KEYWORD_SELF, "register" => TokenType::KEYWORD_REGISTER, "unregister" => TokenType::KEYWORD_UNREGISTER, "whereis" => TokenType::KEYWORD_WHEREIS, "spawn" => TokenType::KEYWORD_SPAWN, "spawn_link" => TokenType::KEYWORD_SPAWN_LINK, "spawn_monitor" => TokenType::KEYWORD_SPAWN_MONITOR, "exit" => TokenType::KEYWORD_EXIT, "exit_remote" => TokenType::KEYWORD_EXIT_REMOTE, "kill" => TokenType::KEYWORD_KILL, "sleep" => TokenType::KEYWORD_SLEEP, "yield" => TokenType::KEYWORD_YIELD, "link" => TokenType::KEYWORD_LINK, "unlink" => TokenType::KEYWORD_UNLINK, "monitor" => TokenType::KEYWORD_MONITOR, "demonitor" => TokenType::KEYWORD_DEMONITOR, "trap_on" => TokenType::KEYWORD_TRAP_ON, "trap_off" => TokenType::KEYWORD_TRAP_OFF, "alive?" => TokenType::KEYWORD_ALIVE, "info" => TokenType::KEYWORD_INFO, "set_flag" => TokenType::KEYWORD_SET_FLAG, "get_flag" => TokenType::KEYWORD_GET_FLAG, "reload" => TokenType::KEYWORD_RELOAD, "await" => TokenType::KEYWORD_AWAIT, "send" => TokenType::KEYWORD_SEND, "send_after" => TokenType::KEYWORD_SEND_AFTER, "receive" => TokenType::KEYWORD_RECEIVE, "receive_timeout" => TokenType::KEYWORD_RECEIVE_TIMEOUT, "receive_match" => TokenType::KEYWORD_RECEIVE_MATCH, "receive_match_timeout" => TokenType::KEYWORD_RECEIVE_MATCH_TIMEOUT, "peek" => TokenType::KEYWORD_PEEK, "mailbox_size" => TokenType::KEYWORD_MAILBOX_SIZE, "cancel_timer" => TokenType::KEYWORD_CANCEL_TIMER, "try" => TokenType::KEYWORD_TRY, "catch" => TokenType::KEYWORD_CATCH, "throw" => TokenType::KEYWORD_THROW, "rethrow" => TokenType::KEYWORD_RETHROW, "stacktrace" => TokenType::KEYWORD_STACKTRACE, "end" => TokenType::KEYWORD_END, "as" => TokenType::KEYWORD_AS, "true" => TokenType::LITERAL_TRUE, "false" => TokenType::LITERAL_FALSE, "null" => TokenType::LITERAL_NULL}
Keyword lookup table
Log = ::Log.for(self)
Constructors
Instance methods
tokenize
Source