#ifndef BASCODETAGGER_HXX #define BASCODETAGGER_HXX #include #include #include #include #include #include #include #include #include class BasicCodeTagger; class LibXmlTreeWalker; //!Tagger class. class L10N_DLLPUBLIC BasicCodeTagger { private: xmlDocPtr m_pDocument; std::list m_BasicCodeContainerTags; LibXmlTreeWalker *m_pXmlTreeWalker; std::list m_BasicCodeStringList; SyntaxHighlighter m_Highlighter; bool m_bTaggingCompleted; void tagParagraph( xmlNodePtr paragraph ); xmlChar* getTypeString( TokenTypes tokenType ); void getBasicCodeContainerNodes(); void tagBasCodeParagraphs(); public: enum TaggerException { FILE_WRITING, NULL_DOCUMENT, EMPTY_DOCUMENT }; BasicCodeTagger( xmlDocPtr rootDoc ); ~BasicCodeTagger(); void tagBasicCodes(); }; //================LibXmlTreeWalker=========================================================== class L10N_DLLPUBLIC LibXmlTreeWalker { private: xmlNodePtr m_pCurrentNode; std::list m_Queue; //!Queue for breath-first search public: LibXmlTreeWalker( xmlDocPtr doc ); ~LibXmlTreeWalker() {} void nextNode(); xmlNodePtr currentNode(); bool end(); void ignoreCurrNodesChildren(); }; #endif