home *** CD-ROM | disk | FTP | other *** search
/ ftp.cs.arizona.edu / ftp.cs.arizona.edu.tar / ftp.cs.arizona.edu / icon / historic / v941.tgz / icon.v941src.tar / icon.v941src / src / common / typespec.txt < prev    next >
Text File  |  2000-07-29  |  3KB  |  88 lines

  1. # This file contains Icon type specifications.
  2.  
  3. #   The first group of types have special semantics that are not completely
  4. #   captured by the specification system. 
  5.  
  6.  
  7.     string{s}:    simple
  8.                   # special form of descriptor
  9.                   # has RLT return construct with two arguments
  10.  
  11.     integer{i}:   simple
  12.                   # two kinds of dwords
  13.  
  14.     record{R}:    simple # really special aggregate
  15.                   return block_pointer
  16.                   # special semantics for allocating sub-types
  17.                   # different sub-types have different components
  18.  
  19.     proc:         simple
  20.                   return block_pointer
  21.                   # special semantics for allocating sub-types
  22.                 
  23.     coexpr{C}:    simple
  24.                   return block_pointer
  25.                   # special semantics for allocating sub-types
  26.  
  27.     # sub-string trapped variables
  28.     tvsubs{sstv}: aggregate(str_var)
  29.                   # has RTL return construct with three arguments
  30.                   # variable type with special dereferencing semantics
  31.  
  32.     # table-element trapped variables
  33.     tvtbl{tetv}:  aggregate(trpd_tbl)
  34.                   return block_pointer
  35.                   # variable type with special dereferencing semantics
  36.  
  37.  
  38. #   The second group of types are required by iconc but have no special
  39. #   semantics.
  40.  
  41.        null{n}:  simple
  42.  
  43.        cset{c}:  simple
  44.                  return block_pointer
  45.  
  46.        real{r}:  simple
  47.                  return block_pointer
  48.  
  49.        list{L}:  aggregate(var lst_elem{LE})
  50.                  return block_pointer
  51.  
  52.        table{T}: aggregate(tbl_key, var tbl_val{TV}, tbl_dflt)
  53.                  return block_pointer
  54.  
  55.  
  56. #    The third group of types appear only in RTL code. They have no special
  57. #    semantics nor any special uses by iconc.
  58.  
  59.        file{f}:  simple
  60.                  return block_pointer
  61.  
  62.        set{S}:   aggregate(set_elem)
  63.                  return block_pointer
  64.  
  65.        # integer keyword variables: &random, &trace, &error
  66.        kywdint:  variable always integer
  67.                  return descriptor_pointer
  68.  
  69.        # &subject
  70.        kywdsubj: variable always string
  71.                  return descriptor_pointer
  72.  
  73.        # &pos
  74.        kywdpos:  variable always integer
  75.                  return descriptor_pointer
  76.  
  77.        # &eventsource, &eventvalue, &eventcode
  78.        kywdevent: variable always any_value
  79.                  return descriptor_pointer
  80.  
  81.        # &window
  82.        kywdwin: variable always file ++ null
  83.                  return descriptor_pointer
  84.  
  85.        # &fg and friends
  86.        kywdstr: variable always string
  87.                  return descriptor_pointer
  88.