aboutsummaryrefslogtreecommitdiff
path: root/src/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.c')
-rw-r--r--src/main.c111
1 files changed, 2 insertions, 109 deletions
diff --git a/src/main.c b/src/main.c
index a4973f7..5b74476 100644
--- a/src/main.c
+++ b/src/main.c
@@ -1,114 +1,7 @@
-// Copyright (c) 2023, Marvin Borner <dev@marvinborner.de>
-
-#ifndef TEST
#include <stdio.h>
-#include <errno.h>
-#include <string.h>
-#include <time.h>
-#include <stdlib.h>
-
-#include <reduce.h>
-#include <gc.h>
-#include <parse.h>
-
-static void callback(int i, char ch, void *data)
-{
- (void)i;
- (void)ch;
- (void)data;
- /* printf("%d: %c\n", i, ch); */
-}
-
-#define BUF_SIZE 1024
-static char *read_stdin(void)
-{
- char buffer[BUF_SIZE];
- size_t size = 1;
- char *string = malloc(sizeof(char) * BUF_SIZE);
- if (!string)
- return 0;
- string[0] = '\0';
- while (fgets(buffer, BUF_SIZE, stdin)) {
- char *old = string;
- size += strlen(buffer);
- string = realloc(string, size);
- if (!string) {
- free(old);
- return 0;
- }
- strcat(string, buffer);
- }
-
- if (ferror(stdin)) {
- free(string);
- fprintf(stderr, "Couldn't read from stdin\n");
- return 0;
- }
- return string;
-}
-
-static char *read_file(const char *path)
-{
- FILE *f = fopen(path, "rb");
- if (!f) {
- fprintf(stderr, "Can't open file %s: %s\n", path,
- strerror(errno));
- return 0;
- }
- fseek(f, 0, SEEK_END);
- long fsize = ftell(f);
- fseek(f, 0, SEEK_SET);
-
- char *string = malloc(fsize + 1);
- int ret = fread(string, fsize, 1, f);
- fclose(f);
-
- if (ret != 1) {
- fprintf(stderr, "Can't read file %s: %s\n", path,
- strerror(errno));
- return 0;
- }
-
- string[fsize] = 0;
- return string;
-}
-
-int main(int argc, char **argv)
+int main(int argc, char *argv[])
{
- GC_INIT();
- GC_enable_incremental();
-
- if (argc < 2) {
- fprintf(stderr, "Invalid arguments\n");
- return 1;
- }
-
- char *input;
- if (argv[1][0] == '-') {
- input = read_stdin();
- } else {
- input = read_file(argv[1]);
- }
-
- if (!input)
- return 1;
-
- struct term *parsed = parse_bruijn(input);
-
- clock_t begin = clock();
- struct term *reduced = reduce(parsed, callback, 0);
- clock_t end = clock();
- fprintf(stderr, "reduced in %.5fs\n",
- (double)(end - begin) / CLOCKS_PER_SEC);
-
- to_bruijn(reduced);
- print_blc(reduced);
- free_term(reduced);
- free_term(parsed);
- free(input);
+ printf("hello world!");
return 0;
}
-#else
-__attribute__((unused)) static int testing;
-#endif