ING_DB
This commit is contained in:
parent
9ae91f30e5
commit
3c0b688b6a
|
|
@ -0,0 +1,103 @@
|
|||
/*
|
||||
** --- RG_PUSH.C ------- PUSH SYMBOL INTO STACK -----------------------------
|
||||
**
|
||||
** Version: @(#)rg_push.c 4.0 02/05/89
|
||||
**
|
||||
*/
|
||||
|
||||
# include <stdio.h>
|
||||
# include "rg_int.h"
|
||||
|
||||
|
||||
push_str(tos, str, len)
|
||||
register SYMBOL *tos;
|
||||
register char *str;
|
||||
register int len;
|
||||
{
|
||||
register union anytype *any;
|
||||
|
||||
tos->sy_frmt = CHAR;
|
||||
tos->sy_frml = ctou(len);
|
||||
any = &tos->sy_val;
|
||||
any->cptype = str;
|
||||
# ifdef RG_TRACE
|
||||
if (TR_PUSH)
|
||||
{
|
||||
printf("PUSH-STR on %d, len=%d '", tos - Stack, len);
|
||||
while (len--)
|
||||
{
|
||||
putchar(*str);
|
||||
str++;
|
||||
}
|
||||
printf("'\n");
|
||||
}
|
||||
# endif
|
||||
}
|
||||
|
||||
|
||||
push_dbl(tos, val)
|
||||
register SYMBOL *tos;
|
||||
double val;
|
||||
{
|
||||
register union anytype *any;
|
||||
|
||||
tos->sy_frmt = FLOAT;
|
||||
tos->sy_frml = sizeof (double);
|
||||
any = &tos->sy_val;
|
||||
any->f8type = val;
|
||||
# ifdef RG_TRACE
|
||||
if (TR_PUSH)
|
||||
printf("PUSH-DBL on %d, %10.3f\n",
|
||||
tos - Stack, val);
|
||||
# endif
|
||||
}
|
||||
|
||||
|
||||
push_bin(tos, val)
|
||||
register SYMBOL *tos;
|
||||
register BOOL val;
|
||||
{
|
||||
register union anytype *any;
|
||||
|
||||
tos->sy_frmt = BIN;
|
||||
tos->sy_frml = sizeof (BOOL);
|
||||
any = &tos->sy_val;
|
||||
any->booltype = val;
|
||||
# ifdef RG_TRACE
|
||||
if (TR_PUSH)
|
||||
printf("PUSH-BIN on %d, %d\n",
|
||||
tos - Stack, val);
|
||||
# endif
|
||||
}
|
||||
|
||||
|
||||
char *push_rc(tos, rc, len)
|
||||
register SYMBOL *tos;
|
||||
register char *rc;
|
||||
register int len;
|
||||
{
|
||||
# ifdef RG_TRACE
|
||||
if (TR_PUSH)
|
||||
printf("PUSH-RC\n");
|
||||
# endif
|
||||
push_str(tos, rc, len);
|
||||
return (rc + len);
|
||||
}
|
||||
|
||||
|
||||
push_int(tos, val)
|
||||
register SYMBOL *tos;
|
||||
register int val;
|
||||
{
|
||||
register union anytype *any;
|
||||
|
||||
tos->sy_frmt = INT;
|
||||
tos->sy_frml = sizeof (short);
|
||||
any = &tos->sy_val;
|
||||
any->i2type = val;
|
||||
# ifdef RG_TRACE
|
||||
if (TR_PUSH)
|
||||
printf("PUSH-INT on %d, %d\n",
|
||||
tos - Stack, val);
|
||||
# endif
|
||||
}
|
||||
Loading…
Reference in New Issue