Advertisement
Guest User

Untitled

a guest
Mar 19th, 2019
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 0.74 KB | None | 0 0
  1. public Void visit(FunctionDeclaration funcDeclar, Void params) {
  2.         super.visit(funcDeclar, params);
  3.         if (!symbolTable.insert(funcDeclar)) {
  4.             ErrorHandler.getInstance()
  5.                     .addError(new ErrorType("Function '" + funcDeclar.getName() + "' has already been defined"));
  6.         } else {
  7.             symbolTable.set();
  8.            
  9.             for (VarDeclaration varDeclar : ((FunctionType) funcDeclar.getType()).getParams()) {
  10.                 this.visit(varDeclar, params);
  11.             }
  12.  
  13.             for (Statement st : funcDeclar.getBody()) {
  14.                 if (st instanceof VarDeclaration) {
  15.                     this.visit((VarDeclaration) st, params);
  16.                 }
  17.                
  18.                 if(st instanceof Invocation) {
  19.                     this.visit(((Invocation) st).getName(), params);
  20.                 }
  21.             }
  22.            
  23.             symbolTable.reset();
  24.         }
  25.         return null;
  26.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement