#include "lex/Lexer.hpp"
#include <cctype>
#include <mutable/tables/Keywords.tbl>
Go to the source code of this file.
|
#define | UNDO(CHR) { in.putback(c_); c_ = CHR; pos_.column--; } |
|
#define | M_KEYWORD(tok, text) keywords_.emplace(pool(#text), TK_##tok); |
|
#define | LEX(chr, text, tt, SUB) case chr: step(); switch (c_) { SUB } return Token(start_, pool(text), tt); |
|
#define | GUESS(first, SUB) case first: step(); switch (c_) { SUB } UNDO(first); break; |
|
#define | DIGITS(num) for (auto i = 0; i < num; ++i) if (is_dec(c_)) push(); else invalid = true; |
|
◆ DIGITS
#define DIGITS |
( |
|
num | ) |
for (auto i = 0; i < num; ++i) if (is_dec(c_)) push(); else invalid = true; |
◆ GUESS
#define GUESS |
( |
|
first, |
|
|
|
SUB |
|
) |
| case first: step(); switch (c_) { SUB } UNDO(first); break; |
◆ LEX
#define LEX |
( |
|
chr, |
|
|
|
text, |
|
|
|
tt, |
|
|
|
SUB |
|
) |
| case chr: step(); switch (c_) { SUB } return Token(start_, pool(text), tt); |
◆ M_KEYWORD
#define M_KEYWORD |
( |
|
tok, |
|
|
|
text |
|
) |
| keywords_.emplace(pool(#text), TK_##tok); |
◆ UNDO
#define UNDO |
( |
|
CHR | ) |
{ in.putback(c_); c_ = CHR; pos_.column--; } |