Fork of NaturalTinyShell by
vtparse.h@2:61c70abc5690, 2015-03-19 (annotated)
- Committer:
- co2_kun
- Date:
- Thu Mar 19 15:04:48 2015 +0000
- Revision:
- 2:61c70abc5690
- Parent:
- 0:7147d6024de8
file doc fix
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
shintamainjp | 0:7147d6024de8 | 1 | /** |
shintamainjp | 0:7147d6024de8 | 2 | * @file vtparse.h |
shintamainjp | 0:7147d6024de8 | 3 | * @brief VTParse |
shintamainjp | 0:7147d6024de8 | 4 | * @details |
shintamainjp | 0:7147d6024de8 | 5 | * An implementation of Paul Williams' DEC compatible state machine parser |
shintamainjp | 0:7147d6024de8 | 6 | * This code is in the public domain. |
shintamainjp | 0:7147d6024de8 | 7 | * @author Joshua Haberman <joshua@reverberate.org> |
shintamainjp | 0:7147d6024de8 | 8 | */ |
shintamainjp | 0:7147d6024de8 | 9 | |
shintamainjp | 0:7147d6024de8 | 10 | #include "vtparse_table.h" |
shintamainjp | 0:7147d6024de8 | 11 | |
shintamainjp | 0:7147d6024de8 | 12 | #define MAX_INTERMEDIATE_CHARS 2 |
shintamainjp | 0:7147d6024de8 | 13 | #define ACTION(state_change) (vtparse_action_t)(state_change & 0x0F) |
shintamainjp | 0:7147d6024de8 | 14 | #define STATE(state_change) (vtparse_state_t)(state_change >> 4) |
shintamainjp | 0:7147d6024de8 | 15 | |
shintamainjp | 0:7147d6024de8 | 16 | struct vtparse; |
shintamainjp | 0:7147d6024de8 | 17 | |
shintamainjp | 0:7147d6024de8 | 18 | typedef void (*vtparse_callback_t)(struct vtparse*, vtparse_action_t, unsigned char); |
shintamainjp | 0:7147d6024de8 | 19 | |
shintamainjp | 0:7147d6024de8 | 20 | typedef struct vtparse { |
shintamainjp | 0:7147d6024de8 | 21 | vtparse_state_t state; |
shintamainjp | 0:7147d6024de8 | 22 | vtparse_callback_t cb; |
shintamainjp | 0:7147d6024de8 | 23 | unsigned char intermediate_chars[MAX_INTERMEDIATE_CHARS+1]; |
shintamainjp | 0:7147d6024de8 | 24 | char ignore_flagged; |
shintamainjp | 0:7147d6024de8 | 25 | int params[16]; |
shintamainjp | 0:7147d6024de8 | 26 | int num_params; |
shintamainjp | 0:7147d6024de8 | 27 | void* user_data; |
shintamainjp | 0:7147d6024de8 | 28 | } vtparse_t; |
shintamainjp | 0:7147d6024de8 | 29 | |
shintamainjp | 0:7147d6024de8 | 30 | void vtparse_init(vtparse_t *parser, vtparse_callback_t cb); |
shintamainjp | 0:7147d6024de8 | 31 | void vtparse(vtparse_t *parser, unsigned char *data, int len); |
shintamainjp | 0:7147d6024de8 | 32 |