From ec9d922729040b5082ea94024623685338f38aec Mon Sep 17 00:00:00 2001 From: ar6496 <78793916+ar6496@users.noreply.github.com> Date: Fri, 2 Apr 2021 11:38:14 +0530 Subject: [PATCH] Update WORKLOG.md --- WORKLOG.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/WORKLOG.md b/WORKLOG.md index eef9fd0..93043f3 100644 --- a/WORKLOG.md +++ b/WORKLOG.md @@ -5,11 +5,12 @@
## Passes: - - + - First Pass: Creates the symbol tables and adds all the elements of the program to the symbol table. The first step is creating the basic table symbol, which is the parent(root) of the symbol table structure(which forms a tree-like structure). Classes for Object, int, bool and str are added to this symbol table. This table contains the global declarations. At each level of scope, we create a symbol table which points to the parent symbol table. Variables, functions and classes are added to the appropriate symbol table according to the scope. + - Second Pass: At each node of the abstract syntax tree, the types are identified and populated. ## Recovery: - ## Challenges: - - + - Nested structures were a challenge. A function inside a function needs to handle variable references as well as ensure function calls have appropriate scope. ## Improvements: - Added more tests to rigorously check program flow and indentation.