diff options
Diffstat (limited to 'vtparse/src/vtparse.h')
-rw-r--r-- | vtparse/src/vtparse.h | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/vtparse/src/vtparse.h b/vtparse/src/vtparse.h new file mode 100644 index 0000000..1d176ad --- /dev/null +++ b/vtparse/src/vtparse.h @@ -0,0 +1,31 @@ +/* + * VTParse - an implementation of Paul Williams' DEC compatible state machine parser + * + * Author: Joshua Haberman <joshua@reverberate.org> + * + * This code is in the public domain. + */ + +#include "vtparse_table.h" + +#define MAX_INTERMEDIATE_CHARS 2 +#define ACTION(state_change) (state_change & 0x0F) +#define STATE(state_change) (state_change >> 4) + +struct vtparse; + +typedef void (*vtparse_callback_t)(struct vtparse*, vtparse_action_t, unsigned char); + +typedef struct vtparse { + vtparse_state_t state; + vtparse_callback_t cb; + unsigned char intermediate_chars[MAX_INTERMEDIATE_CHARS+1]; + char ignore_flagged; + int params[16]; + int num_params; + void* user_data; +} vtparse_t; + +void vtparse_init(vtparse_t *parser, vtparse_callback_t cb); +void vtparse(vtparse_t *parser, unsigned char *data, int len); + |