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