From bd73132a30c840d9e43484eace74f77ab95984af Mon Sep 17 00:00:00 2001 From: Eduard Urbach Date: Fri, 20 Oct 2023 17:07:44 +0200 Subject: [PATCH] Improved project structure --- README.md | 5 ++--- examples/fibonacci/fibonacci.q | 19 +++++++++++++++++++ examples/hello/hello.q | 2 +- main.go | 2 +- {build => src/build}/Build.go | 8 ++++---- {cli => src/cli}/Build.go | 4 ++-- {cli => src/cli}/Help.go | 2 +- {cli => src/cli}/Main.go | 0 {cli => src/cli}/System.go | 2 +- {cli => src/cli}/cli_test.go | 4 ++-- {directory => src/directory}/Walk.go | 0 elf/ELF64.go => src/elf/ELF.go | 0 {elf => src/elf}/Header.go | 0 {elf => src/elf}/ProgramHeader.go | 0 {elf => src/elf}/SectionHeader.go | 0 {elf => src/elf}/elf.md | 0 {errors => src/errors}/InvalidPath.go | 0 {log => src/log}/log.go | 0 18 files changed, 33 insertions(+), 15 deletions(-) create mode 100644 examples/fibonacci/fibonacci.q rename {build => src/build}/Build.go (93%) rename {cli => src/cli}/Build.go (87%) rename {cli => src/cli}/Help.go (89%) rename {cli => src/cli}/Main.go (100%) rename {cli => src/cli}/System.go (95%) rename {cli => src/cli}/cli_test.go (93%) rename {directory => src/directory}/Walk.go (100%) rename elf/ELF64.go => src/elf/ELF.go (100%) rename {elf => src/elf}/Header.go (100%) rename {elf => src/elf}/ProgramHeader.go (100%) rename {elf => src/elf}/SectionHeader.go (100%) rename {elf => src/elf}/elf.md (100%) rename {errors => src/errors}/InvalidPath.go (100%) rename {log => src/log}/log.go (100%) diff --git a/README.md b/README.md index 37b03bc..3df933b 100644 --- a/README.md +++ b/README.md @@ -4,9 +4,8 @@ A simple programming language. ## Features -* Fast compilation -* High performance -* Small binaries +* 🔥 Fast compilation +* 📦 Small binaries ## Installation diff --git a/examples/fibonacci/fibonacci.q b/examples/fibonacci/fibonacci.q new file mode 100644 index 0000000..c188e38 --- /dev/null +++ b/examples/fibonacci/fibonacci.q @@ -0,0 +1,19 @@ +import sys + +main() { + let f = fibonacci(11) + sys.exit(f) +} + +fibonacci(n Int) -> Int { + mut b = 0 + mut c = 1 + + for 0..n { + let a = b + b = c + c = a + b + } + + return b +} diff --git a/examples/hello/hello.q b/examples/hello/hello.q index d974d48..4f723f0 100644 --- a/examples/hello/hello.q +++ b/examples/hello/hello.q @@ -1,3 +1,3 @@ main() { - + print("Hello") } diff --git a/main.go b/main.go index 2a518ef..60febb9 100644 --- a/main.go +++ b/main.go @@ -3,7 +3,7 @@ package main import ( "os" - "git.akyoto.dev/cli/q/cli" + "git.akyoto.dev/cli/q/src/cli" ) func main() { diff --git a/build/Build.go b/src/build/Build.go similarity index 93% rename from build/Build.go rename to src/build/Build.go index 368b711..0d3df91 100644 --- a/build/Build.go +++ b/src/build/Build.go @@ -7,10 +7,10 @@ import ( "path/filepath" "strings" - "git.akyoto.dev/cli/q/directory" - "git.akyoto.dev/cli/q/elf" - "git.akyoto.dev/cli/q/errors" - "git.akyoto.dev/cli/q/log" + "git.akyoto.dev/cli/q/src/directory" + "git.akyoto.dev/cli/q/src/elf" + "git.akyoto.dev/cli/q/src/errors" + "git.akyoto.dev/cli/q/src/log" ) // Build describes a compiler build. diff --git a/cli/Build.go b/src/cli/Build.go similarity index 87% rename from cli/Build.go rename to src/cli/Build.go index 7c8eac5..47e76db 100644 --- a/cli/Build.go +++ b/src/cli/Build.go @@ -1,8 +1,8 @@ package cli import ( - "git.akyoto.dev/cli/q/build" - "git.akyoto.dev/cli/q/log" + "git.akyoto.dev/cli/q/src/build" + "git.akyoto.dev/cli/q/src/log" ) // Build builds an executable. diff --git a/cli/Help.go b/src/cli/Help.go similarity index 89% rename from cli/Help.go rename to src/cli/Help.go index e34dc6c..35fa8cd 100644 --- a/cli/Help.go +++ b/src/cli/Help.go @@ -1,7 +1,7 @@ package cli import ( - "git.akyoto.dev/cli/q/log" + "git.akyoto.dev/cli/q/src/log" ) // Help shows the command line argument usage. diff --git a/cli/Main.go b/src/cli/Main.go similarity index 100% rename from cli/Main.go rename to src/cli/Main.go diff --git a/cli/System.go b/src/cli/System.go similarity index 95% rename from cli/System.go rename to src/cli/System.go index 36fde71..d76f565 100644 --- a/cli/System.go +++ b/src/cli/System.go @@ -4,7 +4,7 @@ import ( "os" "runtime" - "git.akyoto.dev/cli/q/log" + "git.akyoto.dev/cli/q/src/log" ) // System shows system information. diff --git a/cli/cli_test.go b/src/cli/cli_test.go similarity index 93% rename from cli/cli_test.go rename to src/cli/cli_test.go index 111df5d..eb51e18 100644 --- a/cli/cli_test.go +++ b/src/cli/cli_test.go @@ -5,8 +5,8 @@ import ( "os" "testing" - "git.akyoto.dev/cli/q/cli" - "git.akyoto.dev/cli/q/log" + "git.akyoto.dev/cli/q/src/cli" + "git.akyoto.dev/cli/q/src/log" "git.akyoto.dev/go/assert" ) diff --git a/directory/Walk.go b/src/directory/Walk.go similarity index 100% rename from directory/Walk.go rename to src/directory/Walk.go diff --git a/elf/ELF64.go b/src/elf/ELF.go similarity index 100% rename from elf/ELF64.go rename to src/elf/ELF.go diff --git a/elf/Header.go b/src/elf/Header.go similarity index 100% rename from elf/Header.go rename to src/elf/Header.go diff --git a/elf/ProgramHeader.go b/src/elf/ProgramHeader.go similarity index 100% rename from elf/ProgramHeader.go rename to src/elf/ProgramHeader.go diff --git a/elf/SectionHeader.go b/src/elf/SectionHeader.go similarity index 100% rename from elf/SectionHeader.go rename to src/elf/SectionHeader.go diff --git a/elf/elf.md b/src/elf/elf.md similarity index 100% rename from elf/elf.md rename to src/elf/elf.md diff --git a/errors/InvalidPath.go b/src/errors/InvalidPath.go similarity index 100% rename from errors/InvalidPath.go rename to src/errors/InvalidPath.go diff --git a/log/log.go b/src/log/log.go similarity index 100% rename from log/log.go rename to src/log/log.go