parameters: (gx, cl, vars)
return_statement: return classes_nr, nr_classes
docstring: create table for previously deduced types
docstring_summary: create table for previously deduced types
docstring_tokens: create table for previously deduced types
function: def ifa_class_types(gx, cl, vars):
      ''' create table for previously deduced types '''
      classes_nr, nr_classes = {}, {}
      for dcpa in range(1, cl.dcpa):
          attr_types = []  # XXX merge with ifa_merge_contours.. sep func?
          for var in vars:
              if (var, dcpa, 0) in gx.cnode:
                  attr_types.append(merge_simple_types(gx, gx.cnode[var, dcpa, 0].types()))
              else:
                  attr_types.append(frozenset())
          attr_types = tuple(attr_types)
          if all(attr_types):
              ifa_logger.debug('IFA %s: %s %s', dcpa, zip([var.name for var in vars], map(list, attr_types)))
          nr_classes[dcpa] = attr_types
          classes_nr[attr_types] = dcpa
      return classes_nr, nr_classes
function_tokens: def ifa_class_types ( gx , cl , vars ) : classes_nr , nr_classes = { } , { } for dcpa in range ( 1 , cl . dcpa ) : attr_types = [ ] # XXX merge with ifa_merge_contours.. sep func? for var in vars : if ( var , dcpa , 0 ) in gx . cnode : attr_types . append ( merge_simple_types ( gx , gx . cnode [ var , dcpa , 0 ] . types ( ) ) ) else : attr_types . append ( frozenset ( ) ) attr_types = tuple ( attr_types ) if all ( attr_types ) : ifa_logger . debug ( 'IFA %s: %s %s' , dcpa , zip ( [ var . name for var in vars ] , map ( list , attr_types ) ) ) nr_classes [ dcpa ] = attr_types classes_nr [ attr_types ] = dcpa return classes_nr , nr_classes