Fill in state table

This commit is contained in:
Keith Winstein
2011-01-09 03:38:17 -05:00
parent 49c7b66835
commit f2ceffc5d9
3 changed files with 373 additions and 24 deletions
+56 -19
View File
@@ -7,36 +7,73 @@ namespace Parser {
class State
{
protected:
const virtual Transition input_state_rule( wchar_t ch ) { ch = ch; return Transition( Ignore(), NULL ); }
virtual Transition input_state_rule( wchar_t ch ) = 0;
private:
const virtual Action enter( void ) { return Ignore(); };
const virtual Action leave( void ) { return Ignore(); };
virtual Action enter( void ) { return Ignore(); };
virtual Action exit( void ) { return Ignore(); };
const Transition input( wchar_t ch );
const static Transition anywhere_rule( wchar_t ch );
Transition input( wchar_t ch );
Transition anywhere_rule( wchar_t ch );
public:
virtual ~State() {};
};
class Ground : public State {};
class Escape : public State {};
class Escape_Intermediate : public State {};
class Ground : public State {
Transition input_state_rule( wchar_t ch );
};
class CSI_Entry : public State {};
class CSI_Param : public State {};
class CSI_Intermediate : public State {};
class CSI_Ignore : public State {};
class Escape : public State {
Action enter( void );
Transition input_state_rule( wchar_t ch );
};
class Escape_Intermediate : public State {
Transition input_state_rule( wchar_t ch );
};
class CSI_Entry : public State {
Action enter( void );
Transition input_state_rule( wchar_t ch );
};
class CSI_Param : public State {
Transition input_state_rule( wchar_t ch );
};
class CSI_Intermediate : public State {
Transition input_state_rule( wchar_t ch );
};
class CSI_Ignore : public State {
Transition input_state_rule( wchar_t ch );
};
class DCS_Entry : public State {};
class DCS_Param : public State {};
class DCS_Intermediate : public State {};
class DCS_Passthrough : public State {};
class DCS_Ignore : public State {};
class DCS_Entry : public State {
Action enter( void );
Transition input_state_rule( wchar_t ch );
};
class DCS_Param : public State {
Transition input_state_rule( wchar_t ch );
};
class DCS_Intermediate : public State {
Transition input_state_rule( wchar_t ch );
};
class DCS_Passthrough : public State {
Action enter( void );
Transition input_state_rule( wchar_t ch );
Action exit( void );
};
class DCS_Ignore : public State {
Transition input_state_rule( wchar_t ch );
};
class OSC_String : public State {};
class SOS_PM_APC_String : public State {};
class OSC_String : public State {
Action enter( void );
Transition input_state_rule( wchar_t ch );
Action exit( void );
};
class SOS_PM_APC_String : public State {
Transition input_state_rule( wchar_t ch );
};
}
#endif