/* Copyright (c) <2009> * * This software is provided 'as-is', without any express or implied * warranty. In no event will the authors be held liable for any damages * arising from the use of this software. * * Permission is granted to anyone to use this software for any purpose, * including commercial applications, and to alter it and redistribute it * freely */ // // Auto generated Parser Generator class: $(className).h // #ifndef __$(className)_h__ #define __$(className)_h__ #ifdef _MSC_VER #pragma warning (disable: 4702) // warning C4702: unreachable code #pragma warning (disable: 4100) // warning C4100: unreferenced formal parameter #pragma warning (disable: 4201) // warning C4201: nonstandard extension used : nameless struct/union #endif #include #include class $(scannerClass); class $(className) { public: enum dToken { $(Tokens) }; enum ActionType; class dStackPair; class dGotoEntry; class dActionEntry; class dDefualtUserVariable { public: dDefualtUserVariable () :m_scannerLine (0), m_scannerIndex(0), m_token (dToken (0)), m_data("") { } dDefualtUserVariable (dToken token, const char* const data, int scannerLine, int scannerIndex) :m_scannerLine (scannerLine), m_scannerIndex(scannerIndex), m_token(token), m_data (data) { } dToken GetToken() const { return m_token; } const dString& GetString() const { return m_data; } //protected: int m_scannerLine; int m_scannerIndex; dToken m_token; dString m_data; //friend $(className); }; $(userVariableClass) $(className)(); virtual ~$(className)(); virtual bool Parse($(scannerClass)& scanner); private: const dGotoEntry* FindGoto (const dGotoEntry* const gotoList, int count, dToken token) const; const dActionEntry* FindAction (const dActionEntry* const list, int count, dToken token) const; const dActionEntry* GetNextAction (dList& stack, dToken token, $(scannerClass)& scanner) const; bool m_grammarError; }; #endif