Files
quickbook/encoder_impl.hpp
Daniel James 1c03668d09 Merge from trunk.
The new unicode escape support showed up a difference with the old version.
Header ids were generated from boostbook, while this version was generated them
from quickbook. So fix that as well.


[SVN r60067]
2010-03-02 01:44:48 +00:00

92 lines
4.1 KiB
C++

#include "fwd.hpp"
#include "encoder.hpp"
#include "phrase.hpp"
#include "state.hpp"
#include <vector>
#include <stack>
namespace quickbook
{
struct boostbook_encoder : encoder {
virtual void operator()(quickbook::state&, doc_info const&);
virtual void operator()(quickbook::state&, doc_info_post const&);
// Note: char is a plain quickbook character, string is an encoded
// boostbook string. Oops.
virtual void operator()(quickbook::state&, char);
virtual void operator()(quickbook::state&, unicode_char const&);
virtual void operator()(quickbook::state&, std::string const&);
virtual void operator()(quickbook::state&, anchor const&);
virtual void operator()(quickbook::state&, link const&);
virtual void operator()(quickbook::state&, formatted const&);
virtual void operator()(quickbook::state&, break_ const&);
virtual void operator()(quickbook::state&, image2 const&);
virtual void operator()(quickbook::state&, hr);
virtual void operator()(quickbook::state&, begin_section2 const&);
virtual void operator()(quickbook::state&, end_section2 const&);
virtual void operator()(quickbook::state&, heading2 const&);
virtual void operator()(quickbook::state&, variablelist const&);
virtual void operator()(quickbook::state&, table2 const&);
virtual void operator()(quickbook::state&, xinclude2 const&);
virtual void operator()(quickbook::state&, list2 const&);
virtual void operator()(quickbook::state&, callout_link const&);
virtual void operator()(quickbook::state&, callout_list const&);
virtual void operator()(quickbook::state&, code_token const&);
virtual std::string encode(std::string const&);
virtual std::string encode(char);
virtual std::string encode(char const*);
};
struct html_encoder : encoder {
html_encoder();
~html_encoder();
virtual void operator()(quickbook::state&, doc_info const&);
virtual void operator()(quickbook::state&, doc_info_post const&);
// Note: char is a plain quickbook character, string is an encoded
// html string. Oops.
virtual void operator()(quickbook::state&, char);
virtual void operator()(quickbook::state&, unicode_char const&);
virtual void operator()(quickbook::state&, std::string const&);
virtual void operator()(quickbook::state&, anchor const&);
virtual void operator()(quickbook::state&, link const&);
virtual void operator()(quickbook::state&, formatted const&);
virtual void operator()(quickbook::state&, break_ const&);
virtual void operator()(quickbook::state&, image2 const&);
virtual void operator()(quickbook::state&, hr);
virtual void operator()(quickbook::state&, begin_section2 const&);
virtual void operator()(quickbook::state&, end_section2 const&);
virtual void operator()(quickbook::state&, heading2 const&);
virtual void operator()(quickbook::state&, variablelist const&);
virtual void operator()(quickbook::state&, table2 const&);
virtual void operator()(quickbook::state&, xinclude2 const&);
virtual void operator()(quickbook::state&, list2 const&);
virtual void operator()(quickbook::state&, callout_link const&);
virtual void operator()(quickbook::state&, callout_list const&);
virtual void operator()(quickbook::state&, code_token const&);
virtual std::string encode(std::string const&);
virtual std::string encode(char);
virtual std::string encode(char const*);
private:
void push_footnotes(quickbook::state&);
void pop_footnotes(quickbook::state&);
int footnote_id;
struct footnote {
footnote(int id, std::string const& content)
: id(id), content(content) {}
int id;
std::string content;
};
typedef std::vector<footnote> footnotes;
std::stack<footnotes> footnote_stack;
};
}