1 | :- module(pltables_export, [ | |
2 | tables_to_html/2, | |
3 | tables_to_html_stream/2, | |
4 | tables_to_latex/2, | |
5 | tables_to_latex_stream/2, | |
6 | tables_to_xml/2, | |
7 | tables_to_xml_stream/2, | |
8 | tables_to_csv/2, | |
9 | tables_to_csv_stream/2 | |
10 | ]). | |
11 | ||
12 | :- use_module(probsrc(self_check)). | |
13 | :- use_module(probsrc(module_information)). | |
14 | ||
15 | :- module_info(group,pltables). | |
16 | :- module_info(description,'This module provides html/latex and codespeed export functionality for the other table modules'). | |
17 | ||
18 | :- use_module(pltables_export_html). | |
19 | :- use_module(pltables_export_latex). | |
20 | :- use_module(pltables_export_xml). | |
21 | :- use_module(pltables_export_csv). | |
22 | ||
23 | % ---- | |
24 | % exported predicates | |
25 | % ---- | |
26 | tables_to_html(Tables, File) :- | |
27 | open(File, write, Stream), | |
28 | html_header(Stream, TableName), | |
29 | tables_to_html2(Tables, Stream), | |
30 | html_footer(Stream, TableName), | |
31 | close(Stream). | |
32 | ||
33 | tables_to_html_stream(Tables, Stream) :- | |
34 | html_header(Stream, TableName), | |
35 | tables_to_html2(Tables, Stream), | |
36 | html_footer(Stream, TableName). | |
37 | ||
38 | tables_to_latex(Tables, File) :- | |
39 | open(File, write, Stream), | |
40 | latex_header(Stream, TableName), | |
41 | tables_to_latex2(Tables, Stream), | |
42 | latex_footer(Stream, TableName), | |
43 | close(Stream). | |
44 | ||
45 | tables_to_latex_stream(Tables, Stream) :- | |
46 | latex_header(Stream, TableName), | |
47 | tables_to_latex2(Tables, Stream), | |
48 | latex_footer(Stream, TableName). | |
49 | ||
50 | tables_to_xml(Tables, File) :- | |
51 | open(File, write, Stream), | |
52 | xml_header(Stream, TableName), | |
53 | tables_to_xml2(Tables, Stream), | |
54 | xml_footer(Stream, TableName), | |
55 | close(Stream). | |
56 | ||
57 | tables_to_xml_stream(Tables, Stream) :- | |
58 | xml_header(Stream, TableName), | |
59 | tables_to_xml2(Tables, Stream), | |
60 | xml_footer(Stream, TableName). | |
61 | ||
62 | tables_to_csv(Tables, File) :- | |
63 | open(File, write, Stream), | |
64 | csv_header(Stream, TableName), | |
65 | tables_to_csv2(Tables, Stream), | |
66 | csv_footer(Stream, TableName), | |
67 | close(Stream). | |
68 | ||
69 | tables_to_csv_stream(Tables, Stream) :- | |
70 | csv_header(Stream, TableName), | |
71 | tables_to_csv2(Tables, Stream), | |
72 | csv_footer(Stream, TableName). | |
73 | ||
74 | % ---- | |
75 | % split predicates | |
76 | % ---- | |
77 | tables_to_html2([],_S). | |
78 | tables_to_html2([Table|Tables],Stream) :- | |
79 | table_to_html(Table,Stream), | |
80 | tables_to_html2(Tables,Stream). | |
81 | ||
82 | table_to_html(TableName, Stream) :- | |
83 | html_table_header(Stream,TableName), | |
84 | html_table_rows(Stream,TableName), | |
85 | html_table_footer(Stream,TableName). | |
86 | ||
87 | tables_to_latex2([],_S). | |
88 | tables_to_latex2([Table|Tables],Stream) :- | |
89 | table_to_latex(Table,Stream), | |
90 | tables_to_latex2(Tables,Stream). | |
91 | ||
92 | table_to_latex(TableName, Stream) :- | |
93 | latex_table_header(Stream, TableName), | |
94 | latex_table_rows(Stream, TableName), | |
95 | latex_table_footer(Stream,TableName). | |
96 | ||
97 | tables_to_xml2([],_S). | |
98 | tables_to_xml2([Table|Tables],Stream) :- | |
99 | table_to_xml(Table,Stream), | |
100 | tables_to_xml2(Tables,Stream). | |
101 | ||
102 | table_to_xml(TableName, Stream) :- | |
103 | xml_table_header(Stream, TableName), | |
104 | xml_table_rows(Stream, TableName), | |
105 | xml_table_footer(Stream,TableName). | |
106 | ||
107 | tables_to_csv2([],_S). | |
108 | tables_to_csv2([Table|Tables],Stream) :- | |
109 | table_to_csv(Table,Stream), | |
110 | tables_to_csv2(Tables,Stream). | |
111 | ||
112 | table_to_csv(TableName, Stream) :- | |
113 | csv_table_header(Stream, TableName), | |
114 | csv_table_rows(Stream, TableName), | |
115 | csv_table_footer(Stream,TableName). |