Patch title: Release 90 bulk changes
Abstract:
File: /graphic/browser/xml/io.pli
Key:
    Removed line
    Added line
   
module "/pliant/language/unsafe.pli"
module "/pliant/language/stream.pli"
module "tree.pli"
module "parser.pli"

module "/pliant/language/unsafe.pli"
module "/pliant/language/stream.pli"
module "tree.pli"
module "parser.pli"

#-----------------------------------------------------------
# file input/output



type XmlTemp
  field Pointer:XmlTree tree
  field (Pointer Pointer:XmlTree) last

type XmlTreeParser
  field Address node <- null
  field Pointer:Address last
type XmlTemp
  field Pointer:XmlTree tree
  field (Pointer Pointer:XmlTree) last

type XmlTreeParser
  field Address node <- null
  field Pointer:Address last
  field CBool lowercase <- false


method parser new_tag tag ptr
  oarg_rw XmlTreeParser parser ; arg Str tag ; arg_w Arrow p
  var Pointer:XmlTree t :> new_xml_node


method parser new_tag tag ptr
  oarg_rw XmlTreeParser parser ; arg Str tag ; arg_w Arrow p
  var Pointer:XmlTree t :> new_xml_node
  t tag := tag
  if parser:lowercase
    t tag := lower tag
  else
    t tag := tag
  var Link:XmlTemp o :> new XmlTemp
  o tree :> t
  o last :>> t first
  ptr := addressof o

method parser set_tag_attribute tag attribute value
  oarg_rw XmlTreeParser parser ; arg Address tag ; arg Str a
  var Link:XmlTemp o :> tag map XmlTemp
  var Link:XmlTemp o :> new XmlTemp
  o tree :> t
  o last :>> t first
  ptr := addressof o

method parser set_tag_attribute tag attribute value
  oarg_rw XmlTreeParser parser ; arg Address tag ; arg Str a
  var Link:XmlTemp o :> tag map XmlTemp
  o:tree attribute attribute := value
  if parser:lowercase
    o:tree attribute lower:attribute := value
  else
    o:tree attribute attribute := value


method tree load stream options
  arg_rw XmlTree tree ; arg_rw Stream stream ; arg Str optio


method tree load stream options
  arg_rw XmlTree tree ; arg_rw Stream stream ; arg Str optio
  tree := var XmlTree empty_tree
  tree := var XmlTree empty_tree ; tree tag := "root"
  var Link:XmlTemp o :> new XmlTemp
  o tree :> tree
  o last :>> tree first
  var Link:XmlTreeParser parser :> new XmlTreeParser
  var Link:XmlTemp o :> new XmlTemp
  o tree :> tree
  o last :>> tree first
  var Link:XmlTreeParser parser :> new XmlTreeParser
  parser lowercase := options option "lowercase"
  parser parse stream addressof:o  


export '. load' '. save'
  parser parse stream addressof:o  


export '. load' '. save'