1 /* Ragel State Machine for tokenizing text */
5 #include <apc/parser.tab.h>
9 int ttov(const uint8_t* , int);
10 uint64_t ttor(const uint8_t* , int);
11 struct name* tton(const uint8_t* , int);
14 #define MAX_TOK_LEN 64
16 #define MAX_STR_SIZE (MAX_TOK_LEN * MAX_TOKENS)
18 int ipow(int base, int exp)
24 result = result * base;
33 int ttov(const uint8_t* str, int len)
37 for (i = 0; i < len; i++)
39 val += ((str[len - (i + 1)] - '0') * ipow(10,i));
45 uint64_t ttor(const uint8_t* str, int len)
50 for (i = 0; i < len; i++)
52 num += ((str[len - (i + 1)] - '0') * ipow(10,i));
58 struct name* tton(const uint8_t* str, int len)
63 namep = (name*) malloc(MAX_NAME_LEN);
64 for(i = 0; i < MAX_NAME_LEN - 1; i++)