diff --git a/lib/c/experimental/labcomm_sig_parser.c b/lib/c/experimental/labcomm_sig_parser.c index e7833547ac2b4e2d9f4f7de33d8bc5a41b67d02b..a80231b439c142e19edae6baf56c0d984e29a217 100644 --- a/lib/c/experimental/labcomm_sig_parser.c +++ b/lib/c/experimental/labcomm_sig_parser.c @@ -10,6 +10,7 @@ #include <string.h> #define DEBUG +#undef DEBUG_STACK #define FALSE 0 #define TRUE 1 @@ -222,7 +223,7 @@ int do_parse(buffer *d) { unsigned int uid = pop(d); printf(", name = "); accept_string(d); - // ignore, for now. This should do something as + pop(d); // ignore, for now. This should do something as // char *name = (char*) pop(d); // store or print name // free(name) @@ -246,9 +247,9 @@ int do_parse(buffer *d) { accept_type(d); printf(" : "); //unsigned int dt = pop(d); -#if 0 unsigned int end = d->idx; unsigned int len = end-start; +#if 0 if(len <= MAX_SIG_LEN) { signatures_length[uid-USER_ID_BASE] = len; memcpy(signatures_name[uid-USER_ID_BASE], &d->c[nstart+3], nlen+1); @@ -263,6 +264,7 @@ int do_parse(buffer *d) { } printf("signature for uid %x: %s (start=%x,end=%x, nlen=%d,len=%d)\n", uid, get_signature_name(uid), start,end, nlen, len); #endif + printf("signature for uid %x: (start=%x,end=%x, nlen=%d,len=%d)\n", uid, start,end, nlen, len); } else { printf("*** got sample data, exiting\n"); exit(0); @@ -274,6 +276,7 @@ int accept_user_id(buffer *d){ if(uid >= USER_ID_BASE) { advance32(d); printf("uid = %x ", uid); + push(d, uid); return TRUE; } else { return FALSE; @@ -355,7 +358,7 @@ int accept_array_decl(buffer *d){ if(tid == ARRAY_DECL) { advance32(d); unsigned int nidx = get32(d); - printf("%d dim array: ", nidx); + printf("%d dim array", nidx); int i; unsigned int numVar=0; unsigned int size=1; @@ -363,16 +366,15 @@ int accept_array_decl(buffer *d){ unsigned int idx = get32(d); if(idx == 0) { numVar++; - printf("variable index (numVar=%d), ",numVar); + printf("[_] "); } else { - printf("fixed index: %d, ", idx); + printf("[%d] ", idx); size*=idx; } - printf("\n"); } + printf(" of "); unsigned int et=accept_type(d); - printf("array element type: %x\n", et); - pop(d); + //pop(d); //push(d,tid); return TRUE; } else { @@ -404,7 +406,7 @@ int accept_struct_decl(buffer *d){ int accept_field(buffer *d){ printf("field "); accept_string(d); - // ignore, for now + pop(d); // ignore, for now printf(" : "); accept_type(d); printf("\n"); @@ -635,7 +637,7 @@ int main() { } test_read(&buf); do{ - printf("trying to read another packet\n"); + printf("------------\n"); } while(more(&buf) && do_parse(&buf)); printf("done\n"); }