AndroMeta  2.0.0
AndroMeta/include/AndroMeta/MMLParser.h
Go to the documentation of this file.
00001 /*
00002  * Copyright 2009-2012 AndroMeta LLC. All rights reserved.
00003  *
00004  * AndroMeta LLC retains all intellectual property and proprietary 
00005  * rights to this software and related documentation and any modifications 
00006  * thereto.  Any use, reproduction, disclosure, or distribution of this 
00007  * software and related documentation without an express license agreement 
00008  * from AndroMeta LLC is strictly prohibited.
00009  * 
00010  */
00011 
00018 #ifndef ANDROMETA_MML_PARSER_H
00019 #define ANDROMETA_MML_PARSER_H
00020 
00021 #include <AndroMeta/MParser.h>
00022 
00023 namespace Meta{
00024   
00025   class MMage;
00026   
00031   class MMLParser : public MParser{
00032   public:
00033     
00040     MMLParser(size_t historySize=50, MMage* mage=0);
00041     
00045     ~MMLParser();
00046     
00052     int parse(const mstr& code, const mstr& label="", mvar* tags=0);
00053     
00059     int parseFile(const mstr& filePath, mvar* tags=0);
00060     
00066     int parse(mvar* tags=0);
00067   
00072     static bool isReservedName(const mstr& name);
00073   
00074   private:
00075     MMLParser& operator=(const MMLParser&);
00076     MMLParser(const MMLParser&);
00077     
00078     class MMLParser_* x_;
00079   };
00080 
00089   mnode mmlcode(const mstr& code, mnode r=mnull);
00090   
00091 } // end namespace Meta
00092 
00093 #endif // ANDROMETA_MML_PARSER_H