12345678910111213141516171819202122232425262728293031323334353637 |
- #ifndef REPLXX_ESCAPE_HXX_INCLUDED
- #define REPLXX_ESCAPE_HXX_INCLUDED 1
- namespace replxx {
- namespace EscapeSequenceProcessing {
- // This is a typedef for the routine called by doDispatch(). It takes the
- // current character
- // as input, does any required processing including reading more characters and
- // calling other
- // dispatch routines, then eventually returns the final (possibly extended or
- // special) character.
- //
- typedef char32_t (*CharacterDispatchRoutine)(char32_t);
- // This structure is used by doDispatch() to hold a list of characters to test
- // for and
- // a list of routines to call if the character matches. The dispatch routine
- // list is one
- // longer than the character list; the final entry is used if no character
- // matches.
- //
- struct CharacterDispatch {
- unsigned int len; // length of the chars list
- const char* chars; // chars to test
- CharacterDispatchRoutine* dispatch; // array of routines to call
- };
- char32_t doDispatch(char32_t c);
- }
- }
- #endif
|