home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Crawly Crypt Collection 1
/
crawlyvol1.bin
/
program
/
compiler
/
nasm20b
/
nasm_src
/
ndebug.c
< prev
next >
Wrap
C/C++ Source or Header
|
1993-01-19
|
5KB
|
139 lines
/* ---------------------------------------------------------------------- */
/* 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;
}
}