struct members access

The changes in the bison file are in lines 197-211. "stack.h" and
"stack.c" files were added. The stack is used to store the chain of
accesses (struct1.struct2.struct3.member).

Because the names are incountered in reverse order, the bottom of the
stack contains "member" and the top contains "struct1".

The function "check_cur_path" is called after the last push in the bison
file. It checks the validity of the path by poping the names of the
structs.

For each name, it goes to the symbol table and checks if the current
struct has a member with the next name in the stack. If it fails at any
point, the process stops and reports an error.

When the stack is empty (meaning we've reached the last member), we need
to create a leaf using genLeaf(). We can send the needed data for
genLeaf (op,val,rval,id) using the structure LeafInfo (in the
"struct_def.c" file).

check the comments in the function "check_cur_path" in the
"struct_def.c" file.

There are 2 problems:
1. I'm not sure how to get the data needed for genLeaf.
2. What leaf are we supposed to generate if the last member is also a
structure??