1 #ifndef DISSECT_H
   2 #define DISSECT_H
   3 
   4 #include <stdio.h>
   5 #include "parse.h"
   6 #include "expression.h"
   7 
   8 #define U_SHIFT         8
   9 
  10 #define U_R_AOF         0x01
  11 #define U_W_AOF         0x02
  12 
  13 #define U_R_VAL         0x04
  14 #define U_W_VAL         0x08
  15 
  16 #define U_R_PTR         (U_R_VAL << U_SHIFT)
  17 #define U_W_PTR         (U_W_VAL << U_SHIFT)
  18 
  19 struct reporter
  20 {
  21         void (*r_symdef)(struct symbol *);
  22 
  23         void (*r_symbol)(unsigned, struct position *, struct symbol *);
  24         void (*r_member)(unsigned, struct position *, struct symbol *, struct symbol *);
  25 };
  26 
  27 extern void dissect(struct symbol_list *, struct reporter *);
  28 
  29 #endif