Separate modules by subdirectory

This commit is contained in:
Keith Winstein
2012-02-06 18:26:45 -05:00
parent 7e56af8fcd
commit 38c9e99882
58 changed files with 79 additions and 16 deletions
+87
View File
@@ -0,0 +1,87 @@
#ifndef PARSERSTATE_HPP
#define PARSERSTATE_HPP
#include "parsertransition.h"
namespace Parser {
class StateFamily;
class State
{
protected:
virtual Transition input_state_rule( wchar_t ch ) const = 0;
StateFamily *family;
private:
Transition anywhere_rule( wchar_t ch ) const;
public:
void setfamily( StateFamily *s_family ) { family = s_family; }
Transition input( wchar_t ch ) const;
virtual Action *enter( void ) const { return new Ignore; }
virtual Action *exit( void ) const { return new Ignore; }
State() : family( NULL ) {};
virtual ~State() {};
State( const State & );
State & operator=( const State & );
};
class Ground : public State {
Transition input_state_rule( wchar_t ch ) const;
};
class Escape : public State {
Action *enter( void ) const;
Transition input_state_rule( wchar_t ch ) const;
};
class Escape_Intermediate : public State {
Transition input_state_rule( wchar_t ch ) const;
};
class CSI_Entry : public State {
Action *enter( void ) const;
Transition input_state_rule( wchar_t ch ) const;
};
class CSI_Param : public State {
Transition input_state_rule( wchar_t ch ) const;
};
class CSI_Intermediate : public State {
Transition input_state_rule( wchar_t ch ) const;
};
class CSI_Ignore : public State {
Transition input_state_rule( wchar_t ch ) const;
};
class DCS_Entry : public State {
Action *enter( void ) const;
Transition input_state_rule( wchar_t ch ) const;
};
class DCS_Param : public State {
Transition input_state_rule( wchar_t ch ) const;
};
class DCS_Intermediate : public State {
Transition input_state_rule( wchar_t ch ) const;
};
class DCS_Passthrough : public State {
Action *enter( void ) const;
Transition input_state_rule( wchar_t ch ) const;
Action *exit( void ) const;
};
class DCS_Ignore : public State {
Transition input_state_rule( wchar_t ch ) const;
};
class OSC_String : public State {
Action *enter( void ) const;
Transition input_state_rule( wchar_t ch ) const;
Action *exit( void ) const;
};
class SOS_PM_APC_String : public State {
Transition input_state_rule( wchar_t ch ) const;
};
}
#endif