anchor.diff:        | "pin" PINDIRECTION TYPE HALNAME OptArray OptAssign OptPersonality OptString ";"  {{ pin(HALNAME, TYPE, OptArray, PINDIRECTION, OptString, OptAssign, OptPersonality) }}
         | "param" PARAMDIRECTION TYPE HALNAME OptArray OptAssign OptPersonality OptString ";" {{ param(HALNAME, TYPE, OptArray, PARAMDIRECTION, OptString, OptAssign, OptPersonality) }}
         | "function" NAME OptFP OptString ";"       {{ function(NAME, OptFP, OptString) }}
  +      | "variable" NAME {{ NAME1=NAME; }} NAME OptSimpleArray OptAssign ";" {{ variable(NAME1, NAME, OptSimpleArray, OptAssign) }}
         | "option" NAME OptValue ";"   {{ option(NAME, OptValue) }}
         | "see_also" String ";"   {{ see_also(String) }}
         | "description" String ";"   {{ description(String) }}
  
positive.code:                 print >>f, "#define %s(i) (inst->%s[i])" % (to_c(name), to_c(name))
              else:
                  print >>f, "#define %s (inst->%s)" % (to_c(name), to_c(name))
          
          if has_data:
              print >>f, "#define data (*(%s*)&(inst->_data))" % options['data']
          if has_personality:
  
negative.code: deprecated = ['s32', 'u32']
  
  def initialize():
      global functions, params, pins, options, comp_name, names, docs, variables
  
      functions = []; params = []; pins = []; options = {}; variables = []
      docs = []
      comp_name = None
  
  