/[svn]/tools/pull.ml
ViewVC logotype

Contents of /tools/pull.ml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 528 - (show annotations)
Tue Jul 10 17:41:47 2007 UTC (5 years, 10 months ago) by abate
File size: 1552 byte(s)
[r2003-06-24 15:42:10 by cvscast] Updating for new version of PXP

Original author: cvscast
Date: 2003-06-24 15:42:10+00:00
1 (* To test PXP pull parsers *)
2
3 open Pxp_yacc
4 open Pxp_lexer_types
5 open Pxp_types
6 open Printf
7
8
9 (* dump_event: dumps a single parsing event *)
10
11 let dump_event e = ()
12
13 (*
14 let dump_event =
15 function
16 E_start_doc(v,sa,dtd) ->
17 printf "E_start_doc version=%s standalone=%b\n" v sa
18 | E_end_doc ->
19 printf "E_end_doc\n"
20 | E_start_tag(name,attlist,_) ->
21 printf "E_start_tag %s %s\n" name
22 (String.concat " " (List.map (fun (n,v) -> n ^ "=" ^ v) attlist))
23 | E_end_tag(name,_) ->
24 printf "E_end_tag %s\n" name
25 | E_char_data data ->
26 printf "E_char_data %s\n" data
27 | E_pinstr(target,data) ->
28 printf "E_pinstr %s %s\n" target data
29 | E_comment data ->
30 printf "E_comment %s\n" data
31 | E_position(ent,line,col) ->
32 printf "E_position %s line=%d col=%d\n" ent line col
33 | E_error e ->
34 printf "E_error %s\n" (Pxp_types.string_of_exn e)
35 | E_end_of_stream ->
36 printf "E_end_of_stream\n"
37 *)
38
39
40 (* parse: prints the events while parsing the passed string *)
41
42 let pull s =
43 let config = default_config in
44 let mgr = create_entity_manager config (from_file s) in
45 let next_event =
46 create_pull_parser config (`Entry_document [`Extend_dtd_fully]) mgr in
47 let event = ref (Some E_end_of_stream) in
48 while !event <> None do
49 event := next_event();
50 match !event with
51 Some e -> dump_event e
52 | None -> ()
53 done
54
55
56 let push s =
57 process_entity
58 default_config
59 (`Entry_document[(* `Extend_dtd_fully *)])
60 (create_entity_manager default_config (from_file s))
61 dump_event
62
63 let () = push Sys.argv.(1)

CVS Admin">CVS Admin
ViewVC Help
Powered by ViewVC 1.1.5