X-Git-Url: https://www.kengrimes.com/gitweb/?p=henge%2Fapc.git;a=blobdiff_plain;f=src%2Flexer_lex.rl;fp=src%2Flexer_lex.rl;h=0000000000000000000000000000000000000000;hp=be3cbff479c029e2ccd215df0f92fe6bd746ae45;hb=c719f3e6c6663f6640422d81c156231c84cdcbdf;hpb=725efea1b7d75c83c967b05c39b9fe6c3bbb9ce3 diff --git a/src/lexer_lex.rl b/src/lexer_lex.rl deleted file mode 100644 index be3cbff..0000000 --- a/src/lexer_lex.rl +++ /dev/null @@ -1,69 +0,0 @@ -/* Ragel State Machine for tokenizing text */ -#include -#include -#include "apc.h" -#include "parser.tab.h" - - -int ipow(int, int); -int ttov(const uint8_t* , int); -uint64_t ttor(const uint8_t* , int); -struct name* tton(const uint8_t* , int); - - -#define MAX_TOK_LEN 64 -#define MAX_TOKENS 16 -#define MAX_STR_SIZE (MAX_TOK_LEN * MAX_TOKENS) - -int ipow(int base, int exp) -{ - int result = 1; - while (exp) - { - if (exp & 1) - result = result * base; - exp = exp >> 1; - base *= base; - } - - return result; -} - -/* Token to Value */ -int ttov(const uint8_t* str, int len) -{ - int i, val = 0; - - for (i = 0; i < len; i++) - { - val += ((str[len - (i + 1)] - '0') * ipow(10,i)); - } - - return val; -} - -uint64_t ttor(const uint8_t* str, int len) -{ - int i; - uint64_t num = 0; - - for (i = 0; i < len; i++) - { - num += ((str[len - (i + 1)] - '0') * ipow(10,i)); - } - - return num; -} - -struct name* tton(const uint8_t* str, int len) -{ - int i; - struct name* namep; - - namep = (struct name*) malloc(MAX_NAME_LEN); - for(i = 0; i < MAX_NAME_LEN - 1; i++) - namep->name[i] = str[i]; - namep->name[i] = '\0'; - - return namep; -}