home *** CD-ROM | disk | FTP | other *** search
- /* ---------------------------------------------------------------------- */
- /* Copyright (C) 1991 by Natürlich! */
- /* This file is copyrighted! */
- /* Refer to the documentation for details. */
- /* ---------------------------------------------------------------------- */
- #include "defines.h"
- #include "nasm.h"
- #include <stdio.h>
- #include "y_tab.h"
-
- extern char *yylval;
-
- void prtname( no)
- {
- char *x = 0;
-
- fprintf( ESTREAM, "Token %d == ", no);
- switch( no)
- {
- case T_EOL : x = "T_EOL"; break;
- case T_LABEL : fprintf( ESTREAM, "T_LABEL \"%s\"", yylval); break;
- case T_DOTEQ : x = "T_DOTEQ"; break;
- case T_INSTR : x = "T_INSTR"; break;
- case T_IDENT : fprintf( ESTREAM, "T_IDENT \"%s\"", yylval); break;
- case T_EXPR : x = "T_EXPR"; break;
- case T_IF : x = "T_IF"; break;
- case T_ELSE : x = "T_ELSE" ; break;
- case T_ENDIF : x = "T_ENDIF"; break;
- case T_ORG : x = "T_ORG"; break;
- case T_DS : x = "T_DS"; break;
- case T_WORD : x = "T_WORD"; break;
- case T_BYTE : x = "T_BYTE"; break;
- case T_SBYTE : x = "T_SBYTE"; break;
- case T_OPT : x = "T_OPT"; break;
- case T_MACRO : x = "T_MACRO"; break;
- case T_ENDM : x = "T_ENDM"; break;
- case T_END : x = "T_END"; break;
- case T_NUM : x = "T_NUM"; break;
- case T_ACCU : x = "T_ACCU"; break;
- case T_AND : x = "T_AND"; break;
- case T_OR : x = "T_OR"; break;
- case T_NEQ : x = "T_NEQ"; break;
- case T_GEQ : x = "T_GEQ"; break;
- case T_LEQ : x = "T_LEQ"; break;
- case T_NOT : x = "T_NOT"; break;
- case T_DEF : x = "T_DEF"; break;
- case T_NUMBER : fprintf( ESTREAM, "T_NUMBER=%ld", yylval); break;
- case T_CHAR : x = "T_CHAR"; break;
- case T_STRING: x = "T_STRING"; break;
- case T_NO : x = "T_NO"; break;
- case T_OBJ : x = "T_OBJ"; break;
- case T_MLIST : x = "T_MLIST"; break;
- case T_CLIST : x = "T_CLIST"; break;
- case T_EJECT : x = "T_EJECT"; break;
- case T_XREF : x = "T_XREF"; break;
- case T_ERR : x = "T_ERR"; break;
- case T_PAGE : x = "T_PAGE"; break;
- case T_ERROR : x = "T_ERROR"; break;
- case T_TITLE : x = "T_TITLE"; break;
- case T_DBYTE : x = "T_DBYTE"; break;
- case T_TAB : x = "T_TAB"; break;
- case T_FLOAT : x = "T_FLOAT"; break;
- case T_XFLOAT: x = "T_XFLOAT"; break;
- case T_UNDEF : x = "T_UNDEF"; break;
- case T_CBYTE : x = "T_CBYTE"; break;
- case T_LOCAL : x = "T_LOCAL"; break;
- case T_SET : x = "T_SET"; break;
- case T_REF : x = "T_REF"; break;
- case T_LIST : x = "T_LIST"; break;
- case T_FILE : x = "T_FILE"; break;
- case T_PARA : x = "T_PARA"; break;
- case T_MPARA : x = "T_MPARA"; break;
- case T_MSPARA : x = "T_MSPARA"; break;
- case T_MLPARA : x = "T_MLPARA"; break;
- case T_MLSPARA : x = "T_MLSPARA"; break;
- case T_INCLUDE : x = "T_INCLUDE"; break;
- default :
- switch( no)
- {
- case ' ' : x = "[SPACE]"; break;
- case '\t' : x = "[TAB]"; break;
- case '\n' : x = "[LF]"; break;
- case '\r' : x = "[CR]"; break;
- case '\f' : x = "[FF]"; break;
- default :
- if( no > ' ' && no <= 126)
- fprintf( ESTREAM, "'%c'", no);
- else
- fprintf( ESTREAM, "#$%04X", no);
- }
- }
- if( x)
- fputs( x, ESTREAM);
- putc( '\n', ESTREAM);
- }
-
- #include <setjmp.h>
-
- #define NOLONGS (sizeof( jmp_buf) >> 2)
- void show_jmp( s, foo)
- char *s;
- jmp_buf foo;
- {
- long *p = (long *) foo;
- int i = 0;
-
- fprintf( ESTREAM, "\"%s\":\n", s);
- do
- fprintf( ESTREAM, "[%2.2d]:%8.8lx [%2.2d]:%8.8lx [%2.2d]:%8.8lx [%2.2d]:%8.8lx\n",
- i, *p, i+1, p[1], i+2, p[2], i+3, p[3]);
- while( p +=4, (i+=4) < NOLONGS);
- }
-
- void dump_buffer( p)
- register buffer huge *p;
- {
- register int i = 0, j;
- while( p)
- {
- for( j = i; j; --j) putc( ' ', ESTREAM);
- fprintf( ESTREAM, "BUFFER @$%lx\n", p);
- for( j = i; j; --j) putc( ' ', ESTREAM);
- fprintf( ESTREAM," ->next : $%lx ->before : $%lx\n",
- p->next, p->before);
- for( j = i; j; --j) putc( ' ', ESTREAM);
- fprintf( ESTREAM, "buflist : $%lx name : \"%s\"\n",
- p->buflist, p->name);
- for( j = i; j; --j) putc( ' ', ESTREAM);
- fprintf( ESTREAM, "remain = %ld oremain = %ld line = %d\n",
- p->remain, p->oremain, p->line);
- for( j = i; j; --j) putc( ' ', ESTREAM);
- fprintf( ESTREAM, "_aux1 = %d _aux2 = %d type = %x\n",
- p->_aux1, p->_aux2, p->type);
- i += 3;
- p = p->before;
- }
- }
-
-