| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- /* parser */
- %{
- #include <stdio.h>
- extern int yylineno;
- extern int do_quit;
- static void yyerror(const char *);
- static void yyerror(const char *errmsg)
- {
- fprintf(stderr, "ruleset line %d: %s.", yylineno - 1, errmsg);
- }
- int yywrap(void)
- {
- return (1);
- }
- int dbinsert(size_t key, char *data);
- int dbdelete(size_t key);
- int dbget(size_t key);
- %}
- %union
- {
- size_t number;
- char *string;
- }
- %token <number> KEY
- %token <string> STRING
- %token QUOTE INSERT DELETE GET QUIT
- %%
- ruleset: /*empty*/
- | ruleset command
- ;
- command:
- insert
- |
- delete
- |
- get
- |
- quit
- ;
- insert:
- INSERT KEY STRING
- {
- dbinsert($2, $3);
- }
- ;
-
- delete:
- DELETE KEY
- {
- dbdelete($2);
- }
- ;
- get:
- GET KEY
- {
- dbget($2);
- }
- ;
- quit:
- QUIT
- {
- do_quit = 1;
- YYACCEPT;
- }
- ;
- %%
|