summaryrefslogtreecommitdiff
path: root/comp/lucas-standen-NEA/code/tokenizer/util.c
diff options
context:
space:
mode:
Diffstat (limited to 'comp/lucas-standen-NEA/code/tokenizer/util.c')
-rw-r--r--comp/lucas-standen-NEA/code/tokenizer/util.c65
1 files changed, 0 insertions, 65 deletions
diff --git a/comp/lucas-standen-NEA/code/tokenizer/util.c b/comp/lucas-standen-NEA/code/tokenizer/util.c
deleted file mode 100644
index 46deba8..0000000
--- a/comp/lucas-standen-NEA/code/tokenizer/util.c
+++ /dev/null
@@ -1,65 +0,0 @@
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <error.h>
-
-void Die(); // brings down the program
-void *CheckedMalloc(long size); // malloc checked
-void *CheckedRealloc(void *out, long size); // realloc checked
-char **Split(char *s, char c); // splits a string into an array of strings around c
-
-void Die(){
- perror("zpy parser");
- exit(errno);
-}
-
-void *CheckedMalloc(long size){
- void *out = malloc(size);
- if (out == NULL)
- Die();
- return out;
-}
-
-void *CheckedRealloc(void *orig, long size){
- void *out = realloc(orig, size);
- if (out == NULL)
- Die();
- return out;
-}
-
-static size_t countSegment(char const *s, char c){
- size_t counter = 0;
- int i = 0;
- while (s[i]){
- if (s[i] == c){
- i++;
- continue;
- }
- counter++;
- while (s[i] && s[i] != c) i++;
- }
- return counter;
-}
-
-char **Split(char *s, char c){
- char **strs;
- size_t tab_counter;
- size_t i;
- size_t j;
-
- if (s == NULL) return NULL;
- tab_counter = countSegment(s, c);
- if ((strs = (char**)CheckedMalloc(sizeof(char*) * (tab_counter + 1))) == NULL) return NULL;
- tab_counter = 0;
- j = -1;
- while (s[++j]) {
- if (s[j] == c) continue;
- i = 0;
- while (s[j + i] && s[j + i] != c) i++;
- if ((strs[tab_counter++] = strndup(&s[j], i)) == NULL) return NULL;
- j += i - 1;
- }
- strs[tab_counter] = NULL;
- return strs;
-}