diff --git a/haversine_02/.gitignore b/haversine_02/.gitignore index 1a704fb..563cb2a 100644 --- a/haversine_02/.gitignore +++ b/haversine_02/.gitignore @@ -1,3 +1,6 @@ +.cache +compile_commands.json count_and_distances pairs.json main +genhavr diff --git a/haversine_02/build b/haversine_02/build index 4caafa8..8e1e5c1 100755 --- a/haversine_02/build +++ b/haversine_02/build @@ -1,10 +1,3 @@ -#!/usr/bin/bash +#!/bin/bash -CC=clang++ -CFLAGS="-g -Wall -Wextra" -SRC=*.cpp -OUT=main - -set -x - -$CC $CFLAGS $SRC -o $OUT +bear -- ./compile diff --git a/haversine_02/compile b/haversine_02/compile new file mode 100644 index 0000000..9694bed --- /dev/null +++ b/haversine_02/compile @@ -0,0 +1,16 @@ +#!/bin/bash + +CC=clang++ +CFLAGS="-g -Wall -Wextra -Iinclude" + +# generator +GENSRC="./src/argparser.cpp ./src/generator.cpp ./src/haversine.cpp ./src/point_types.cpp ./src/genmain.cpp" +GENOUT=genhavr + +(set -x ; $CC $CFLAGS $GENSRC -o $GENOUT) + +# json parser +JSONSRC="./src/jsonparse.cpp" +JSONOUT=jsonparse + +(set -x ; $CC $CFLAGS $JSONSRC -o $JSONOUT) diff --git a/haversine_02/aliases.h b/haversine_02/include/aliases.h similarity index 100% rename from haversine_02/aliases.h rename to haversine_02/include/aliases.h diff --git a/haversine_02/argparser.h b/haversine_02/include/argparser.h similarity index 100% rename from haversine_02/argparser.h rename to haversine_02/include/argparser.h diff --git a/haversine_02/generator.h b/haversine_02/include/generator.h similarity index 100% rename from haversine_02/generator.h rename to haversine_02/include/generator.h diff --git a/haversine_02/haversine.h b/haversine_02/include/haversine.h similarity index 100% rename from haversine_02/haversine.h rename to haversine_02/include/haversine.h diff --git a/haversine_02/point_types.h b/haversine_02/include/point_types.h similarity index 100% rename from haversine_02/point_types.h rename to haversine_02/include/point_types.h diff --git a/haversine_02/jsonparse b/haversine_02/jsonparse new file mode 100644 index 0000000..62cfeb2 Binary files /dev/null and b/haversine_02/jsonparse differ diff --git a/haversine_02/argparser.cpp b/haversine_02/src/argparser.cpp similarity index 97% rename from haversine_02/argparser.cpp rename to haversine_02/src/argparser.cpp index d94270e..a42ba85 100644 --- a/haversine_02/argparser.cpp +++ b/haversine_02/src/argparser.cpp @@ -12,7 +12,7 @@ static argp parser = {}; static argp_option options[] = { {.name = "seed", .key = 's', .arg = "SEED"}, {.name = "cluster", .key = 'c'}, - {0}, + {0, 0, 0, 0, 0, 0}, }; GeneratorArgs parse_args(i32 argc, char *argv[]) { diff --git a/haversine_02/generator.cpp b/haversine_02/src/generator.cpp similarity index 100% rename from haversine_02/generator.cpp rename to haversine_02/src/generator.cpp diff --git a/haversine_02/main.cpp b/haversine_02/src/genmain.cpp similarity index 100% rename from haversine_02/main.cpp rename to haversine_02/src/genmain.cpp diff --git a/haversine_02/haversine.cpp b/haversine_02/src/haversine.cpp similarity index 100% rename from haversine_02/haversine.cpp rename to haversine_02/src/haversine.cpp diff --git a/haversine_02/src/jsonparse.cpp b/haversine_02/src/jsonparse.cpp new file mode 100644 index 0000000..e0e7723 --- /dev/null +++ b/haversine_02/src/jsonparse.cpp @@ -0,0 +1,47 @@ +#include "aliases.h" +#include +#include +#include + +i32 main(i32 argc, char *argv[]) { + if (argc < 2) { + printf("Missing filename\n"); + + return EXIT_FAILURE; + } + + const char *filename = argv[1]; + + FILE *fp = fopen(filename, "r"); + if (!fp) { + printf("Failed to open file: %s\n", filename); + + return EXIT_FAILURE; + } + + fseek(fp, 0, SEEK_END); + + u64 length = ftell(fp); + + fseek(fp, 0, SEEK_SET); + + char text[length + 1]; + + memset(text, 0, length); + + fread(text, sizeof(char), length, fp); + text[length] = '\0'; + + const char *delim = ", \t\n"; + + char *token = strtok(text, delim); + while (token) { + printf("TOKEN: %s\n", token); + + token = strtok(NULL, delim); + } + + fclose(fp); + + return EXIT_SUCCESS; +} diff --git a/haversine_02/point_types.cpp b/haversine_02/src/point_types.cpp similarity index 100% rename from haversine_02/point_types.cpp rename to haversine_02/src/point_types.cpp