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

Committer:
shintamainjp
Date:
Sun May 22 02:51:35 2011 +0000
Revision:
0:7147d6024de8
Initial version.

Who changed what in which revision?

UserRevisionLine numberNew 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