From 3b142b24535068631bc3287795a5164038c00ffe Mon Sep 17 00:00:00 2001 From: nub31 Date: Sat, 3 May 2025 16:55:06 +0200 Subject: [PATCH] restructure fs --- .gitignore | 4 +- Nub.Lang/Nub.Core/Nub.Core.csproj | 9 - build.sh | 15 + clean.sh | 2 + debug.sh | 4 + {input => example}/core/array.nub | 0 {input => example}/core/print.nub | 0 {input => example}/core/string.nub | 0 {input => example}/program.nub | 0 input/util.asm | 311 ------------------ .../.idea/.idea.Nub.Lang/.idea/.gitignore | 0 lang/.idea/.idea.Nub.Lang/.idea/.name | 1 + .../.idea/codeStyles/codeStyleConfig.xml | 0 .../.idea/.idea.Nub.Lang/.idea/encodings.xml | 0 .../.idea.Nub.Lang/.idea/indexLayout.xml | 3 +- .../.idea/.idea.Nub.Lang/.idea/vcs.xml | 0 {Nub.Lang => lang}/Nub.Lang.sln | 6 - .../Nub.Lang/Backend/Custom/Generator.cs | 0 .../Nub.Lang/Backend/Custom/LabelFactory.cs | 0 .../Nub.Lang/Backend/Custom/SymbolTable.cs | 3 +- .../Frontend/Lexing/IdentifierToken.cs | 0 .../Nub.Lang/Frontend/Lexing/Lexer.cs | 4 +- .../Nub.Lang/Frontend/Lexing/LiteralToken.cs | 0 .../Nub.Lang/Frontend/Lexing/SymbolToken.cs | 0 .../Nub.Lang/Frontend/Lexing/Token.cs | 0 .../Frontend/Parsing/ArrayIndexAccessNode.cs | 0 .../Parsing/ArrayIndexAssignmentNode.cs | 0 .../Frontend/Parsing/ArrayInitializerNode.cs | 0 .../Frontend/Parsing/BinaryExpressionNode.cs | 0 .../Nub.Lang/Frontend/Parsing/BlockNode.cs | 0 .../Nub.Lang/Frontend/Parsing/BreakNode.cs | 0 .../Nub.Lang/Frontend/Parsing/ContinueNode.cs | 0 .../Frontend/Parsing/DefinitionNode.cs | 0 .../Frontend/Parsing/ExpressionNode.cs | 0 .../Parsing/ExternFuncDefinitionNode.cs | 4 +- .../Nub.Lang/Frontend/Parsing/FuncCall.cs | 0 .../Parsing/FuncCallExpressionNode.cs | 0 .../Frontend/Parsing/FuncCallStatementNode.cs | 0 .../Parsing/GlobalVariableDefinitionNode.cs | 0 .../Frontend/Parsing/IdentifierNode.cs | 0 .../Nub.Lang/Frontend/Parsing/IfNode.cs | 4 +- .../Nub.Lang/Frontend/Parsing/LiteralNode.cs | 0 .../Parsing/LocalFuncDefinitionNode.cs | 4 +- .../Nub.Lang/Frontend/Parsing/ModuleNode.cs | 0 .../Nub.Lang/Frontend/Parsing/Node.cs | 0 .../Nub.Lang/Frontend/Parsing/Parser.cs | 1 - .../Nub.Lang/Frontend/Parsing/ReturnNode.cs | 4 +- .../Frontend/Parsing/StatementNode.cs | 0 .../Frontend/Parsing/StructDefinitionNode.cs | 0 .../Frontend/Parsing/StructInitializerNode.cs | 0 .../Parsing/StructMemberAccessorNode.cs | 0 .../Nub.Lang/Frontend/Parsing/Syscall.cs | 0 .../Frontend/Parsing/SyscallExpressionNode.cs | 0 .../Frontend/Parsing/SyscallStatementNode.cs | 0 .../Parsing/VariableAssignmentNode.cs | 0 .../Parsing/VariableReassignmentNode.cs | 0 .../Nub.Lang/Frontend/Parsing/WhileNode.cs | 0 .../Frontend/Typing/ExpressionTyper.cs | 3 +- {Nub.Lang => lang}/Nub.Lang/FuncParameter.cs | 0 {Nub.Lang => lang}/Nub.Lang/Nub.Lang.csproj | 4 - .../Nub.Core => lang/Nub.Lang}/Optional.cs | 2 +- {Nub.Lang => lang}/Nub.Lang/Program.cs | 4 +- {Nub.Lang => lang}/Nub.Lang/StructMember.cs | 3 +- {Nub.Lang => lang}/Nub.Lang/Type.cs | 0 .../Nub.Core => lang/Nub.Lang}/Variant.cs | 2 +- output/build.sh | 11 - output/clean.sh | 8 - output/debug.sh | 3 - output/profile.sh | 3 - output/run.sh => run.sh | 3 +- {input => std}/baseline/gc.c | 0 {input => std}/baseline/str_cmp.asm | 0 {input => std}/core/arr_size.asm | 0 {input => std}/core/itoa.asm | 0 {input => std}/core/str_len.asm | 0 75 files changed, 38 insertions(+), 387 deletions(-) delete mode 100644 Nub.Lang/Nub.Core/Nub.Core.csproj create mode 100755 build.sh create mode 100755 clean.sh create mode 100755 debug.sh rename {input => example}/core/array.nub (100%) rename {input => example}/core/print.nub (100%) rename {input => example}/core/string.nub (100%) rename {input => example}/program.nub (100%) delete mode 100644 input/util.asm rename {Nub.Lang => lang}/.idea/.idea.Nub.Lang/.idea/.gitignore (100%) create mode 100644 lang/.idea/.idea.Nub.Lang/.idea/.name rename {Nub.Lang => lang}/.idea/.idea.Nub.Lang/.idea/codeStyles/codeStyleConfig.xml (100%) rename {Nub.Lang => lang}/.idea/.idea.Nub.Lang/.idea/encodings.xml (100%) rename {Nub.Lang => lang}/.idea/.idea.Nub.Lang/.idea/indexLayout.xml (75%) rename {Nub.Lang => lang}/.idea/.idea.Nub.Lang/.idea/vcs.xml (100%) rename {Nub.Lang => lang}/Nub.Lang.sln (62%) rename {Nub.Lang => lang}/Nub.Lang/Backend/Custom/Generator.cs (100%) rename {Nub.Lang => lang}/Nub.Lang/Backend/Custom/LabelFactory.cs (100%) rename {Nub.Lang => lang}/Nub.Lang/Backend/Custom/SymbolTable.cs (99%) rename {Nub.Lang => lang}/Nub.Lang/Frontend/Lexing/IdentifierToken.cs (100%) rename {Nub.Lang => lang}/Nub.Lang/Frontend/Lexing/Lexer.cs (98%) rename {Nub.Lang => lang}/Nub.Lang/Frontend/Lexing/LiteralToken.cs (100%) rename {Nub.Lang => lang}/Nub.Lang/Frontend/Lexing/SymbolToken.cs (100%) rename {Nub.Lang => lang}/Nub.Lang/Frontend/Lexing/Token.cs (100%) rename {Nub.Lang => lang}/Nub.Lang/Frontend/Parsing/ArrayIndexAccessNode.cs (100%) rename {Nub.Lang => lang}/Nub.Lang/Frontend/Parsing/ArrayIndexAssignmentNode.cs (100%) rename {Nub.Lang => lang}/Nub.Lang/Frontend/Parsing/ArrayInitializerNode.cs (100%) rename {Nub.Lang => lang}/Nub.Lang/Frontend/Parsing/BinaryExpressionNode.cs (100%) rename {Nub.Lang => lang}/Nub.Lang/Frontend/Parsing/BlockNode.cs (100%) rename {Nub.Lang => lang}/Nub.Lang/Frontend/Parsing/BreakNode.cs (100%) rename {Nub.Lang => lang}/Nub.Lang/Frontend/Parsing/ContinueNode.cs (100%) rename {Nub.Lang => lang}/Nub.Lang/Frontend/Parsing/DefinitionNode.cs (100%) rename {Nub.Lang => lang}/Nub.Lang/Frontend/Parsing/ExpressionNode.cs (100%) rename {Nub.Lang => lang}/Nub.Lang/Frontend/Parsing/ExternFuncDefinitionNode.cs (88%) rename {Nub.Lang => lang}/Nub.Lang/Frontend/Parsing/FuncCall.cs (100%) rename {Nub.Lang => lang}/Nub.Lang/Frontend/Parsing/FuncCallExpressionNode.cs (100%) rename {Nub.Lang => lang}/Nub.Lang/Frontend/Parsing/FuncCallStatementNode.cs (100%) rename {Nub.Lang => lang}/Nub.Lang/Frontend/Parsing/GlobalVariableDefinitionNode.cs (100%) rename {Nub.Lang => lang}/Nub.Lang/Frontend/Parsing/IdentifierNode.cs (100%) rename {Nub.Lang => lang}/Nub.Lang/Frontend/Parsing/IfNode.cs (83%) rename {Nub.Lang => lang}/Nub.Lang/Frontend/Parsing/LiteralNode.cs (100%) rename {Nub.Lang => lang}/Nub.Lang/Frontend/Parsing/LocalFuncDefinitionNode.cs (89%) rename {Nub.Lang => lang}/Nub.Lang/Frontend/Parsing/ModuleNode.cs (100%) rename {Nub.Lang => lang}/Nub.Lang/Frontend/Parsing/Node.cs (100%) rename {Nub.Lang => lang}/Nub.Lang/Frontend/Parsing/Parser.cs (99%) rename {Nub.Lang => lang}/Nub.Lang/Frontend/Parsing/ReturnNode.cs (69%) rename {Nub.Lang => lang}/Nub.Lang/Frontend/Parsing/StatementNode.cs (100%) rename {Nub.Lang => lang}/Nub.Lang/Frontend/Parsing/StructDefinitionNode.cs (100%) rename {Nub.Lang => lang}/Nub.Lang/Frontend/Parsing/StructInitializerNode.cs (100%) rename {Nub.Lang => lang}/Nub.Lang/Frontend/Parsing/StructMemberAccessorNode.cs (100%) rename {Nub.Lang => lang}/Nub.Lang/Frontend/Parsing/Syscall.cs (100%) rename {Nub.Lang => lang}/Nub.Lang/Frontend/Parsing/SyscallExpressionNode.cs (100%) rename {Nub.Lang => lang}/Nub.Lang/Frontend/Parsing/SyscallStatementNode.cs (100%) rename {Nub.Lang => lang}/Nub.Lang/Frontend/Parsing/VariableAssignmentNode.cs (100%) rename {Nub.Lang => lang}/Nub.Lang/Frontend/Parsing/VariableReassignmentNode.cs (100%) rename {Nub.Lang => lang}/Nub.Lang/Frontend/Parsing/WhileNode.cs (100%) rename {Nub.Lang => lang}/Nub.Lang/Frontend/Typing/ExpressionTyper.cs (99%) rename {Nub.Lang => lang}/Nub.Lang/FuncParameter.cs (100%) rename {Nub.Lang => lang}/Nub.Lang/Nub.Lang.csproj (72%) rename {Nub.Lang/Nub.Core => lang/Nub.Lang}/Optional.cs (98%) rename {Nub.Lang => lang}/Nub.Lang/Program.cs (96%) rename {Nub.Lang => lang}/Nub.Lang/StructMember.cs (82%) rename {Nub.Lang => lang}/Nub.Lang/Type.cs (100%) rename {Nub.Lang/Nub.Core => lang/Nub.Lang}/Variant.cs (97%) delete mode 100755 output/build.sh delete mode 100755 output/clean.sh delete mode 100755 output/debug.sh delete mode 100644 output/profile.sh rename output/run.sh => run.sh (71%) rename {input => std}/baseline/gc.c (100%) rename {input => std}/baseline/str_cmp.asm (100%) rename {input => std}/core/arr_size.asm (100%) rename {input => std}/core/itoa.asm (100%) rename {input => std}/core/str_len.asm (100%) diff --git a/.gitignore b/.gitignore index 13fe958..a8d2bde 100644 --- a/.gitignore +++ b/.gitignore @@ -33,6 +33,4 @@ Thumbs.db Desktop.ini .DS_Store -output/*.o -output/out -output/out.asm +out diff --git a/Nub.Lang/Nub.Core/Nub.Core.csproj b/Nub.Lang/Nub.Core/Nub.Core.csproj deleted file mode 100644 index 3a63532..0000000 --- a/Nub.Lang/Nub.Core/Nub.Core.csproj +++ /dev/null @@ -1,9 +0,0 @@ - - - - net8.0 - enable - enable - - - diff --git a/build.sh b/build.sh new file mode 100755 index 0000000..5aaabed --- /dev/null +++ b/build.sh @@ -0,0 +1,15 @@ +#!/bin/sh +mkdir -p out + +dotnet run --project lang/Nub.Lang example out/out.asm + +gcc -c -g -fno-stack-protector -fno-builtin std/baseline/gc.c -o out/gc.o +nasm -g -felf64 std/baseline/str_cmp.asm -o out/str_cmp.o + +nasm -g -felf64 std/core/str_len.asm -o out/str_len.o +nasm -g -felf64 std/core/arr_size.asm -o out/arr_size.o +nasm -g -felf64 std/core/itoa.asm -o out/itoa.o + +nasm -g -felf64 out/out.asm -o out/out.o + +gcc -no-pie -nostartfiles -o out/program out/gc.o out/str_cmp.o out/str_len.o out/arr_size.o out/itoa.o out/out.o diff --git a/clean.sh b/clean.sh new file mode 100755 index 0000000..5d94bd7 --- /dev/null +++ b/clean.sh @@ -0,0 +1,2 @@ +#!/bin/sh +rm -rf out \ No newline at end of file diff --git a/debug.sh b/debug.sh new file mode 100755 index 0000000..3a13bf1 --- /dev/null +++ b/debug.sh @@ -0,0 +1,4 @@ +#!/bin/sh +./clean.sh +./build.sh +gdb -tui ./out/program diff --git a/input/core/array.nub b/example/core/array.nub similarity index 100% rename from input/core/array.nub rename to example/core/array.nub diff --git a/input/core/print.nub b/example/core/print.nub similarity index 100% rename from input/core/print.nub rename to example/core/print.nub diff --git a/input/core/string.nub b/example/core/string.nub similarity index 100% rename from input/core/string.nub rename to example/core/string.nub diff --git a/input/program.nub b/example/program.nub similarity index 100% rename from input/program.nub rename to example/program.nub diff --git a/input/util.asm b/input/util.asm deleted file mode 100644 index fdce707..0000000 --- a/input/util.asm +++ /dev/null @@ -1,311 +0,0 @@ -;********************************************************************* -; util.asm -; Version: 1.2 -; Author: mjbrusso -; Contributors: AlessandroFonseca -; Licensed under the MIT license (see "license.txt"). -;********************************************************************* -global exit, exit0, strlen, atoi, endl, printstr, printint, readstr, readint - -SYS_READ: equ 0 -SYS_WRITE: equ 1 -SYS_EXIT: equ 60 - -STDIN: equ 0 -STDOUT: equ 1 - -LINEFEED: equ 0x0A - -section .text - -;********************************************************************* -; void exit(int64 code) -; -; Description: -; Quit program -; -; Arguments: -; rdi: int64 code: Exit code (0=Success, >0=Error) -; -; Returns: -; This function does not return -; -;********************************************************************* -exit: - mov rax, SYS_EXIT ; rax: system call number - syscall -;********************************************************************* - -;********************************************************************* -; void exit0() -; -; Description: -; Quit program with status code = 0 -; -; Arguments: -; None -; -; Returns: -; This function does not return -; -;********************************************************************* -exit0: - xor rdi, rdi ; rdi = 0 - jmp exit ; TCO: tail call optimization -;********************************************************************* - - -;********************************************************************* -; int64 strlen(char *s) -; -; Description: -; Calculates the length of string ( excluding the terminating null) -; -; Arguments: -; rdi: char *s: address of a null-terminated string (array of chars terminated by 0) -; -; Returns: -; rax: int64: string size -; -;********************************************************************* -strlen: - xor rax, rax ; rax=0; // reset counter -.loop: ; do{ - cmp byte [rdi], 0 ; if (*s==0); // If zero, skip loop - je strlen.end ; break; - inc rax ; rax++; // increment counter - inc rdi ; s++; // advance to the next char - jmp strlen.loop ; }while(true); -.end: - ret ; return rax; -;********************************************************************* - - -;********************************************************************* -; void itoa(int64 value, char *s) -; -; Description: -; Converts an integer to a null-terminated string. -; -; Arguments: -; rdi: int64 value: Integer value to convert. -; rsi: char *s: Memory address where to store the resulting string. -; -; Returns: -; rax: int64: string size -; -;********************************************************************* -itoa: - test rdi, rdi ; value = rdi - jz itoa.iszero ; value==0 has a direct solution - jns itoa.notneg ; if(value <0 ) - mov byte [rsi], '-' ; *s = '-' - neg rdi ; value = -value - inc rsi ; s++ -.notneg: - mov r9b, 1 ; bool leftzero=true - mov r10, 10 ; base = 10 - mov rcx, 1000000000000000000 ; divisor = 1000000000000000000 - mov r8, 19 ; cont = 19 // Will repeat 19 times -.loop: ; do{ - mov rax, rdi ; dividend[0..31] = value - xor rdx, rdx ; dividend[32..63] = 0 - idiv rcx ; rax=(rdx:rax)/rcx ; rdx=(rdx:rax)%rcx - test al, al ; digit = rax[0..7] - jnz itoa.notdigit0 ; if(digit!=0) - test r9b, r9b ; if(leftzero) - jnz itoa.nextdigit ; continue - jmp itoa.digit0 -.notdigit0: - xor r9b, r9b ; leftzero = false -.digit0: - add eax, 48 ; digit = '0' + digit - mov rdi, rdx ; value %= divisor - mov byte [rsi], al ; *p = digit - inc rsi ; p++ -.nextdigit: - mov rax, rcx ; dividend[0..31] = value - xor rdx, rdx ; dividend[32..63] = 0 - idiv r10 ; rax=(rdx:rax)/10 ; rdx=(rdx:rax)%10 - mov rcx, rax ; divisor /= 10 - dec r8 ; cont-- - jne itoa.loop ; }while(cont!=0) -.end: - mov byte [rsi], 0 ; *p = '\0' - ret -.iszero: - mov word [rsi], 0x0030 ; *p = "0" (x86 is little endian) - ret -;********************************************************************* - - -;********************************************************************* -; int64 atoi(char *s) -; -; Description: -; Convert string to integer. -; -; Arguments: -; rdi: char *s: Address of a null-terminated string (array of chars terminated by 0) -; -; Returns: -; rax: int64: integer value -;********************************************************************* -atoi: - push r12 ; r12 is callee saved - mov r12, rdi ; rdi is caller saved - call strlen - lea rdi, [r12+rax-1] ; char *p = &s[strlen(string)]; //scans string backward - xor rax, rax ; result value - mov rdx, 1 ; multiplier -.beginloop: - cmp rdi, r12 ; while(p>=s){ - jl atoi.end ; - xor rcx, rcx ; - mov cl, byte [rdi] ; cl = current char - cmp cl, '-' ; if(cl=='-') - jne atoi.notneg ; - neg rax ; rax=-rax - jmp atoi.end ; -.notneg: - cmp cl, '9' ; if(!isdigit(cl)) nextdigit - jg atoi.endloop ; - sub cl, '0' ; - jl atoi.endloop ; - imul rcx, rdx ; digit_value = current_char * multiplier - add rax, rcx ; result += digit_value - imul rdx, 10 ; multiplier *= 10 -.endloop: - dec rdi ; previous char //scans string backward - jmp atoi.beginloop ; } -.end: - pop r12 ; restore r12 - ret -;********************************************************************* - - -;********************************************************************* -; void endl() -; -; Description: -; Prints a newline (line break) -; -; Arguments: -; None -; -; Returns: -; Nothing -; -;********************************************************************* -endl: - lea rdi, [endl.str] ; print the string - call printstr - ret - -;********************************************************************* - - -;********************************************************************* -; void printstr(char *s) -; -; Description: -; Print a string -; -; Arguments: -; rdi: char *s: address of a null-terminated string (array of chars terminated by 0) -; -; Returns: -; Nothing -; -;********************************************************************* -printstr: - push r15 ; r15 is callee saved - mov r15, rdi ; save copy (rdi should be caller saved) - call strlen - mov rdx, rax ; string size - mov rsi, r15 ; string - mov rax, SYS_WRITE ; system call number - mov rdi, STDOUT ; file descriptor - syscall ; system call - pop r15 - ret -;********************************************************************* - - -;********************************************************************* -; void printint(int64 n) -; -; Description: -; Print integer number (decimal) -; -; Arguments: -; rdi: int64 n: Value to print -; -; Returns: -; Nothing -; -;********************************************************************* -printint: - sub rsp, 40 ; stack allocate a temp string - mov rsi, rsp ; rdi=value, rsi=&str[0] - call itoa - mov rdi, rsp ; rdi=&str[0] - call printstr ; print number - add rsp, 40 ; deallocate the string - ret -;********************************************************************* - - -;********************************************************************* -; int64 readstr(char *s, int64 maxsize) -; -; Description: -; Read up to *maxsize* chars from standard input into a string. -; -; Arguments: -; rdi: char *s: address of a string (array of chars) -; rsi: int64 maxsize: input size limit -; -; Returns: -; rax: int64: Number of characters read -; -;********************************************************************* -readstr: - mov r8, rdi ; copy of buffer address - mov rax, SYS_READ ; system call number - mov rdx, rsi ; pointer to buffer - mov rsi, rdi ; max size - mov rdi, STDIN ; file descriptor - syscall ; system call - dec rax ; removing trailing newline char - mov byte [r8+rax], 0 ; replace with '\0' - ret -;********************************************************************* - - -;********************************************************************* -; int64 readint() -; -; Description: -; Read int64 from standard input -; -; Arguments: -; None -; -; Returns: -; rax: int64: The value entered -; -;********************************************************************* -readint: - sub rsp, 40 ; char s[40] - mov rdi, rsp ; rdi = &s[0] - mov rsi, 21 ; max input size - call readstr ; read number as string - mov rdi, rsp ; - call atoi ; rax = atoi(s) - add rsp, 40 ; deallocate s from stack - ret -;********************************************************************* - -section .data -endl.str: db LINEFEED, 0 diff --git a/Nub.Lang/.idea/.idea.Nub.Lang/.idea/.gitignore b/lang/.idea/.idea.Nub.Lang/.idea/.gitignore similarity index 100% rename from Nub.Lang/.idea/.idea.Nub.Lang/.idea/.gitignore rename to lang/.idea/.idea.Nub.Lang/.idea/.gitignore diff --git a/lang/.idea/.idea.Nub.Lang/.idea/.name b/lang/.idea/.idea.Nub.Lang/.idea/.name new file mode 100644 index 0000000..56aaa3a --- /dev/null +++ b/lang/.idea/.idea.Nub.Lang/.idea/.name @@ -0,0 +1 @@ +Nub.Lang \ No newline at end of file diff --git a/Nub.Lang/.idea/.idea.Nub.Lang/.idea/codeStyles/codeStyleConfig.xml b/lang/.idea/.idea.Nub.Lang/.idea/codeStyles/codeStyleConfig.xml similarity index 100% rename from Nub.Lang/.idea/.idea.Nub.Lang/.idea/codeStyles/codeStyleConfig.xml rename to lang/.idea/.idea.Nub.Lang/.idea/codeStyles/codeStyleConfig.xml diff --git a/Nub.Lang/.idea/.idea.Nub.Lang/.idea/encodings.xml b/lang/.idea/.idea.Nub.Lang/.idea/encodings.xml similarity index 100% rename from Nub.Lang/.idea/.idea.Nub.Lang/.idea/encodings.xml rename to lang/.idea/.idea.Nub.Lang/.idea/encodings.xml diff --git a/Nub.Lang/.idea/.idea.Nub.Lang/.idea/indexLayout.xml b/lang/.idea/.idea.Nub.Lang/.idea/indexLayout.xml similarity index 75% rename from Nub.Lang/.idea/.idea.Nub.Lang/.idea/indexLayout.xml rename to lang/.idea/.idea.Nub.Lang/.idea/indexLayout.xml index 1b8e138..1479e46 100644 --- a/Nub.Lang/.idea/.idea.Nub.Lang/.idea/indexLayout.xml +++ b/lang/.idea/.idea.Nub.Lang/.idea/indexLayout.xml @@ -2,8 +2,7 @@ - ../input - ../output + ../std diff --git a/Nub.Lang/.idea/.idea.Nub.Lang/.idea/vcs.xml b/lang/.idea/.idea.Nub.Lang/.idea/vcs.xml similarity index 100% rename from Nub.Lang/.idea/.idea.Nub.Lang/.idea/vcs.xml rename to lang/.idea/.idea.Nub.Lang/.idea/vcs.xml diff --git a/Nub.Lang/Nub.Lang.sln b/lang/Nub.Lang.sln similarity index 62% rename from Nub.Lang/Nub.Lang.sln rename to lang/Nub.Lang.sln index fb016f5..c5692ff 100644 --- a/Nub.Lang/Nub.Lang.sln +++ b/lang/Nub.Lang.sln @@ -2,8 +2,6 @@ Microsoft Visual Studio Solution File, Format Version 12.00 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nub.Lang", "Nub.Lang\Nub.Lang.csproj", "{5047E21F-590D-4CB3-AFF3-064316485009}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nub.Core", "Nub.Core\Nub.Core.csproj", "{903F2D49-4F69-4287-A709-EFC68BDD9654}" -EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -14,9 +12,5 @@ Global {5047E21F-590D-4CB3-AFF3-064316485009}.Debug|Any CPU.Build.0 = Debug|Any CPU {5047E21F-590D-4CB3-AFF3-064316485009}.Release|Any CPU.ActiveCfg = Release|Any CPU {5047E21F-590D-4CB3-AFF3-064316485009}.Release|Any CPU.Build.0 = Release|Any CPU - {903F2D49-4F69-4287-A709-EFC68BDD9654}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {903F2D49-4F69-4287-A709-EFC68BDD9654}.Debug|Any CPU.Build.0 = Debug|Any CPU - {903F2D49-4F69-4287-A709-EFC68BDD9654}.Release|Any CPU.ActiveCfg = Release|Any CPU - {903F2D49-4F69-4287-A709-EFC68BDD9654}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection EndGlobal diff --git a/Nub.Lang/Nub.Lang/Backend/Custom/Generator.cs b/lang/Nub.Lang/Backend/Custom/Generator.cs similarity index 100% rename from Nub.Lang/Nub.Lang/Backend/Custom/Generator.cs rename to lang/Nub.Lang/Backend/Custom/Generator.cs diff --git a/Nub.Lang/Nub.Lang/Backend/Custom/LabelFactory.cs b/lang/Nub.Lang/Backend/Custom/LabelFactory.cs similarity index 100% rename from Nub.Lang/Nub.Lang/Backend/Custom/LabelFactory.cs rename to lang/Nub.Lang/Backend/Custom/LabelFactory.cs diff --git a/Nub.Lang/Nub.Lang/Backend/Custom/SymbolTable.cs b/lang/Nub.Lang/Backend/Custom/SymbolTable.cs similarity index 99% rename from Nub.Lang/Nub.Lang/Backend/Custom/SymbolTable.cs rename to lang/Nub.Lang/Backend/Custom/SymbolTable.cs index 3573413..ea0b193 100644 --- a/Nub.Lang/Nub.Lang/Backend/Custom/SymbolTable.cs +++ b/lang/Nub.Lang/Backend/Custom/SymbolTable.cs @@ -1,5 +1,4 @@ -using Nub.Core; -using Nub.Lang.Frontend.Parsing; +using Nub.Lang.Frontend.Parsing; namespace Nub.Lang.Backend.Custom; diff --git a/Nub.Lang/Nub.Lang/Frontend/Lexing/IdentifierToken.cs b/lang/Nub.Lang/Frontend/Lexing/IdentifierToken.cs similarity index 100% rename from Nub.Lang/Nub.Lang/Frontend/Lexing/IdentifierToken.cs rename to lang/Nub.Lang/Frontend/Lexing/IdentifierToken.cs diff --git a/Nub.Lang/Nub.Lang/Frontend/Lexing/Lexer.cs b/lang/Nub.Lang/Frontend/Lexing/Lexer.cs similarity index 98% rename from Nub.Lang/Nub.Lang/Frontend/Lexing/Lexer.cs rename to lang/Nub.Lang/Frontend/Lexing/Lexer.cs index 3af365d..c87c255 100644 --- a/Nub.Lang/Nub.Lang/Frontend/Lexing/Lexer.cs +++ b/lang/Nub.Lang/Frontend/Lexing/Lexer.cs @@ -1,6 +1,4 @@ -using Nub.Core; - -namespace Nub.Lang.Frontend.Lexing; +namespace Nub.Lang.Frontend.Lexing; public class Lexer { diff --git a/Nub.Lang/Nub.Lang/Frontend/Lexing/LiteralToken.cs b/lang/Nub.Lang/Frontend/Lexing/LiteralToken.cs similarity index 100% rename from Nub.Lang/Nub.Lang/Frontend/Lexing/LiteralToken.cs rename to lang/Nub.Lang/Frontend/Lexing/LiteralToken.cs diff --git a/Nub.Lang/Nub.Lang/Frontend/Lexing/SymbolToken.cs b/lang/Nub.Lang/Frontend/Lexing/SymbolToken.cs similarity index 100% rename from Nub.Lang/Nub.Lang/Frontend/Lexing/SymbolToken.cs rename to lang/Nub.Lang/Frontend/Lexing/SymbolToken.cs diff --git a/Nub.Lang/Nub.Lang/Frontend/Lexing/Token.cs b/lang/Nub.Lang/Frontend/Lexing/Token.cs similarity index 100% rename from Nub.Lang/Nub.Lang/Frontend/Lexing/Token.cs rename to lang/Nub.Lang/Frontend/Lexing/Token.cs diff --git a/Nub.Lang/Nub.Lang/Frontend/Parsing/ArrayIndexAccessNode.cs b/lang/Nub.Lang/Frontend/Parsing/ArrayIndexAccessNode.cs similarity index 100% rename from Nub.Lang/Nub.Lang/Frontend/Parsing/ArrayIndexAccessNode.cs rename to lang/Nub.Lang/Frontend/Parsing/ArrayIndexAccessNode.cs diff --git a/Nub.Lang/Nub.Lang/Frontend/Parsing/ArrayIndexAssignmentNode.cs b/lang/Nub.Lang/Frontend/Parsing/ArrayIndexAssignmentNode.cs similarity index 100% rename from Nub.Lang/Nub.Lang/Frontend/Parsing/ArrayIndexAssignmentNode.cs rename to lang/Nub.Lang/Frontend/Parsing/ArrayIndexAssignmentNode.cs diff --git a/Nub.Lang/Nub.Lang/Frontend/Parsing/ArrayInitializerNode.cs b/lang/Nub.Lang/Frontend/Parsing/ArrayInitializerNode.cs similarity index 100% rename from Nub.Lang/Nub.Lang/Frontend/Parsing/ArrayInitializerNode.cs rename to lang/Nub.Lang/Frontend/Parsing/ArrayInitializerNode.cs diff --git a/Nub.Lang/Nub.Lang/Frontend/Parsing/BinaryExpressionNode.cs b/lang/Nub.Lang/Frontend/Parsing/BinaryExpressionNode.cs similarity index 100% rename from Nub.Lang/Nub.Lang/Frontend/Parsing/BinaryExpressionNode.cs rename to lang/Nub.Lang/Frontend/Parsing/BinaryExpressionNode.cs diff --git a/Nub.Lang/Nub.Lang/Frontend/Parsing/BlockNode.cs b/lang/Nub.Lang/Frontend/Parsing/BlockNode.cs similarity index 100% rename from Nub.Lang/Nub.Lang/Frontend/Parsing/BlockNode.cs rename to lang/Nub.Lang/Frontend/Parsing/BlockNode.cs diff --git a/Nub.Lang/Nub.Lang/Frontend/Parsing/BreakNode.cs b/lang/Nub.Lang/Frontend/Parsing/BreakNode.cs similarity index 100% rename from Nub.Lang/Nub.Lang/Frontend/Parsing/BreakNode.cs rename to lang/Nub.Lang/Frontend/Parsing/BreakNode.cs diff --git a/Nub.Lang/Nub.Lang/Frontend/Parsing/ContinueNode.cs b/lang/Nub.Lang/Frontend/Parsing/ContinueNode.cs similarity index 100% rename from Nub.Lang/Nub.Lang/Frontend/Parsing/ContinueNode.cs rename to lang/Nub.Lang/Frontend/Parsing/ContinueNode.cs diff --git a/Nub.Lang/Nub.Lang/Frontend/Parsing/DefinitionNode.cs b/lang/Nub.Lang/Frontend/Parsing/DefinitionNode.cs similarity index 100% rename from Nub.Lang/Nub.Lang/Frontend/Parsing/DefinitionNode.cs rename to lang/Nub.Lang/Frontend/Parsing/DefinitionNode.cs diff --git a/Nub.Lang/Nub.Lang/Frontend/Parsing/ExpressionNode.cs b/lang/Nub.Lang/Frontend/Parsing/ExpressionNode.cs similarity index 100% rename from Nub.Lang/Nub.Lang/Frontend/Parsing/ExpressionNode.cs rename to lang/Nub.Lang/Frontend/Parsing/ExpressionNode.cs diff --git a/Nub.Lang/Nub.Lang/Frontend/Parsing/ExternFuncDefinitionNode.cs b/lang/Nub.Lang/Frontend/Parsing/ExternFuncDefinitionNode.cs similarity index 88% rename from Nub.Lang/Nub.Lang/Frontend/Parsing/ExternFuncDefinitionNode.cs rename to lang/Nub.Lang/Frontend/Parsing/ExternFuncDefinitionNode.cs index 3c6455d..466b903 100644 --- a/Nub.Lang/Nub.Lang/Frontend/Parsing/ExternFuncDefinitionNode.cs +++ b/lang/Nub.Lang/Frontend/Parsing/ExternFuncDefinitionNode.cs @@ -1,6 +1,4 @@ -using Nub.Core; - -namespace Nub.Lang.Frontend.Parsing; +namespace Nub.Lang.Frontend.Parsing; public class ExternFuncDefinitionNode(string name, List parameters, Optional returnType) : DefinitionNode { diff --git a/Nub.Lang/Nub.Lang/Frontend/Parsing/FuncCall.cs b/lang/Nub.Lang/Frontend/Parsing/FuncCall.cs similarity index 100% rename from Nub.Lang/Nub.Lang/Frontend/Parsing/FuncCall.cs rename to lang/Nub.Lang/Frontend/Parsing/FuncCall.cs diff --git a/Nub.Lang/Nub.Lang/Frontend/Parsing/FuncCallExpressionNode.cs b/lang/Nub.Lang/Frontend/Parsing/FuncCallExpressionNode.cs similarity index 100% rename from Nub.Lang/Nub.Lang/Frontend/Parsing/FuncCallExpressionNode.cs rename to lang/Nub.Lang/Frontend/Parsing/FuncCallExpressionNode.cs diff --git a/Nub.Lang/Nub.Lang/Frontend/Parsing/FuncCallStatementNode.cs b/lang/Nub.Lang/Frontend/Parsing/FuncCallStatementNode.cs similarity index 100% rename from Nub.Lang/Nub.Lang/Frontend/Parsing/FuncCallStatementNode.cs rename to lang/Nub.Lang/Frontend/Parsing/FuncCallStatementNode.cs diff --git a/Nub.Lang/Nub.Lang/Frontend/Parsing/GlobalVariableDefinitionNode.cs b/lang/Nub.Lang/Frontend/Parsing/GlobalVariableDefinitionNode.cs similarity index 100% rename from Nub.Lang/Nub.Lang/Frontend/Parsing/GlobalVariableDefinitionNode.cs rename to lang/Nub.Lang/Frontend/Parsing/GlobalVariableDefinitionNode.cs diff --git a/Nub.Lang/Nub.Lang/Frontend/Parsing/IdentifierNode.cs b/lang/Nub.Lang/Frontend/Parsing/IdentifierNode.cs similarity index 100% rename from Nub.Lang/Nub.Lang/Frontend/Parsing/IdentifierNode.cs rename to lang/Nub.Lang/Frontend/Parsing/IdentifierNode.cs diff --git a/Nub.Lang/Nub.Lang/Frontend/Parsing/IfNode.cs b/lang/Nub.Lang/Frontend/Parsing/IfNode.cs similarity index 83% rename from Nub.Lang/Nub.Lang/Frontend/Parsing/IfNode.cs rename to lang/Nub.Lang/Frontend/Parsing/IfNode.cs index b777672..ce3f10c 100644 --- a/Nub.Lang/Nub.Lang/Frontend/Parsing/IfNode.cs +++ b/lang/Nub.Lang/Frontend/Parsing/IfNode.cs @@ -1,6 +1,4 @@ -using Nub.Core; - -namespace Nub.Lang.Frontend.Parsing; +namespace Nub.Lang.Frontend.Parsing; public class IfNode(ExpressionNode condition, BlockNode body, Optional> @else) : StatementNode { diff --git a/Nub.Lang/Nub.Lang/Frontend/Parsing/LiteralNode.cs b/lang/Nub.Lang/Frontend/Parsing/LiteralNode.cs similarity index 100% rename from Nub.Lang/Nub.Lang/Frontend/Parsing/LiteralNode.cs rename to lang/Nub.Lang/Frontend/Parsing/LiteralNode.cs diff --git a/Nub.Lang/Nub.Lang/Frontend/Parsing/LocalFuncDefinitionNode.cs b/lang/Nub.Lang/Frontend/Parsing/LocalFuncDefinitionNode.cs similarity index 89% rename from Nub.Lang/Nub.Lang/Frontend/Parsing/LocalFuncDefinitionNode.cs rename to lang/Nub.Lang/Frontend/Parsing/LocalFuncDefinitionNode.cs index d508a79..561b40d 100644 --- a/Nub.Lang/Nub.Lang/Frontend/Parsing/LocalFuncDefinitionNode.cs +++ b/lang/Nub.Lang/Frontend/Parsing/LocalFuncDefinitionNode.cs @@ -1,6 +1,4 @@ -using Nub.Core; - -namespace Nub.Lang.Frontend.Parsing; +namespace Nub.Lang.Frontend.Parsing; public class LocalFuncDefinitionNode(string name, List parameters, BlockNode body, Optional returnType) : DefinitionNode { diff --git a/Nub.Lang/Nub.Lang/Frontend/Parsing/ModuleNode.cs b/lang/Nub.Lang/Frontend/Parsing/ModuleNode.cs similarity index 100% rename from Nub.Lang/Nub.Lang/Frontend/Parsing/ModuleNode.cs rename to lang/Nub.Lang/Frontend/Parsing/ModuleNode.cs diff --git a/Nub.Lang/Nub.Lang/Frontend/Parsing/Node.cs b/lang/Nub.Lang/Frontend/Parsing/Node.cs similarity index 100% rename from Nub.Lang/Nub.Lang/Frontend/Parsing/Node.cs rename to lang/Nub.Lang/Frontend/Parsing/Node.cs diff --git a/Nub.Lang/Nub.Lang/Frontend/Parsing/Parser.cs b/lang/Nub.Lang/Frontend/Parsing/Parser.cs similarity index 99% rename from Nub.Lang/Nub.Lang/Frontend/Parsing/Parser.cs rename to lang/Nub.Lang/Frontend/Parsing/Parser.cs index 1f92875..8a4d508 100644 --- a/Nub.Lang/Nub.Lang/Frontend/Parsing/Parser.cs +++ b/lang/Nub.Lang/Frontend/Parsing/Parser.cs @@ -1,5 +1,4 @@ using System.Diagnostics.CodeAnalysis; -using Nub.Core; using Nub.Lang.Frontend.Lexing; namespace Nub.Lang.Frontend.Parsing; diff --git a/Nub.Lang/Nub.Lang/Frontend/Parsing/ReturnNode.cs b/lang/Nub.Lang/Frontend/Parsing/ReturnNode.cs similarity index 69% rename from Nub.Lang/Nub.Lang/Frontend/Parsing/ReturnNode.cs rename to lang/Nub.Lang/Frontend/Parsing/ReturnNode.cs index 44d53e7..3e5d38e 100644 --- a/Nub.Lang/Nub.Lang/Frontend/Parsing/ReturnNode.cs +++ b/lang/Nub.Lang/Frontend/Parsing/ReturnNode.cs @@ -1,6 +1,4 @@ -using Nub.Core; - -namespace Nub.Lang.Frontend.Parsing; +namespace Nub.Lang.Frontend.Parsing; public class ReturnNode(Optional value) : StatementNode { diff --git a/Nub.Lang/Nub.Lang/Frontend/Parsing/StatementNode.cs b/lang/Nub.Lang/Frontend/Parsing/StatementNode.cs similarity index 100% rename from Nub.Lang/Nub.Lang/Frontend/Parsing/StatementNode.cs rename to lang/Nub.Lang/Frontend/Parsing/StatementNode.cs diff --git a/Nub.Lang/Nub.Lang/Frontend/Parsing/StructDefinitionNode.cs b/lang/Nub.Lang/Frontend/Parsing/StructDefinitionNode.cs similarity index 100% rename from Nub.Lang/Nub.Lang/Frontend/Parsing/StructDefinitionNode.cs rename to lang/Nub.Lang/Frontend/Parsing/StructDefinitionNode.cs diff --git a/Nub.Lang/Nub.Lang/Frontend/Parsing/StructInitializerNode.cs b/lang/Nub.Lang/Frontend/Parsing/StructInitializerNode.cs similarity index 100% rename from Nub.Lang/Nub.Lang/Frontend/Parsing/StructInitializerNode.cs rename to lang/Nub.Lang/Frontend/Parsing/StructInitializerNode.cs diff --git a/Nub.Lang/Nub.Lang/Frontend/Parsing/StructMemberAccessorNode.cs b/lang/Nub.Lang/Frontend/Parsing/StructMemberAccessorNode.cs similarity index 100% rename from Nub.Lang/Nub.Lang/Frontend/Parsing/StructMemberAccessorNode.cs rename to lang/Nub.Lang/Frontend/Parsing/StructMemberAccessorNode.cs diff --git a/Nub.Lang/Nub.Lang/Frontend/Parsing/Syscall.cs b/lang/Nub.Lang/Frontend/Parsing/Syscall.cs similarity index 100% rename from Nub.Lang/Nub.Lang/Frontend/Parsing/Syscall.cs rename to lang/Nub.Lang/Frontend/Parsing/Syscall.cs diff --git a/Nub.Lang/Nub.Lang/Frontend/Parsing/SyscallExpressionNode.cs b/lang/Nub.Lang/Frontend/Parsing/SyscallExpressionNode.cs similarity index 100% rename from Nub.Lang/Nub.Lang/Frontend/Parsing/SyscallExpressionNode.cs rename to lang/Nub.Lang/Frontend/Parsing/SyscallExpressionNode.cs diff --git a/Nub.Lang/Nub.Lang/Frontend/Parsing/SyscallStatementNode.cs b/lang/Nub.Lang/Frontend/Parsing/SyscallStatementNode.cs similarity index 100% rename from Nub.Lang/Nub.Lang/Frontend/Parsing/SyscallStatementNode.cs rename to lang/Nub.Lang/Frontend/Parsing/SyscallStatementNode.cs diff --git a/Nub.Lang/Nub.Lang/Frontend/Parsing/VariableAssignmentNode.cs b/lang/Nub.Lang/Frontend/Parsing/VariableAssignmentNode.cs similarity index 100% rename from Nub.Lang/Nub.Lang/Frontend/Parsing/VariableAssignmentNode.cs rename to lang/Nub.Lang/Frontend/Parsing/VariableAssignmentNode.cs diff --git a/Nub.Lang/Nub.Lang/Frontend/Parsing/VariableReassignmentNode.cs b/lang/Nub.Lang/Frontend/Parsing/VariableReassignmentNode.cs similarity index 100% rename from Nub.Lang/Nub.Lang/Frontend/Parsing/VariableReassignmentNode.cs rename to lang/Nub.Lang/Frontend/Parsing/VariableReassignmentNode.cs diff --git a/Nub.Lang/Nub.Lang/Frontend/Parsing/WhileNode.cs b/lang/Nub.Lang/Frontend/Parsing/WhileNode.cs similarity index 100% rename from Nub.Lang/Nub.Lang/Frontend/Parsing/WhileNode.cs rename to lang/Nub.Lang/Frontend/Parsing/WhileNode.cs diff --git a/Nub.Lang/Nub.Lang/Frontend/Typing/ExpressionTyper.cs b/lang/Nub.Lang/Frontend/Typing/ExpressionTyper.cs similarity index 99% rename from Nub.Lang/Nub.Lang/Frontend/Typing/ExpressionTyper.cs rename to lang/Nub.Lang/Frontend/Typing/ExpressionTyper.cs index 894c117..4bae6cf 100644 --- a/Nub.Lang/Nub.Lang/Frontend/Typing/ExpressionTyper.cs +++ b/lang/Nub.Lang/Frontend/Typing/ExpressionTyper.cs @@ -1,5 +1,4 @@ -using Nub.Core; -using Nub.Lang.Frontend.Parsing; +using Nub.Lang.Frontend.Parsing; namespace Nub.Lang.Frontend.Typing; diff --git a/Nub.Lang/Nub.Lang/FuncParameter.cs b/lang/Nub.Lang/FuncParameter.cs similarity index 100% rename from Nub.Lang/Nub.Lang/FuncParameter.cs rename to lang/Nub.Lang/FuncParameter.cs diff --git a/Nub.Lang/Nub.Lang/Nub.Lang.csproj b/lang/Nub.Lang/Nub.Lang.csproj similarity index 72% rename from Nub.Lang/Nub.Lang/Nub.Lang.csproj rename to lang/Nub.Lang/Nub.Lang.csproj index 51d1bc4..85b4959 100644 --- a/Nub.Lang/Nub.Lang/Nub.Lang.csproj +++ b/lang/Nub.Lang/Nub.Lang.csproj @@ -7,8 +7,4 @@ enable - - - - diff --git a/Nub.Lang/Nub.Core/Optional.cs b/lang/Nub.Lang/Optional.cs similarity index 98% rename from Nub.Lang/Nub.Core/Optional.cs rename to lang/Nub.Lang/Optional.cs index 8f7f1c1..439c87d 100644 --- a/Nub.Lang/Nub.Core/Optional.cs +++ b/lang/Nub.Lang/Optional.cs @@ -1,6 +1,6 @@ using System.Diagnostics.CodeAnalysis; -namespace Nub.Core; +namespace Nub.Lang; public readonly struct Optional { diff --git a/Nub.Lang/Nub.Lang/Program.cs b/lang/Nub.Lang/Program.cs similarity index 96% rename from Nub.Lang/Nub.Lang/Program.cs rename to lang/Nub.Lang/Program.cs index 2ad2dd0..33da40d 100644 --- a/Nub.Lang/Nub.Lang/Program.cs +++ b/lang/Nub.Lang/Program.cs @@ -19,8 +19,8 @@ internal static class Program return 1; } - var input = args[0]; - var output = args[1]; + var input = Path.GetFullPath(args[0]); + var output = Path.GetFullPath(args[1]); if (!Directory.Exists(input)) { diff --git a/Nub.Lang/Nub.Lang/StructMember.cs b/lang/Nub.Lang/StructMember.cs similarity index 82% rename from Nub.Lang/Nub.Lang/StructMember.cs rename to lang/Nub.Lang/StructMember.cs index 61bd9c0..600687c 100644 --- a/Nub.Lang/Nub.Lang/StructMember.cs +++ b/lang/Nub.Lang/StructMember.cs @@ -1,5 +1,4 @@ -using Nub.Core; -using Nub.Lang.Frontend.Parsing; +using Nub.Lang.Frontend.Parsing; namespace Nub.Lang; diff --git a/Nub.Lang/Nub.Lang/Type.cs b/lang/Nub.Lang/Type.cs similarity index 100% rename from Nub.Lang/Nub.Lang/Type.cs rename to lang/Nub.Lang/Type.cs diff --git a/Nub.Lang/Nub.Core/Variant.cs b/lang/Nub.Lang/Variant.cs similarity index 97% rename from Nub.Lang/Nub.Core/Variant.cs rename to lang/Nub.Lang/Variant.cs index 8d38f9c..02b7347 100644 --- a/Nub.Lang/Nub.Core/Variant.cs +++ b/lang/Nub.Lang/Variant.cs @@ -1,4 +1,4 @@ -namespace Nub.Core; +namespace Nub.Lang; public readonly struct Variant where T1 : notnull where T2 : notnull { diff --git a/output/build.sh b/output/build.sh deleted file mode 100755 index 8f84c8d..0000000 --- a/output/build.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh -gcc -c -g -O2 -fno-stack-protector -fno-builtin ../input/baseline/gc.c -o gc.o -nasm -g -felf64 ../input/baseline/str_cmp.asm -o str_cmp.o - -nasm -g -felf64 ../input/core/str_len.asm -o str_len.o -nasm -g -felf64 ../input/core/arr_size.asm -o arr_size.o -nasm -g -felf64 ../input/core/itoa.asm -o itoa.o - -nasm -g -felf64 out.asm -o out.o - -gcc -no-pie -nostartfiles -o out gc.o str_cmp.o str_len.o arr_size.o itoa.o out.o diff --git a/output/clean.sh b/output/clean.sh deleted file mode 100755 index c81472a..0000000 --- a/output/clean.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/sh -rm ./arr_size.o -rm ./gc.o -rm ./itoa.o -rm ./out.o -rm ./str_cmp.o -rm ./str_len.o -rm out \ No newline at end of file diff --git a/output/debug.sh b/output/debug.sh deleted file mode 100755 index 189ee44..0000000 --- a/output/debug.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh -./build.sh -gdb -tui out diff --git a/output/profile.sh b/output/profile.sh deleted file mode 100644 index 3f3bccf..0000000 --- a/output/profile.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh -./build.sh -valgrind -s ./out diff --git a/output/run.sh b/run.sh similarity index 71% rename from output/run.sh rename to run.sh index b5a3090..385090b 100755 --- a/output/run.sh +++ b/run.sh @@ -1,4 +1,5 @@ #!/bin/sh +./clean.sh ./build.sh -./out +./out/program echo "Process exited with status code $?" diff --git a/input/baseline/gc.c b/std/baseline/gc.c similarity index 100% rename from input/baseline/gc.c rename to std/baseline/gc.c diff --git a/input/baseline/str_cmp.asm b/std/baseline/str_cmp.asm similarity index 100% rename from input/baseline/str_cmp.asm rename to std/baseline/str_cmp.asm diff --git a/input/core/arr_size.asm b/std/core/arr_size.asm similarity index 100% rename from input/core/arr_size.asm rename to std/core/arr_size.asm diff --git a/input/core/itoa.asm b/std/core/itoa.asm similarity index 100% rename from input/core/itoa.asm rename to std/core/itoa.asm diff --git a/input/core/str_len.asm b/std/core/str_len.asm similarity index 100% rename from input/core/str_len.asm rename to std/core/str_len.asm