1 /*=========================================================================== 2 * 3 * PUBLIC DOMAIN NOTICE 4 * National Center for Biotechnology Information 5 * 6 * This software/database is a "United States Government Work" under the 7 * terms of the United States Copyright Act. It was written as part of 8 * the author's official duties as a United States Government employee and 9 * thus cannot be copyrighted. This software/database is freely available 10 * to the public for use. The National Library of Medicine and the U.S. 11 * Government have not placed any restriction on its use or reproduction. 12 * 13 * Although all reasonable efforts have been taken to ensure the accuracy 14 * and reliability of the software and data, the NLM and the U.S. 15 * Government do not and cannot warrant the performance or results that 16 * may be obtained by using this software or data. The NLM and the U.S. 17 * Government disclaim all warranties, express or implied, including 18 * warranties of performance, merchantability or fitness for any particular 19 * purpose. 20 * 21 * Please cite the author in any work or product based on this material. 22 * 23 * =========================================================================== 24 * 25 */ 26 27 #ifndef _hpp_SchemaParser_ 28 #define _hpp_SchemaParser_ 29 30 #include <kfs/file.h> 31 32 #include "ErrorReport.hpp" 33 34 namespace ncbi 35 { 36 namespace SchemaParser 37 { 38 class ParseTree; 39 40 class SchemaParser 41 { 42 public: 43 SchemaParser (); 44 ~SchemaParser (); 45 46 bool ParseString ( const char * input, bool debug = false ); 47 bool ParseFile ( const struct KFile * file, const char * fileName = 0 ); 48 GetParseTree() const49 const ParseTree* GetParseTree () const { return m_root; } 50 ParseTree* MoveParseTree (); // Transfer ownership to caller; destroy with delete 51 GetErrors() const52 const ErrorReport & GetErrors () const { return m_errors; } 53 54 private: 55 bool m_debug; 56 ParseTree* m_root; 57 58 ErrorReport m_errors; 59 }; 60 } 61 } 62 63 #endif 64