Patch title: Release 89 bulk changes
Abstract:
File: /graphic/browser/xml/tree.pli
Key:
    Removed line
    Added line
   
module "/pliant/language/compiler.pli"



method n first_attr a v
  arg XmlTree n ; arg_w Str a v
  var Address c := n:buf next
  if not c:is_stop
    a set c:characters c:length false
    c := c next
    v set c:characters c:length false
  else
    a := ""
    v := ""
 
method n next_attr a v
  arg XmlTree n ; arg_rw Str a v
  var Address c := v:characters translate Char v:len
  if not c:is_stop
    a set c:characters c:length false
    c := c next
    v set c:characters c:length false
  else
    a := ""
    v := ""
module "/pliant/language/compiler.pli"



method n first_attr a v
  arg XmlTree n ; arg_w Str a v
  var Address c := n:buf next
  if not c:is_stop
    a set c:characters c:length false
    c := c next
    v set c:characters c:length false
  else
    a := ""
    v := ""
 
method n next_attr a v
  arg XmlTree n ; arg_rw Str a v
  var Address c := v:characters translate Char v:len
  if not c:is_stop
    a set c:characters c:length false
    c := c next
    v set c:characters c:length false
  else
    a := ""
    v := ""
 



method t map_first p -> c
  arg XmlTree t ; arg_rw Pointer:XmlTree p ; arg CBool c
  p :> t first
  c := exists p

function map_next p -> c
  arg_rw Pointer:XmlTree p ; arg CBool c
  p :> p next
  c := exists p

meta each e
  if e:size=3 and e:0:is_pure_ident and (e:1 cast XmlTree) and e:2:ident="{}"
    e suckup e:1
    var Link:Instruction end :> instruction the_function:'do nothing'
    var Link:Argument cursor :> e local_variable e:0 Pointer:XmlTree
    var Link:Argument some :> argument local CBool
    e add (instruction (the_function '. map_first' XmlTree Pointer:XmlTree -> CBool) e:1:result cursor some)
    e add (instruction (the_function 'jump if not' CBool) some jump end)
    var Link:Instruction body :> instruction the_function:'do nothing'
    e add body
    e suckup e:1
    e add (instruction (the_function map_next Pointer:XmlTree -> CBool) cursor some)
    e add (instruction (the_function 'jump if' CBool) some jump body)
    e add end
    e set_void_result


#-----------------------------------------------------------


export XmlTree
export '. tag' '. tag :='
export '. text' '. text :='
export '. attribute' '. attribute :=' '. discard'
export '. first_attr' '. next_attr'
export '. first' '. next'
export '. x0' '. y0' '. x1' '. y1'
#-----------------------------------------------------------


export XmlTree
export '. tag' '. tag :='
export '. text' '. text :='
export '. attribute' '. attribute :=' '. discard'
export '. first_attr' '. next_attr'
export '. first' '. next'
export '. x0' '. y0' '. x1' '. y1'
export each

export new_xml_node free_xml_node

export new_xml_node free_xml_node