1 #ifndef CLS_3_TAGS_VERBATIM_STRING_HPP 2 #define CLS_3_TAGS_VERBATIM_STRING_HPP 3 4 //! \file 5 //! \brief ��� ��� ������������� (verbatim) �����. 6 7 #include <string.h> 8 #include <cls_3/tags/h/tag.hpp> 9 10 namespace cls_3 11 { 12 13 namespace tags 14 { 15 16 // 17 // tag_verbatim_string_t 18 // 19 20 //! ����� ���� ��� ������������� (verbatim) �����. 21 /*! 22 ��. ����� \ref cls_3__syntax__basic__tokens 23 */ 24 class tag_verbatim_string_t : 25 public tag_t { 26 public : 27 tag_verbatim_string_t( 28 const std::string &name, 29 bool mandatory 30 ); 31 32 tag_verbatim_string_t( 33 tag_t &owner, 34 const std::string &name, 35 bool mandatory 36 ); 37 38 virtual ~tag_verbatim_string_t(); 39 40 virtual void 41 on_start( const parser_context_info_t &parser_context_info ); 42 43 virtual void 44 on_finish( const parser_context_info_t &parser_context_info ); 45 46 virtual void 47 on_tok_nonspace( 48 const parser_context_info_t &parser_context_info, 49 const std::string &tok_value 50 ); 51 52 virtual void 53 on_tok_string( 54 const parser_context_info_t &parser_context_info, 55 const std::string &tok_value 56 ); 57 58 virtual void 59 on_tok_verbatim_string( 60 const parser_context_info_t &parser_context_info, 61 const std::string &start_marker, 62 const std::string &tok_contents, 63 const std::string &end_marker 64 ); 65 66 virtual bool 67 is_mandatory() const; 68 69 virtual bool 70 is_defined() const; 71 72 virtual void 73 reset(); 74 75 //! ������� �������� ����. 76 /*! 77 ������������ ���������� ������������� ������. 78 \attention ������������ �������� �� �������� �������������� ����������� 79 ������ � ����� verbatim-������ ( � ������� �� ���������� �������������� 80 ������� on_format() ). 81 */ 82 const std::string & 83 query_value() const; 84 85 //! ���������� �������� ����. 86 /*! \since v.2.6.4 */ 87 void 88 make_defined( 89 const std::string &start_marker, 90 const std::string &contents, 91 const std::string &end_marker 92 ); 93 94 protected : 95 std::string m_value; 96 std::string m_start_marker; 97 std::string m_end_marker; 98 bool m_is_mandatory; 99 bool m_is_defined; 100 101 //! �������������� ������������ ��������. 102 /*! 103 ��������������� �������� ������������� � ���������� cls - ������������ 104 �������������� ����������� ������ � ����� ���� ( ��. 105 \ref cls_3__syntax__basic__tokens ). 106 */ 107 virtual void 108 on_format( tag_formatter_t &fmt ); 109 }; 110 111 } // namespace tags 112 113 } /* namespace cls_3 */ 114 115 #endif 116