|
|
|
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'
|