Semantic Checks
TODOs
-
Checking for uses of undeclared variables -
test
-
-
Checking for multiple declarations of variables with the same name in the same scope -
test
-
-
Checking for multiple definitions of functions with the same name -
test
-
-
Checking for calls to unknown functions -
test
-
-
Checking for presence of main
and correct signature-
test
-
-
Checking that all execution paths of a non-void function return a value - You may assume that there is no dead code
-
test
-
Type checking (remember, neither implicit nor explicit type conversions) - Includes checking arguments and return types for call expressions
- Don't forget that an array's type includes its size
-
test