code: def visit_FunctionDeclaration(self, node):
          
          for parameter in node.parameters:
              try:
                  var_name = parameter.variable.identifier.name
                  var_is_mutable = parameter.variable.is_mutable
              except AttributeError:
                  raise SementicError('Invalid parameter.')
  
              var_symbol = VariableSymbol(var_name, var_is_mutable)
  
              if self.table[var_name] is not None:
                  raise SementicError(f"Duplicated `{var_name}` function parameter.")
  
              self.table[var_name] = var_symbol
  
          self.visit(node.body)
docs: Visitor for `FunctionDeclaration` AST node.