+++ All declarations read

+++ 44 types
    Type   0:        0    void
    Type   1:        1    unsigned char
    Type   2:        1    char
    Type   3:        2    unsigned short
    Type   4:        2    short
    Type   5:        8    unsigned long
    Type   6:        8    long
    Type   7:        4    unsigned int
    Type   8:        4    int
    Type   9:        4    float
    Type  10:        8    double
    Type  11:       26    array(26,char)
    Type  12:      128    array(128,char)
    Type  13:        8    pointer(unsigned long)
    Type  14:        8    pointer(pointer(unsigned long))
    Type  15:        8    pointer(pointer(pointer(unsigned long)))
    Type  16:       40    array(5,unsigned long)
    Type  17:       56    array(7,unsigned long)
    Type  18:      336    array(6,array(7,unsigned long))
    Type  19:       32    array(4,pointer(pointer(unsigned long)))
    Type  20:       96    array(3,array(4,pointer(pointer(unsigned long))))
    Type  21:      192    array(2,array(3,array(4,pointer(pointer(unsigned long)))))
    Type  22:       24    array(3,double)
    Type  23:      192    array(8,array(3,double))
    Type  24:        8    pointer(void)
    Type  25:      128    struct stud with symbol table 1
    Type  26:       10    array(10,char)
    Type  27:      101    array(101,char)
    Type  28:    25600    array(200,struct stud with symbol table 1)
    Type  29:    12800    array(100,struct stud with symbol table 1)
    Type  30:    19200    array(150,struct stud with symbol table 1)
    Type  31:     9600    array(75,struct stud with symbol table 1)
    Type  32:    32000    array(250,struct stud with symbol table 1)
    Type  33:       16    struct complex with symbol table 2
    Type  34:       40    struct treenode with symbol table 3
    Type  35:        8    pointer(struct treenode with symbol table 3)
    Type  36:      256    array(32,pointer(struct treenode with symbol table 3))
    Type  37:       28    struct listnode with symbol table 4
    Type  38:       12    struct coordinates with symbol table 5
    Type  39:        8    pointer(struct listnode with symbol table 4)
    Type  40:     1008    struct graph with symbol table 6
    Type  41:      200    array(100,unsigned short)
    Type  42:        8    pointer(unsigned short)
    Type  43:      800    array(100,pointer(unsigned short))

+++ Symbol table 0 [main]
    letter               0 - 0           type =    2 = char
    alphabet             4 - 29          type =   11 = array(26,char)
    ASCII               32 - 159         type =   12 = array(128,char)
    a                  160 - 167         type =    5 = unsigned long
    p                  168 - 175         type =   13 = pointer(unsigned long)
    q                  176 - 183         type =   14 = pointer(pointer(unsigned long))
    r                  184 - 191         type =   15 = pointer(pointer(pointer(unsigned long)))
    A                  192 - 231         type =   16 = array(5,unsigned long)
    B                  232 - 567         type =   18 = array(6,array(7,unsigned long))
    C                  568 - 759         type =   21 = array(2,array(3,array(4,pointer(pointer(unsigned long)))))
    cube               760 - 951         type =   23 = array(8,array(3,double))
    vptr               952 - 959         type =   24 = pointer(void)
    FooBar             960 - 1087        type =   25 = struct stud with symbol table 1
    BTech             1088 - 26687       type =   28 = array(200,struct stud with symbol table 1)
    Dual             26688 - 39487       type =   29 = array(100,struct stud with symbol table 1)
    MTech            39488 - 58687       type =   30 = array(150,struct stud with symbol table 1)
    MS               58688 - 68287       type =   31 = array(75,struct stud with symbol table 1)
    PhD              68288 - 100287      type =   32 = array(250,struct stud with symbol table 1)
    root            100288 - 100295      type =   35 = pointer(struct treenode with symbol table 3)
    ptrarr          100296 - 100551      type =   36 = array(32,pointer(struct treenode with symbol table 3))
    head            100552 - 100559      type =   39 = pointer(struct listnode with symbol table 4)
    tail            100560 - 100567      type =   39 = pointer(struct listnode with symbol table 4)
    G               100568 - 101575      type =   40 = struct graph with symbol table 6
    H               101576 - 102583      type =   40 = struct graph with symbol table 6
    Total width = 102584

+++ Symbol table 1 [struct stud]
    roll                 0 - 9           type =   26 = array(10,char)
    name                12 - 112         type =   27 = array(101,char)
    yob                116 - 117         type =    4 = short
    CGPA               120 - 123         type =    9 = float
    gender             124 - 124         type =    2 = char
    Total width = 128

+++ Symbol table 2 [struct complex]
    real                 0 - 7           type =   10 = double
    imag                 8 - 15          type =   10 = double
    Total width = 16

+++ Symbol table 3 [struct treenode]
    value                0 - 15          type =   33 = struct complex with symbol table 2
    left                16 - 23          type =   35 = pointer(struct treenode with symbol table 3)
    right               24 - 31          type =   35 = pointer(struct treenode with symbol table 3)
    parent              32 - 39          type =   35 = pointer(struct treenode with symbol table 3)
    Total width = 40

+++ Symbol table 4 [struct listnode]
    point                0 - 11          type =   38 = struct coordinates with symbol table 5
    next                12 - 19          type =   39 = pointer(struct listnode with symbol table 4)
    prev                20 - 27          type =   39 = pointer(struct listnode with symbol table 4)
    Total width = 28

+++ Symbol table 5 [struct coordinates]
    x                    0 - 3           type =    8 = int
    y                    4 - 7           type =    8 = int
    z                    8 - 11          type =    8 = int
    Total width = 12

+++ Symbol table 6 [struct graph]
    n                    0 - 1           type =    3 = unsigned short
    m                    4 - 5           type =    3 = unsigned short
    degree               8 - 207         type =   41 = array(100,unsigned short)
    adjlist            208 - 1007        type =   43 = array(100,pointer(unsigned short))
    Total width = 1008
