def _visit_field_dcl_assign_node(self, node): field_s = None try: # For arrays array_node = node.children[1].children[0] name = array_node.children[0].value type_ = get_full_type(node.children[0].value, self._t_env) dimensions = array_node.children[1].value type_ = ArrayType(type_, dimensions) field_s = ArrayFieldSymbol(name, type_, dimensions) except AttributeError: # Regular variables name = node.children[1].children[0].value type_ = get_full_type(node.children[0].value, self._t_env) field_s = FieldSymbol(name, type_) self._field_names.append(name) field_s.modifiers = node.modifiers return field_s
def _visit_field_dcl_node(self, node): """Helper method for scan_classes_methods which scans properties of the method, create a symbol for it, and returns it. """ field_s = None try: # For arrays name = node.children[1].children[0].value type_ = get_full_type(node.children[0].value, self._t_env) dimensions = node.children[1].children[1].value type_ = ArrayType(type_, dimensions) field_s = ArrayFieldSymbol(name, type_, dimensions) except AttributeError: # Regular variables name = node.children[1].value type_ = get_full_type(node.children[0].value, self._t_env) field_s = FieldSymbol(name, type_) # Build up list of the names self._field_names.append(name) field_s.modifiers = node.modifiers return field_s