Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(xml_tag), | intent(inout) | :: | lhs | Left hand side. |
||
type(xml_tag), | intent(in) | :: | rhs | Right hand side. |
Assignment between two tags.
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer(kind=I4P), | public | :: | a | Counter. |
elemental subroutine assign_tag(lhs, rhs)
!---------------------------------------------------------------------------------------------------------------------------------
!< Assignment between two tags.
!---------------------------------------------------------------------------------------------------------------------------------
class(xml_tag), intent(inout) :: lhs !< Left hand side.
type(xml_tag), intent(in) :: rhs !< Right hand side.
integer(I4P) :: a !< Counter.
!---------------------------------------------------------------------------------------------------------------------------------
!---------------------------------------------------------------------------------------------------------------------------------
call lhs%free
if (rhs%tag_name%is_allocated()) lhs%tag_name = rhs%tag_name
if (rhs%tag_content%is_allocated()) lhs%tag_content = rhs%tag_content
if (rhs%attributes_number>0) then
allocate(lhs%attribute(1:2, 1:rhs%attributes_number))
do a=1, rhs%attributes_number
lhs%attribute(1:2, a) = rhs%attribute(1:2, a)
enddo
endif
lhs%attributes_number = rhs%attributes_number
lhs%indent = rhs%indent
lhs%is_self_closing = rhs%is_self_closing
!---------------------------------------------------------------------------------------------------------------------------------
endsubroutine assign_tag