--- /dev/null
+
+#ifndef __TPushLexer_hh__
+#define __LPushLexer_hh__
+
+#include <string>
+
+#include "APushLexer.hh"
+
+class LPushLexer : public APushLexer
+{
+public:
+ LPushLexer(class ALogger&, class APushParser&);
+ virtual ~LPushLexer() { };
+
+ virtual void push(char);
+ virtual void drop(bool = false);
+ virtual void reset(void);
+ virtual void flush(void);
+ virtual bool error(void) const;
+
+private:
+ enum State
+ {
+ ACCEPT,
+ ESCAPE,
+ MACRO,
+ IGNORE_SPACE,
+ PARAMETER,
+ LONG_IDENTIFIER
+ };
+
+ void transaction(char, State);
+
+ State state;
+ std::string buffer;
+};
+
+#endif // __LPushLexer_hh__