/////////////////////////////////////////////////////////////////////////
//                                                                     //
// This file contains the declaration of the CRendererLexer class.     //
//                                                                     //
/////////////////////////////////////////////////////////////////////////
#ifndef __CRENDERERLEXER_HPP__
#define __CRENDERERLEXER_HPP__


#include "CLexer.hpp"

class ILexerStream;


/////////////////////////////////////////////////////////////////////////
//                                                                     //
// This class is the specific lexer of the project.  It sets the       //
// specifics the general class needs.                                  //
//                                                                     //
/////////////////////////////////////////////////////////////////////////
class CRendererLexer : public CLexer
{
public:
  CRendererLexer(ILexerStream* pStream);

private:
  // Class to recognize token that matches any string
  class CMatcher : public ITokenMatcher
  {
  public:
    CMatcher(int tokenValue)
      : ITokenMatcher(tokenValue)
    {
    }
    int match(const std::string&) const
    {
      return m_tokenValue;
    }
  };
};


#endif // __CRENDERERLEXER_HPP__
