141 NL_PARSER(term,
"Empty stack diags at '%s'!", term->toString().c_str());
151 NL_PARSER(term,
"Empty stack diags at '%s'!", term->toString().c_str());
161 for (
int pos = 0; pos <
m_diag_stack[top].size(); pos++) {
176 switch (
Test(name)) {
179 NL_PARSER(term,
"Emit %s near at '%s'!", name, term->toString().c_str());
static std::string RemoveDiagPrefix(const std::string name)
bool TestIgnore(const char *name)
void Push(const TermPtr term=nullptr)
bool Apply(const char *name, State state, const TermPtr term=nullptr)
void Pop(const TermPtr term=nullptr)
static const char * DIAG_MACRO_NOT_FOUND
Diag::State Test(const char *name)
bool Emit(const char *name, const TermPtr term=nullptr)
bool Register(const char *name, State state, const char *desc=nullptr)
static const char * DIAG_MACRO_STORAGE_NOT_EXIST
static const char * DIAG_EXTRA_TOKENS
static const char * DIAG_FILL_REMAINDER
static std::string ChangeState(const std::string name, State from_state, State to_state)
DiagStackType m_diag_stack
static const char * DIAG_ERROR_LIMIT
#define LOG_RUNTIME(format,...)
#define ASSERT(condition)
#define LOG_LEVEL_WARNING
std::shared_ptr< Term > TermPtr
#define NL_PARSER(term, format,...)
#define NL_MESSAGE(level, term, format,...)