def _scan_method_array(self, node):
     """Create a method symbol for a method which returns an array
     type.
     """
     name = node.children[0].value
     type_ = self._get_method_node_type(node)
     type_ = ArrayType(type_, node.children[2].value)
     params = visit(self, node.children[3])
     if params == None:
         params = []
     method_s = MethodSymbol(name, type_, params)
     method_s.modifiers = node.modifiers
     return method_s
 def _scan_method(self, node):
     """Helper method for scan_classes_methods which scans properties of the
     method, create a symbol for it, and returns it
     """
     name = node.children[0].value
     type_ = self._get_method_node_type(node)
     # Create variable symbols for each parameter, and add them to
     # the method symbol
     params = visit(self, node.children[2])
     if params == None:
         params = []
     method_s = MethodSymbol(name, type_, params)
     try:
         method_s.modifiers = node.modifiers
     except AttributeError:
         # Abstract methods do not have modifiers
         pass
     return method_s