InUseTraitDef : Varible INSTEADOF NsContentName Terminator
                  | Varible AS AccessModifier Terminator
                  | Varible AS AccessModifier NsContentName Terminator

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])