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