open AstAccess.AstImport
open HtmlStruct.Content
open System.Xml
open HtmlStruct.Assemble
open HtmlStruct.Content
open HtmlStruct.Present
let doc = XmlDocument()
doc.Load("E:/storyline.xast")
let prog = Program.GenerateFrom(doc)
let entry = AstVisitEntry(prog)
let visitor = UnitGenerate(prog)
entry.visitWith(visitor) |> ignore
let volume_pages = volume_page_assemble(visitor.contents()) |> List.map (fun x->x)
let story_pages = story_page_assemble(visitor.contents()) |> List.map (fun x->x)
let point_pages = point_page_assemble(volume_pages @ story_pages)
volume_pages @ story_pages @ point_pages |> List.iter (fun it -> (it:?>PageAccess).setPageRoot("E:"))
let maker = volume_pages @ story_pages @ point_pages
|> List.map(fun page_unit ->
match page_unit with
| :? PointPage as point ->
PageMaker(point) :> PageText
| :? VolumePage as vol ->
PageMaker(vol)
| :? StoryPage as story ->
PageMaker(story)
| _ -> failwith ""
)
let docx0 = maker.Item(5).getHtmlText()
let docx1 = maker.Item(18).getHtmlText()
let docx2 = maker.Item(22).getHtmlText()
for refs in point_pages do
System.Console.WriteLine(refs.ToString())