/************************************************************ yycpdbug.cpp This file can be freely modified for the generation of custom code. Copyright (c) 1999 Bumble-Bee Software Ltd. ************************************************************/ #include #ifdef _WIN32 #include #include #endif #include "cyacc.h" #ifdef YYDEBUG const char* yyparser::yytokenstring(int token) const { yyassert(token >= 0); const yysymbol_t YYNEARFAR* symbol = yysymbol; while (symbol->name != NULL) { if (symbol->token == token) { return symbol->name; } symbol++; } return "illegal-token"; } void yyparser::yydgettoken(int token) const { yyassert(token >= 0); if (::yydebug || yydebug) { char string[128]; const char* tokenstring = yytokenstring(token); yyassert(tokenstring != NULL); sprintf(string, "%p: get token ", (void*)this); yydebugoutput(string); yydebugoutput(tokenstring); sprintf(string, " (%d)\n", (int)token); yydebugoutput(string); } } void yyparser::yydshift(int token) const { yyassert(token >= 0); if (::yydebug || yydebug) { char string[128]; const char* tokenstring = yytokenstring(token); yyassert(tokenstring != NULL); sprintf(string, "%p: shift token ", (void*)this); yydebugoutput(string); yydebugoutput(tokenstring); sprintf(string, " (%d)\n", (int)token); yydebugoutput(string); } } void yyparser::yydreduce(int rule) const { yyassert(rule >= 0); if (::yydebug || yydebug) { char string[128]; sprintf(string, "%p: reduce rule ", (void*)this); yydebugoutput(string); yydebugoutput(yyrule[rule]); sprintf(string, " (%d)\n", (int)rule); yydebugoutput(string); } } void yyparser::yydsyntaxerror() const { if (::yydebug || yydebug) { char string[128]; sprintf(string, "%p: syntax error\n", (void*)this); yydebugoutput(string); } } void yyparser::yydaccept() const { if (::yydebug || yydebug) { char string[128]; sprintf(string, "%p: accept\n", (void*)this); yydebugoutput(string); } } void yyparser::yydabort() const { if (::yydebug || yydebug) { char string[128]; sprintf(string, "%p: abort\n", (void*)this); yydebugoutput(string); } } void yyparser::yyddiscard(int token) const { yyassert(token >= 0); if (::yydebug || yydebug) { char string[128]; const char* tokenstring = yytokenstring(token); yyassert(tokenstring != NULL); sprintf(string, "%p: discard token ", (void*)this); yydebugoutput(string); yydebugoutput(tokenstring); sprintf(string, " (%d)\n", (int)token); yydebugoutput(string); } } void yyparser::yydexit(int exitcode) const { if (::yydebug || yydebug) { char string[128]; sprintf(string, "%p: exit with code %d\n", (void*)this, (int)exitcode); yydebugoutput(string); } } void yyparser::yydthrowerror(int errorpop) const { if (::yydebug || yydebug) { char string[128]; sprintf(string, "%p: throw error and pop %d error handling state(s)\n", (void*)this, (int)errorpop); yydebugoutput(string); } } void yyparser::yydretire(int retirecode) const { if (::yydebug || yydebug) { char string[128]; sprintf(string, "%p: retire with code %d\n", (void*)this, (int)retirecode); yydebugoutput(string); } } void yyparser::yydattemptrecovery() const { if (::yydebug || yydebug) { char string[128]; sprintf(string, "%p: attempting error recovery\n", (void*)this); yydebugoutput(string); } } void yyparser::yydebugoutput(const char *string) const { yyassert(string != NULL); #ifdef _WIN32 if (yydebugout != NULL) { #else yyassert(yydebugout != NULL); #endif while (*string != '\0') { putc(*string++, yydebugout); } if (::yydebugflush || yydebugflush) { fflush(yydebugout); } #ifdef _WIN32 } else { OutputDebugString(string); } #endif } #endif