code: def p_InUseTraitDef(p):
      '''
      InUseTraitDef : Varible INSTEADOF NsContentName Terminator
                    | Varible AS AccessModifier Terminator
                    | Varible AS AccessModifier NsContentName Terminator
      '''
      if p[2] == 'insteadof':
          p[0] = InUseTraitDef(p[1], p[2], None, p[3], p[4])
      elif len(p) <= 5:
          p[0] = InUseTraitDef(p[1], p[2], p[3], None, p[4])
      else:
          p[0] = InUseTraitDef(p[1], p[2], p[3], p[4], p[5]f p_InUseTraitDef(p):
      '''
      InUseTraitDef : Varible INSTEADOF NsContentName Terminator
                    | Varible AS AccessModifier Terminator
                    | Varible AS AccessModifier NsContentName Terminator
      '''
      if p[2] == 'insteadof':
          p[0] = InUseTraitDef(p[1], p[2], None, p[3], p[4])
      elif len(p) <= 5:
          p[0] = InUseTraitDef(p[1], p[2], p[3], None, p[4])
      else:
          p[0] = InUseTraitDef(p[1], p[2], p[3], p[4], p[5])
docs: InUseTraitDef : Varible INSTEADOF NsContentName Terminator
                    | Varible AS AccessModifier Terminator
                    | Varible AS AccessModifier NsContentName Terminator