+++ /dev/null
-/* Ragel State Machine for tokenizing text */\r
-#include <stdio.h>\r
-#include <string.h>\r
-#include <apc/apc.h>\r
-#include <apc/parser.tab.h>\r
-\r
-\r
-int ipow(int, int);\r
-int ttov(const uint8_t* , int);\r
-uint64_t ttor(const uint8_t* , int);\r
-struct name* tton(const uint8_t* , int);\r
-\r
-\r
-#define MAX_TOK_LEN 64\r
-#define MAX_TOKENS 16\r
-#define MAX_STR_SIZE (MAX_TOK_LEN * MAX_TOKENS)\r
-\r
-int ipow(int base, int exp)\r
-{\r
- int result = 1;\r
- while (exp)\r
- {\r
- if (exp & 1)\r
- result = result * base;\r
- exp = exp >> 1;\r
- base *= base;\r
- }\r
-\r
- return result;\r
-}\r
-\r
-/* Token to Value */\r
-int ttov(const uint8_t* str, int len)\r
-{\r
- int i, val = 0;\r
-\r
- for (i = 0; i < len; i++)\r
- {\r
- val += ((str[len - (i + 1)] - '0') * ipow(10,i));\r
- }\r
-\r
- return val;\r
-}\r
-\r
-uint64_t ttor(const uint8_t* str, int len)\r
-{\r
- int i;\r
- uint64_t num = 0;\r
-\r
- for (i = 0; i < len; i++)\r
- {\r
- num += ((str[len - (i + 1)] - '0') * ipow(10,i));\r
- }\r
-\r
- return num;\r
-}\r
-\r
-struct name* tton(const uint8_t* str, int len)\r
-{\r
- int i;\r
- struct name* namep;\r
-\r
- namep = (name*) malloc(MAX_NAME_LEN);\r
- for(i = 0; i < MAX_NAME_LEN - 1; i++)\r
- namep[i] = str[i];\r
- namep[i] = '\0';\r
-\r
- return namep;\r
-}\r