A set of benchmarks to compare a new prototype MiniZinc implementation
1/* -*- mode: C++; c-basic-offset: 2; indent-tabs-mode: nil -*- */
2
3/*
4 * Main authors:
5 * Guido Tack <guido.tack@monash.edu>
6 */
7
8/* This Source Code Form is subject to the terms of the Mozilla Public
9 * License, v. 2.0. If a copy of the MPL was not distributed with this
10 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
11
12#ifndef __MINIZINC_HTMLPRINTER_HH
13#define __MINIZINC_HTMLPRINTER_HH
14
15#include <iostream>
16#include <vector>
17
18namespace MiniZinc {
19
20class Model;
21
22class HtmlDocument {
23protected:
24 std::string _filename;
25 std::string _title;
26 std::string _doc;
27
28public:
29 HtmlDocument(const std::string& filename, const std::string& title, const std::string& document)
30 : _filename(filename), _title(title), _doc(document) {}
31 std::string filename(void) const { return _filename; }
32 std::string title(void) const { return _title; }
33 std::string document(void) const { return _doc; }
34};
35
36class HtmlPrinter {
37public:
38 static std::vector<HtmlDocument> printHtml(EnvI& env, Model* m, const std::string& basename,
39 int splitLevel, bool includeStdLib,
40 bool generateIndex);
41};
42
43class RSTPrinter {
44public:
45 static std::vector<HtmlDocument> printRST(EnvI& env, Model* m, const std::string& basename,
46 int splitLevel, bool includeStdLib, bool generateIndex);
47};
48
49} // namespace MiniZinc
50
51#endif