def print_directive(elem_info, stmt_list, directive_name, directive_arg, replace_elem=true)
head_space = elem_info.stag_info.head_space
tail_space = (elem_info.etag_info || elem_info.stag_info).tail_space
pargs = []
pargs << head_space if head_space
pargs << NativeExpression.new("#{directive_name} #{directive_arg}")
pargs << tail_space if tail_space
stmt_list << PrintStatement.new(pargs)
unless replace_elem
stmt_list.concat(elem_info.cont_stmts)
stmt_list << PrintStatement.new([elem_info.etag_info.tag_text])
end
end