00001 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ 00002 /* 00003 * This file is part of the libetonyek project. 00004 * 00005 * This Source Code Form is subject to the terms of the Mozilla Public 00006 * License, v. 2.0. If a copy of the MPL was not distributed with this 00007 * file, You can obtain one at http://mozilla.org/MPL/2.0/. 00008 */ 00009 00010 #ifndef KEY2PARSER_H_INCLUDED 00011 #define KEY2PARSER_H_INCLUDED 00012 00013 #include "IWORKParser.h" 00014 #include "KEY2ParserState.h" 00015 00016 namespace libetonyek 00017 { 00018 00019 class KEYCollector; 00020 struct KEY2Dictionary; 00021 00022 class KEY2Parser : public IWORKParser 00023 { 00024 public: 00025 KEY2Parser(const RVNGInputStreamPtr_t &input, const RVNGInputStreamPtr_t &package, KEYCollector &collector, KEY2Dictionary &dict); 00026 virtual ~KEY2Parser(); 00027 00028 private: 00029 virtual IWORKXMLContextPtr_t createDocumentContext(); 00030 virtual IWORKXMLContextPtr_t createDiscardContext(); 00031 virtual const IWORKTokenizer &getTokenizer() const; 00032 00033 private: 00034 KEY2ParserState m_state; 00035 }; 00036 00037 } 00038 00039 #endif // KEY2PARSER_H_INCLUDED 00040 00041 /* vim:set shiftwidth=2 softtabstop=2 expandtab: */