1984-11-27 22:11:59 +00:00
|
|
|
#include "bem.h"
|
|
|
|
|
1984-11-27 23:13:28 +00:00
|
|
|
#ifndef NORSCID
|
|
|
|
static char rcs_id[] = "$Header$" ;
|
|
|
|
#endif
|
|
|
|
|
1984-11-27 22:11:59 +00:00
|
|
|
#define abs(X) (X>=0?X:-X)
|
|
|
|
/* Miscelaneous routines can be found here */
|
|
|
|
|
|
|
|
int errorcnt;
|
|
|
|
|
|
|
|
warning(str)
|
|
|
|
char *str;
|
|
|
|
{
|
|
|
|
printf("WARNING:%s\n",str);
|
|
|
|
}
|
|
|
|
error(str)
|
|
|
|
char *str;
|
|
|
|
{
|
|
|
|
extern int listing,yylineno;
|
|
|
|
if( !listing) printf("LINE %d:",yylineno);
|
|
|
|
printf("ERROR:%s\n",str);
|
|
|
|
errorcnt++;
|
|
|
|
}
|
|
|
|
fatal(str)
|
|
|
|
char *str;
|
|
|
|
{
|
|
|
|
printf("FATAL:%s\n",str);
|
|
|
|
exit(-1);
|
|
|
|
}
|
|
|
|
notyetimpl()
|
|
|
|
{
|
|
|
|
printf("WARNING: not yet implemented\n");
|
|
|
|
}
|
|
|
|
illegalcmd()
|
|
|
|
{
|
|
|
|
printf("WARNING: illegal command\n");
|
|
|
|
}
|
|
|
|
char *itoa(i)
|
|
|
|
int i;
|
|
|
|
{
|
|
|
|
static char buf[30];
|
|
|
|
sprintf(buf,"%d",i);
|
|
|
|
return(buf);
|
|
|
|
}
|
|
|
|
char *instrlabel(i)
|
|
|
|
int i;
|
|
|
|
{
|
|
|
|
static char buf[30];
|
|
|
|
sprintf(buf,"*%d",i);
|
|
|
|
return(buf);
|
|
|
|
}
|
|
|
|
char *datalabel(i)
|
|
|
|
int i;
|
|
|
|
{
|
|
|
|
static char buf[30];
|
|
|
|
if( i>0)
|
|
|
|
sprintf(buf,"l%d",i);
|
|
|
|
else sprintf(buf,"%d",-i);
|
|
|
|
return(buf);
|
|
|
|
}
|
|
|
|
|
|
|
|
char *salloc(length)
|
1985-01-21 14:22:07 +00:00
|
|
|
unsigned length;
|
1984-11-27 22:11:59 +00:00
|
|
|
{
|
|
|
|
char *s,*c;
|
1984-11-30 00:16:29 +00:00
|
|
|
extern char *malloc() ;
|
|
|
|
s=c= malloc(length);
|
1985-01-21 14:22:07 +00:00
|
|
|
while(length--)*c++ =0;
|
1984-11-27 22:11:59 +00:00
|
|
|
return(s);
|
|
|
|
}
|
|
|
|
|
|
|
|
char * proclabel(str)
|
|
|
|
char *str;
|
|
|
|
{
|
|
|
|
static char buf[50];
|
|
|
|
sprintf(buf,"$%s",str);
|
|
|
|
return(buf);
|
|
|
|
}
|