Update of /cvsroot/agd/server/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv32667
Modified Files:
debug.c
Log Message:
Bitwise operators; showing global variables and function arguments
Index: debug.c
===================================================================
RCS file: /cvsroot/agd/server/src/debug.c,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -d -r1.19 -r1.20
--- debug.c 21 Jul 2004 12:09:15 -0000 1.19
+++ debug.c 24 Jul 2004 18:00:40 -0000 1.20
@@ -133,9 +133,26 @@
case F_DIV_EQ: return "F_DIV_EQ";
case F_MOD: return "F_MOD";
case F_MOD_EQ: return "F_MOD_EQ";
+ case F_POW: return "F_POW";
+ case F_POW_EQ: return "F_POW_EQ";
+
+ case F_BAND: return "F_BAND";
+ case F_BAND_EQ: return "F_BAND_EQ";
+ case F_BOR: return "F_BOR";
+ case F_BOR_EQ: return "F_BOR_EQ";
+ case F_BXOR: return "F_XOR";
+ case F_BXOR_EQ: return "F_BXOR_EQ";
+ case F_BNOT: return "F_BNOT";
+ case F_BNOT_EQ: return "F_BNOT_EQ";
+ case F_BSL: return "F_BSL";
+ case F_BSL_EQ: return "F_BSL_EQ";
+ case F_BSR: return "F_BSR";
+ case F_BSR_EQ: return "F_BSR_EQ";
+
case F_ASSIGN: return "F_ASSIGN";
case F_POP: return "F_POP";
case F_POP_N: return "F_POP_N";
+ case F_POP_PENUL: return "F_POP_PENUL";
case F_CALL_LFUN: return "F_CALL_LFUN";
case F_CALL_DFUN: return "F_CALL_DFUN";
case F_CALL_OTHER: return "F_CALL_OTHER";
@@ -164,53 +181,18 @@
}
}
-#if 0
-void print_array(array_t *a)
-{
- int i;
- printf("data: %p; ", (void *) a->data);
- printf("({");
- if(!a->data) {
- printf(" })");
- return;
- }
- for(i = 0; i < a->length; i++) {
- printf("%ld/%p", i, a->data[i]);
- if(i + 1 < a->length)
- printf(", ");
- }
- if(!i) printf(" ");
- printf("})");
-}
-
-void print_var_arr(array_t *a)
+void print_variables(variable_t *a, int num)
{
int i;
- printf("({");
- for(i = 0; i < a->length; i++) {
- print_var((variable_t *) a->data[i], 1);
- if(i + 1 < a->length)
- printf(",");
- }
- printf("})");
-}
-
-void print_vmt_arr(array_t *a)
-{
- int j;
printf("({ ");
- if(a) {
- for(j=0;j<a->length;j++) {
- print_vm_token(a, &j);
- if(j+1<a->length)
- printf(", ");
- }
+ for(i=0;i<num;i++) {
+ print_var(&a[i]);
+ if(i+1<num)
+ printf(", ");
}
- printf(" }) ");
+ printf(" })");
}
-#endif
-
void print_instr(program_t *prog, function_t *f)
{
int i;
@@ -286,17 +268,25 @@
void print_code(program_t *p)
{
- int i;
+ int i, j;
function_t *f;
printf("Functions: \n");
for(i = 0; i < p->numfunc; i++) {
f = p->functions[i];
- printf("Function %d:\n", i);
- printf(" Type %s\n", type2str(f->type));
- printf(" Arguments: ");
-/* print_var_arr(&f->args);*/
- printf("\n");
+ printf("Function %d (%s):\n", i, p->fun_table[i]);
+ printf(" Type: %s\n", type2str(f->type));
+ if(!f->num_arg)
+ printf(" No arguments\n");
+ else {
+ printf(" %d argument%s: ({ ", f->num_arg, f->num_arg!=1?"s":"");
+ for(j=0;j<f->num_arg;j++) {
+ printf("%s", type2str(f->args[j]));
+ if(j+1<f->num_arg)
+ printf(", ");
+ }
+ printf(" })\n");
+ }
printf(" Code:\n");
print_instr(p, f);
printf("\n");
@@ -304,5 +294,4 @@
if(i == 0)
printf("({ })\n");
}
-#endif /* ifdef DEBUG */
-
+#endif /* #ifdef DEBUG */
|