mutable
A Database System for Research and Fast Prototyping
Loading...
Searching...
No Matches
Macros
Lexer.cpp File Reference
#include "lex/Lexer.hpp"
#include <cctype>
#include <mutable/tables/Keywords.tbl>
Include dependency graph for Lexer.cpp:

Go to the source code of this file.

Macros

#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;
 

Macro Definition Documentation

◆ 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--; }

Definition at line 6 of file Lexer.cpp.