def p_property_assignment(self, p):
if len(p) == <NUM_LIT:4>:<EOL><INDENT>p[<NUM_LIT:0>] = self.asttypes.Assign(left=p[<NUM_LIT:1>], op=p[<NUM_LIT:2>], right=p[<NUM_LIT:3>])<EOL>p[<NUM_LIT:0>].setpos(p, <NUM_LIT:2>)<EOL><DEDENT>elif len(p) == <NUM_LIT:8>:<EOL><INDENT>p[<NUM_LIT:0>] = self.asttypes.GetPropAssign(prop_name=p[<NUM_LIT:2>], elements=p[<NUM_LIT:6>])<EOL>p[<NUM_LIT:0>].setpos(p)<EOL><DEDENT>else:<EOL><INDENT>p[<NUM_LIT:0>] = self.asttypes.SetPropAssign(<EOL>prop_name=p[<NUM_LIT:2>], parameter=p[<NUM_LIT:4>], elements=p[<NUM_LIT:7>])<EOL>p[<NUM_LIT:0>].setpos(p)<EOL><DEDENT>
property_assignment \
             : property_name COLON assignment_expr
             | GETPROP property_name LPAREN RPAREN LBRACE function_body RBRACE
             | SETPROP property_name LPAREN property_set_parameter_list RPAREN\
                   LBRACE function_body RBRACE