code: def get_field_references(ctx, field_names, simplify=False):
      
      field_dict = {}
      for field_name in field_names:
          field = get_field(ctx, field_name)
          if (
              not simplify
              or field is not None
              and (not isinstance(field, list) or len(field) > 0)
          ):
              if isinstance(field, list):
                  value = [ctx.children.index(el) for el in field]
              elif field is not None:
                  value = ctx.children.index(field)
              else:
                  value = None
              field_dict[field_name] = value
      return field_dict
docs: Create a mapping from fields to corresponding child indices
      :param ctx: ANTLR node
      :param field_names: list of strings
      :param simplify: if True, omits fields with empty lists or None
          this makes it easy to detect nodes that only use a single field
          but it requires more work to combine fields that can be empty
      :return: mapping str -> int | int[]