Natural Tiny Shell (NT-Shell) library is a tiny shell library for a small embedded system. The interface is really simple. You should only know ntshell_execute in ntshell.h. So you can port it to any embedded system easily. Please enjoy your small embedded system with it. :)
Dependents: NaturalTinyShell_TestProgram
vtparse.h@0:7147d6024de8, 2011-05-22 (annotated)
- Committer:
- shintamainjp
- Date:
- Sun May 22 02:51:35 2011 +0000
- Revision:
- 0:7147d6024de8
Initial version.
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 |