def p_attr_field(self, p):
if p[<NUM_LIT:3>] is NullToken:<EOL><INDENT>p[<NUM_LIT:0>] = AstAttrField(<EOL>self.path, p.lineno(<NUM_LIT:1>), p.lexpos(<NUM_LIT:1>), p[<NUM_LIT:1>], None)<EOL><DEDENT>else:<EOL><INDENT>p[<NUM_LIT:0>] = AstAttrField(<EOL>self.path, p.lineno(<NUM_LIT:1>), p.lexpos(<NUM_LIT:1>), p[<NUM_LIT:1>], p[<NUM_LIT:3>])<EOL><DEDENT>
attr_field : ID EQ primitive NL
                      | ID EQ tag_ref NL