code: def p_attr_field(self, p):
          
          if p[3] is NullToken:
              p[0] = AstAttrField(
                  self.path, p.lineno(1), p.lexpos(1), p[1], None)
          else:
              p[0] = AstAttrField(
                  self.path, p.lineno(1), p.lexpos(1), p[1], p[3])
docs: attr_field : ID EQ primitive NL
                        | ID EQ tag_ref NL