/*=============================================================================
    Copyright (c) 2002 2004 2006 Joel de Guzman
    Copyright (c) 2004 Eric Niebler
    http://spirit.sourceforge.net/

    Use, modification and distribution is subject to the Boost Software
    License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
    http://www.boost.org/LICENSE_1_0.txt)
=============================================================================*/
#if !defined(BOOST_SPIRIT_MARKUPS_HPP)
#define BOOST_SPIRIT_MARKUPS_HPP

namespace quickbook
{
    extern const char* comment_pre;
    extern const char* comment_post;
    extern const char* paragraph_pre;
    extern const char* paragraph_post;
    extern const char* h1_pre;
    extern const char* h1_post;
    extern const char* h2_pre;
    extern const char* h2_post;
    extern const char* h3_pre;
    extern const char* h3_post;
    extern const char* h4_pre;
    extern const char* h4_post;
    extern const char* h5_pre;
    extern const char* h5_post;
    extern const char* h6_pre;
    extern const char* h6_post;
    extern const char* hr_;
    extern const char* blurb_pre;
    extern const char* blurb_post;
    extern const char* blockquote_pre;
    extern const char* blockquote_post;
    extern const char* preformatted_pre;
    extern const char* preformatted_post;
    extern const char* warning_pre;
    extern const char* warning_post;
    extern const char* caution_pre;
    extern const char* caution_post;
    extern const char* important_pre;
    extern const char* important_post;
    extern const char* note_pre;
    extern const char* note_post;
    extern const char* tip_pre;
    extern const char* tip_post;
    extern const char* list_item_pre;
    extern const char* list_item_post;
    extern const char* bold_pre_;
    extern const char* bold_post_;
    extern const char* italic_pre_;
    extern const char* italic_post_;
    extern const char* underline_pre_;
    extern const char* underline_post_;
    extern const char* teletype_pre_;
    extern const char* teletype_post_;
    extern const char* strikethrough_pre_;
    extern const char* strikethrough_post_;
    extern const char* quote_pre_;
    extern const char* quote_post_;
    extern const char* break_mark;
    extern const char* url_pre_;
    extern const char* url_post_;
    extern const char* link_pre_;
    extern const char* link_post_;
    extern const char* start_varlistentry_;
    extern const char* end_varlistentry_;
    extern const char* start_varlistterm_;
    extern const char* end_varlistterm_;
    extern const char* start_varlistitem_;
    extern const char* end_varlistitem_;
    extern const char* start_header_;
    extern const char* end_header_;
    extern const char* start_row_;
    extern const char* end_row_;
    extern const char* start_cell_;
    extern const char* end_cell_;
    extern const char* funcref_pre_;
    extern const char* funcref_post_;
    extern const char* classref_pre_;
    extern const char* classref_post_;
    extern const char* memberref_pre_;
    extern const char* memberref_post_;
    extern const char* enumref_pre_;
    extern const char* enumref_post_;
    extern const char* macroref_pre_;
    extern const char* macroref_post_;
    extern const char* headerref_pre_;
    extern const char* headerref_post_;
    extern const char* conceptref_pre_;
    extern const char* conceptref_post_;
    extern const char* globalref_pre_;
    extern const char* globalref_post_;
    extern const char* footnote_pre_;
    extern const char* footnote_post_;
    extern const char* escape_pre_;
    extern const char* escape_post_;
    extern const char* replaceable_pre_;
    extern const char* replaceable_post_;
}

#endif // BOOST_SPIRIT_MARKUPS_HPP

