46 lines
881 B
C
46 lines
881 B
C
|
|
#ifndef JLEXER_H_QWERTY
|
|
#define JLEXER_H_QWERTY
|
|
|
|
#include <rcache.h>
|
|
#include <stdbool.h>
|
|
|
|
typedef struct {
|
|
rcache_t* cache;
|
|
int fd;
|
|
int context;
|
|
char letter;
|
|
int tokpos;
|
|
bool rewind;
|
|
} jlexer_t;
|
|
|
|
#define JLEXCONT_UNDEF 0
|
|
#define JLEXCONT_WORD 1
|
|
#define JLEXCONT_BLOCKB 2
|
|
#define JLEXCONT_BLOCKE 3
|
|
#define JLEXCONT_SEPAR 4
|
|
#define JLEXCONT_NUM 5
|
|
#define JLEXCONT_UNKNOW 6
|
|
#define JLEXCONT_END 9
|
|
|
|
|
|
#define JLEXTOK_BLOCKB 1
|
|
#define JLEXTOK_BLOCKE 2
|
|
#define JLEXTOK_SPACE 4
|
|
#define JLEXTOK_SEPAR 3
|
|
#define JLEXTOK_UNDEF 4
|
|
#define JLEXTOK_WORD 5
|
|
#define JLEXTOK_NUMB 6
|
|
#define JLEXTOK_UNKNOW 7
|
|
#define JLEXTOK_NEXT 8
|
|
#define JLEXTOK_END 9
|
|
|
|
|
|
|
|
void jlexer_init(jlexer_t * lexer, rcache_t * cache);
|
|
int jlexer_gettoken(jlexer_t * lexer, char* token);
|
|
void jlexer_destroy(jlexer_t * lexer);
|
|
|
|
|
|
#endif
|