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 NUM1PARSER_H_INCLUDED 00011 #define NUM1PARSER_H_INCLUDED 00012 00013 #include "IWORKParser.h" 00014 #include "NUM1ParserState.h" 00015 00016 namespace libetonyek 00017 { 00018 00019 class NUMCollector; 00020 struct NUM1Dictionary; 00021 00022 class NUM1Parser: public IWORKParser 00023 { 00024 public: 00025 NUM1Parser(const RVNGInputStreamPtr_t &input, const RVNGInputStreamPtr_t &package, NUMCollector &collector, NUM1Dictionary *dict); 00026 virtual ~NUM1Parser(); 00027 00028 private: 00029 virtual IWORKXMLContextPtr_t createDocumentContext(); 00030 virtual IWORKXMLContextPtr_t createDiscardContext(); 00031 virtual const IWORKTokenizer &getTokenizer() const; 00032 00033 private: 00034 NUM1ParserState m_state; 00035 }; 00036 00037 } // namespace libetonyek 00038 00039 #endif // NUM1PARSER_H_INCLUDED 00040 00041 /* vim:set shiftwidth=2 softtabstop=2 expandtab: */