|
9.2.2.3 `eval.c' & `eval.h'
Having created a Sic parser, and populated it with some
Builtin handlers, a user of this library must tokenize and
evaluate its input stream. These files define a structure for storing
tokenized strings (Tokens ), and functions for converting
char * strings both to and from this structure type:
|
#ifndef SIC_EVAL_H
#define SIC_EVAL_H 1
#include <sic/common.h>
#include <sic/sic.h>
BEGIN_C_DECLS
typedef struct {
int argc; /* number of elements in ARGV */
char **argv; /* array of pointers to elements */
size_t lim; /* number of bytes allocated */
} Tokens;
extern int eval (Sic *sic, Tokens *tokens);
extern int untokenize (Sic *sic, char **pcommand, Tokens *tokens);
extern int tokenize (Sic *sic, Tokens **ptokens, char **pcommand);
END_C_DECLS
#endif /* !SIC_EVAL_H */
|
These files also define the eval function, which examines a
Tokens structure in the context of the given Sic parser,
dispatching the argv array to a relevant Builtin handler,
also written by the library user.
|