From 600750b3ce9e16f476826d885ff034c6d6d4c72d Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Mon, 19 Apr 2021 10:54:28 -0500 Subject: [PATCH] starting work on C compilation. --- bin/onyx | Bin 358512 -> 358544 bytes build.bat | 4 ++-- build.sh | 2 +- include/onyxc.h | 27 +++++++++++++++++++++++++++ src/onyxc.c | 3 +++ 5 files changed, 33 insertions(+), 3 deletions(-) create mode 100644 include/onyxc.h create mode 100644 src/onyxc.c diff --git a/bin/onyx b/bin/onyx index c7d579b5b06ced6b2e0f836ae578b5c7911d6af0..063e96decd24a57efb8d055814b7c4fb53a4e59b 100755 GIT binary patch delta 6025 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 IxZXAV|H$-B%K!iX delta 5957 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 bd}NBpj=e&mg`TlzPMoV>hf{K%XYl_4Gx%8L diff --git a/build.bat b/build.bat index 730d3119..3e3bc625 100644 --- a/build.bat +++ b/build.bat @@ -1,6 +1,6 @@ @echo off -set SOURCE_FILES=src/onyx.c src/onyxastnodes.c src/onyxbuiltins.c src/onyxchecker.c src/onyxclone.c src/onyxdoc.c src/onyxentities.c src/onyxerrors.c src/onyxlex.c src/onyxparser.c src/onyxsymres.c src/onyxtypes.c src/onyxutils.c src/onyxwasm.c +set SOURCE_FILES=src/onyx.c src/onyxastnodes.c src/onyxbuiltins.c src/onyxchecker.c src/onyxclone.c src/onyxdoc.c src/onyxentities.c src/onyxerrors.c src/onyxlex.c src/onyxparser.c src/onyxsymres.c src/onyxtypes.c src/onyxutils.c src/onyxwasm.c src/onyxc.c if "%1" == "1" ( set FLAGS=/O2 /MT /Z7 @@ -13,4 +13,4 @@ del *.ilk > NUL 2> NUL cl.exe %FLAGS% /I include /std:c17 /Tc %SOURCE_FILES% /link /DEBUG /OUT:onyx.exe /incremental:no /opt:ref /subsystem:console -del *.obj > NUL 2> NUL \ No newline at end of file +del *.obj > NUL 2> NUL diff --git a/build.sh b/build.sh index 07fbeb47..567e92f8 100755 --- a/build.sh +++ b/build.sh @@ -7,7 +7,7 @@ sudo cp -r ./core/ "$CORE_DIR" [ "$1" = "libs_only" ] && exit 0 -C_FILES="onyx onyxastnodes onyxbuiltins onyxchecker onyxclone onyxdoc onyxentities onyxerrors onyxlex onyxparser onyxsymres onyxtypes onyxutils onyxwasm" +C_FILES="onyx onyxastnodes onyxbuiltins onyxchecker onyxclone onyxdoc onyxentities onyxerrors onyxlex onyxparser onyxsymres onyxtypes onyxutils onyxwasm onyxc" TARGET='./bin/onyx' CC='gcc' diff --git a/include/onyxc.h b/include/onyxc.h new file mode 100644 index 00000000..3ea25584 --- /dev/null +++ b/include/onyxc.h @@ -0,0 +1,27 @@ +#ifndef ONYXC_H +#define ONYXC_H + +#include "bh.h" +#include "onyxastnodes.h" + +typedef struct CMemoryReservation { + i32 number; + i32 size; + char* initial_value; +} CMemoryReservation; + +typedef struct CStringLiteral { + i32 number; + i32 size; + char* data; +} CStringLiteral; + +typedef struct CFile { + + bh_arr(CMemoryReservation) memory_reservations; + bh_arr(CStringLiteral) string_literals; + +} CFile; + + +#endif diff --git a/src/onyxc.c b/src/onyxc.c new file mode 100644 index 00000000..2f2fcf4e --- /dev/null +++ b/src/onyxc.c @@ -0,0 +1,3 @@ +#include "onyxc.h" + + -- 2.25.1