Skip to content

Files

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Comp G51

A repository to host COMP project

Authors

Checkpoint 1

  1. Develop a parser for yal using JavaCC and taking as starting point the yal grammar furnished with a global LL(1) replaced by a larger local lookahead when needed.
  2. Include error treatment and recovery mechanisms -> Deep Error Recovery
  3. Proceed with the specification of the file jjt to generate, using JJTree, a new version of the parser including in this case the generation of the syntax tree(the generated tree should be an AST), annotating the nodes and leafs of the tree with the information (including tokens) necessary to perform the subsequent compiler steps;

Checkpoint 2

  1. Change grammar to work only with LL(1).
  2. Include error treatment and recovery mechanisms -> Deep Error Recovery. (aborted by teacher suggestion due to time management problems)
  3. Improve AST.
  4. Create a symbol table using the Visitor Pattern.
  5. Add full Semantic Analysis.
  6. Add very partially jasmin code generation.

Checkpoint 3

  1. Completed code generation for the invocation of functions in yal.
  2. Added code generation for arithmetic expressions.
  3. Added code generation for conditional instructions.
  4. Added code generation for loops.
  5. Added code generation for arrays.
  6. Temporarily disabled semantic analysis, as it is currently misjudging errors and preventing code generation.