Using the parse table that you created in Part III of the project and the
scanner and symbol table manager created in the previous parts, implement a
table-driven LL(1)
parser.
Your printout should provide a preorder traversal of the parse tree as your parse the program.
If your input is:
PROGRAM Sample (Input, Output);
CONST
x = 15;
...
BEGIN
...
END;
Your output should be:
1 Program
2 Header
3 program
4 id
5 semicolon
...