diff options
author | Kyle Gunger <kgunger12@gmail.com> | 2022-04-11 18:50:08 -0400 |
---|---|---|
committer | Kyle Gunger <kgunger12@gmail.com> | 2022-04-11 18:50:08 -0400 |
commit | d0213b4202ac12d7e92f7125e87c31d9ecb637dd (patch) | |
tree | 50164dfa2295c6806f3866c24a897789856337a7 /tnslc/src | |
parent | 41cb9e107b20153449526cedec101e33f21d8630 (diff) |
Remove src folders
Diffstat (limited to 'tnslc/src')
-rw-r--r-- | tnslc/src/ast/ast.tnsl | 19 | ||||
-rw-r--r-- | tnslc/src/ast/node.tnsl | 85 | ||||
-rw-r--r-- | tnslc/src/compile/arch/arch.tnsl | 20 | ||||
-rw-r--r-- | tnslc/src/compile/arch/common.tnsl | 17 | ||||
-rw-r--r-- | tnslc/src/compile/arch/isa_arm.tnsl | 15 | ||||
-rw-r--r-- | tnslc/src/compile/arch/isa_risc_v.tnsl | 15 | ||||
-rw-r--r-- | tnslc/src/compile/arch/isa_x86.tnsl | 15 | ||||
-rw-r--r-- | tnslc/src/compile/compile.tnsl | 21 | ||||
-rw-r--r-- | tnslc/src/compile/format/elf.tnsl | 151 | ||||
-rw-r--r-- | tnslc/src/compile/format/format.tnsl | 20 | ||||
-rw-r--r-- | tnslc/src/compile/format/iex.tnsl | 0 | ||||
-rw-r--r-- | tnslc/src/compile/format/out.tnsl | 0 | ||||
-rw-r--r-- | tnslc/src/compile/format/pe.tnsl | 0 | ||||
-rw-r--r-- | tnslc/src/flags/flags.tnsl | 16 | ||||
-rw-r--r-- | tnslc/src/parse/parse.tnsl | 22 | ||||
-rw-r--r-- | tnslc/src/parse/token.tnsl | 295 | ||||
-rw-r--r-- | tnslc/src/parse/tokenizer.tnsl | 38 | ||||
-rw-r--r-- | tnslc/src/tnslc.tnsl | 38 |
18 files changed, 0 insertions, 787 deletions
diff --git a/tnslc/src/ast/ast.tnsl b/tnslc/src/ast/ast.tnsl deleted file mode 100644 index 405a94a..0000000 --- a/tnslc/src/ast/ast.tnsl +++ /dev/null @@ -1,19 +0,0 @@ -/## - Copyright 2021 Kyle Gunger - - This file is licensed under the CDDL 1.0 (the License) - and may only be used in accordance with the License. - You should have received a copy of the License with this - software/source code. If you did not, a copy can be found - at the following URL: - - https://opensource.org/licenses/CDDL-1.0 - - THIS SOFTWARE/SOURCE CODE IS PROVIDED "AS IS" WITH NO - WARRANTY, GUARANTEE, OR CLAIM OF FITNESS FOR ANY PURPOSE - EXPRESS OR IMPLIED -#/ - -/; export module ast - :import "node.tnsl" -;/
\ No newline at end of file diff --git a/tnslc/src/ast/node.tnsl b/tnslc/src/ast/node.tnsl deleted file mode 100644 index 5eeac91..0000000 --- a/tnslc/src/ast/node.tnsl +++ /dev/null @@ -1,85 +0,0 @@ -/## - Copyright 2021 Kyle Gunger - - This file is licensed under the CDDL 1.0 (the License) - and may only be used in accordance with the License. - You should have received a copy of the License with this - software/source code. If you did not, a copy can be found - at the following URL: - - https://opensource.org/licenses/CDDL-1.0 - - THIS SOFTWARE/SOURCE CODE IS PROVIDED "AS IS" WITH NO - WARRANTY, GUARANTEE, OR CLAIM OF FITNESS FOR ANY PURPOSE - EXPRESS OR IMPLIED -#/ - -# AST node (non-block) -;struct Node { - tnslc.parse.Token - # associated token to the node - data, - - ~{}Node - # sub-nodes - sub -} - -# AST node (block) -;struct BlockNode extends Node { - super, - - ~{}Node - # block inputs and outputs - blockIn, - blockOut, - - ~{}tnslc.parse.Token - # block qualifiers - blockQs -} - -# Node methods -/; method Node - - /; operator delete - ;delete this.data, this.sub - ;/ - - /; push_sub (Node node) [uint] - ;uint len = this.sub.length - ;alloc this.sub, len + 1 - ;this.sub{len} = node - ;return len + 1 - ;/ -;/ - -# Extended block node methods -/; method BlockNode - - /; operator delete - ;super() - ;delete this.blockQs, this.blockIn, this.blockOut - ;/ - - /; push_blockQ (tnslc.parse.Token token) [uint] - ;uint len = this.blockQs.length - ;alloc this.blockQs, len + 1 - ;this.blockQs{len} = token - ;return len + 1 - ;/ - - /; push_blockIn (Node node) [uint] - ;uint len = this.blockIn.length - ;alloc this.blockIn, len + 1 - ;this.blockIn{len} = node - ;return len + 1 - ;/ - - /; push_blockOut (Node node) [uint] - ;uint len = this.blockOut.length - ;alloc this.blockOut, len + 1 - ;this.blockOut{len} = node - ;return len + 1 - ;/ -;/
\ No newline at end of file diff --git a/tnslc/src/compile/arch/arch.tnsl b/tnslc/src/compile/arch/arch.tnsl deleted file mode 100644 index 5e81673..0000000 --- a/tnslc/src/compile/arch/arch.tnsl +++ /dev/null @@ -1,20 +0,0 @@ -/## - Copyright 2021 Kyle Gunger - - This file is licensed under the CDDL 1.0 (the License) - and may only be used in accordance with the License. - You should have received a copy of the License with this - software/source code. If you did not, a copy can be found - at the following URL: - - https://opensource.org/licenses/CDDL-1.0 - - THIS SOFTWARE/SOURCE CODE IS PROVIDED "AS IS" WITH NO - WARRANTY, GUARANTEE, OR CLAIM OF FITNESS FOR ANY PURPOSE - EXPRESS OR IMPLIED -#/ - -/; module arch - :import "compile/arch/common.tnsl" - :import "compile/arch/isa_x86.tnsl" -;/
\ No newline at end of file diff --git a/tnslc/src/compile/arch/common.tnsl b/tnslc/src/compile/arch/common.tnsl deleted file mode 100644 index cba0d9f..0000000 --- a/tnslc/src/compile/arch/common.tnsl +++ /dev/null @@ -1,17 +0,0 @@ -/## - Copyright 2021 Kyle Gunger - - This file is licensed under the CDDL 1.0 (the License) - and may only be used in accordance with the License. - You should have received a copy of the License with this - software/source code. If you did not, a copy can be found - at the following URL: - - https://opensource.org/licenses/CDDL-1.0 - - THIS SOFTWARE/SOURCE CODE IS PROVIDED "AS IS" WITH NO - WARRANTY, GUARANTEE, OR CLAIM OF FITNESS FOR ANY PURPOSE - EXPRESS OR IMPLIED -#/ - -; struct instruction {}
\ No newline at end of file diff --git a/tnslc/src/compile/arch/isa_arm.tnsl b/tnslc/src/compile/arch/isa_arm.tnsl deleted file mode 100644 index 0dc3468..0000000 --- a/tnslc/src/compile/arch/isa_arm.tnsl +++ /dev/null @@ -1,15 +0,0 @@ -/## - Copyright 2021 Kyle Gunger - - This file is licensed under the CDDL 1.0 (the License) - and may only be used in accordance with the License. - You should have received a copy of the License with this - software/source code. If you did not, a copy can be found - at the following URL: - - https://opensource.org/licenses/CDDL-1.0 - - THIS SOFTWARE/SOURCE CODE IS PROVIDED "AS IS" WITH NO - WARRANTY, GUARANTEE, OR CLAIM OF FITNESS FOR ANY PURPOSE - EXPRESS OR IMPLIED -#/ diff --git a/tnslc/src/compile/arch/isa_risc_v.tnsl b/tnslc/src/compile/arch/isa_risc_v.tnsl deleted file mode 100644 index 0dc3468..0000000 --- a/tnslc/src/compile/arch/isa_risc_v.tnsl +++ /dev/null @@ -1,15 +0,0 @@ -/## - Copyright 2021 Kyle Gunger - - This file is licensed under the CDDL 1.0 (the License) - and may only be used in accordance with the License. - You should have received a copy of the License with this - software/source code. If you did not, a copy can be found - at the following URL: - - https://opensource.org/licenses/CDDL-1.0 - - THIS SOFTWARE/SOURCE CODE IS PROVIDED "AS IS" WITH NO - WARRANTY, GUARANTEE, OR CLAIM OF FITNESS FOR ANY PURPOSE - EXPRESS OR IMPLIED -#/ diff --git a/tnslc/src/compile/arch/isa_x86.tnsl b/tnslc/src/compile/arch/isa_x86.tnsl deleted file mode 100644 index 0dc3468..0000000 --- a/tnslc/src/compile/arch/isa_x86.tnsl +++ /dev/null @@ -1,15 +0,0 @@ -/## - Copyright 2021 Kyle Gunger - - This file is licensed under the CDDL 1.0 (the License) - and may only be used in accordance with the License. - You should have received a copy of the License with this - software/source code. If you did not, a copy can be found - at the following URL: - - https://opensource.org/licenses/CDDL-1.0 - - THIS SOFTWARE/SOURCE CODE IS PROVIDED "AS IS" WITH NO - WARRANTY, GUARANTEE, OR CLAIM OF FITNESS FOR ANY PURPOSE - EXPRESS OR IMPLIED -#/ diff --git a/tnslc/src/compile/compile.tnsl b/tnslc/src/compile/compile.tnsl deleted file mode 100644 index 263dc59..0000000 --- a/tnslc/src/compile/compile.tnsl +++ /dev/null @@ -1,21 +0,0 @@ -/## - Copyright 2021 Kyle Gunger - - This file is licensed under the CDDL 1.0 (the License) - and may only be used in accordance with the License. - You should have received a copy of the License with this - software/source code. If you did not, a copy can be found - at the following URL: - - https://opensource.org/licenses/CDDL-1.0 - - THIS SOFTWARE/SOURCE CODE IS PROVIDED "AS IS" WITH NO - WARRANTY, GUARANTEE, OR CLAIM OF FITNESS FOR ANY PURPOSE - EXPRESS OR IMPLIED -#/ - -/; module compile - :include "compile/arch/arch.tnsl" - :include "compile/format/format.tnsl" - -;/ diff --git a/tnslc/src/compile/format/elf.tnsl b/tnslc/src/compile/format/elf.tnsl deleted file mode 100644 index 8490180..0000000 --- a/tnslc/src/compile/format/elf.tnsl +++ /dev/null @@ -1,151 +0,0 @@ -/## - Copyright 2021 Kyle Gunger - - This file is licensed under the CDDL 1.0 (the License) - and may only be used in accordance with the License. - You should have received a copy of the License with this - software/source code. If you did not, a copy can be found - at the following URL: - - https://opensource.org/licenses/CDDL-1.0 - - THIS SOFTWARE/SOURCE CODE IS PROVIDED "AS IS" WITH NO - WARRANTY, GUARANTEE, OR CLAIM OF FITNESS FOR ANY PURPOSE - EXPRESS OR IMPLIED -#/ - -# Constants and values used in ELF files - -# File signature -;const {4}uint8 SIGNATURE_ELF = {0x7F, 'E', 'L', 'F'} - -# ELF version always 1 -;const uint8 VERSION_ELF = 1 - -# OS identifiers (from wikipedia) -;enum ABI_ELF [uint8] { - SystemV = 0x0, - HP_UX = 0x1, - NetBSD = 0x2, - Linux = 0x3, - GNUHurd = 0x4, - Solaris = 0x6, - AIX = 0x7, - IRIX = 0x8, - FreeBSD = 0x9, - Tru64 = 0xA, - OpenBSD = 0xC, - OpenVMS = 0xD -} - -# ELF file types (from wikipedia) -;enum TYPE_ELF [uint16] { - ET_NONE = 0x0, - ET_REL = 0x1, - ET_EXEC = 0x2, - ET_DYN = 0x3, - ET_CORE = 0x4, - ET_LOOS = 0xFE00, - ET_HIOS = 0xFEFF, - ET_LOPROC = 0xFF00, - ET_HIPROC = 0xFFFF -} - -# ISA (from wikipedia) -;enum ARCH_ELF [uint16] { - NONE = 0x0, - SPARC = 0x2, - x86_32 = 0x3, - MIPS = 0x8, - PowerPC = 0x14, - PowerPC64 = 0x15, - ARM = 0x28, - SPARC9 = 0x2B, - IA_64 = 0x32, - x86_64 = 0x3E, - ARM64 = 0xB7, - RISC_V = 0xF3 -} - -# Some zeros to fill out the pad in the header -;const {7}uint8 PAD_ZEROS_ELF = {0, 0, 0, 0, 0, 0, 0} - - - -# Internal file structures - -# Identity inside header -;raw struct IdentityELF { - {4}uint8 - signature, - - uint8 - class, - data, - version, - abi, - - # Usually zero - abiVersion, - - {7}uint8 - # Filled with zeros, use PAD_ZEROS_ELF to fill out - pad -} - -# Main header (32 bit) -;raw struct HeaderELF32 { - IdentityELF - identity, - - uint16 - fileType, - arch, - - {4}uint8 - version, - entry, - programHeader, - sectionHeader, - - {4}uint8 - flags, - - uint16 - headerSize, - programHeaderSize, - programHeaderEntries, - sectionHeaderSize, - sectionHeaderEntries, - shNameIndex -} - -# Main header (64 bit) -;raw struct HeaderELF64 { - IdentityELF - identity, - - uint16 - fileType, - arch, - - {4}uint8 - version, - - {8}uint8 - entry, - programHeader, - sectionHeader, - - {4}uint8 - flags, - - uint16 - headerSize, - programHeaderSize, - programHeaderEntries, - sectionHeaderSize, - sectionHeaderEntries, - shNameIndex -} - diff --git a/tnslc/src/compile/format/format.tnsl b/tnslc/src/compile/format/format.tnsl deleted file mode 100644 index 2d4ed4b..0000000 --- a/tnslc/src/compile/format/format.tnsl +++ /dev/null @@ -1,20 +0,0 @@ -/## - Copyright 2021 Kyle Gunger - - This file is licensed under the CDDL 1.0 (the License) - and may only be used in accordance with the License. - You should have received a copy of the License with this - software/source code. If you did not, a copy can be found - at the following URL: - - https://opensource.org/licenses/CDDL-1.0 - - THIS SOFTWARE/SOURCE CODE IS PROVIDED "AS IS" WITH NO - WARRANTY, GUARANTEE, OR CLAIM OF FITNESS FOR ANY PURPOSE - EXPRESS OR IMPLIED -#/ - -/; module format - :include "compile/format/out.tnsl" - :include "compile/format/elf.tnsl" -;/
\ No newline at end of file diff --git a/tnslc/src/compile/format/iex.tnsl b/tnslc/src/compile/format/iex.tnsl deleted file mode 100644 index e69de29..0000000 --- a/tnslc/src/compile/format/iex.tnsl +++ /dev/null diff --git a/tnslc/src/compile/format/out.tnsl b/tnslc/src/compile/format/out.tnsl deleted file mode 100644 index e69de29..0000000 --- a/tnslc/src/compile/format/out.tnsl +++ /dev/null diff --git a/tnslc/src/compile/format/pe.tnsl b/tnslc/src/compile/format/pe.tnsl deleted file mode 100644 index e69de29..0000000 --- a/tnslc/src/compile/format/pe.tnsl +++ /dev/null diff --git a/tnslc/src/flags/flags.tnsl b/tnslc/src/flags/flags.tnsl deleted file mode 100644 index bc5d43f..0000000 --- a/tnslc/src/flags/flags.tnsl +++ /dev/null @@ -1,16 +0,0 @@ -/## - Copyright 2021 Kyle Gunger - - This file is licensed under the CDDL 1.0 (the License) - and may only be used in accordance with the License. - You should have received a copy of the License with this - software/source code. If you did not, a copy can be found - at the following URL: - - https://opensource.org/licenses/CDDL-1.0 - - THIS SOFTWARE/SOURCE CODE IS PROVIDED "AS IS" WITH NO - WARRANTY, GUARANTEE, OR CLAIM OF FITNESS FOR ANY PURPOSE - EXPRESS OR IMPLIED -#/ - diff --git a/tnslc/src/parse/parse.tnsl b/tnslc/src/parse/parse.tnsl deleted file mode 100644 index e10ab4c..0000000 --- a/tnslc/src/parse/parse.tnsl +++ /dev/null @@ -1,22 +0,0 @@ -/## - Copyright 2021 Kyle Gunger - - This file is licensed under the CDDL 1.0 (the License) - and may only be used in accordance with the License. - You should have received a copy of the License with this - software/source code. If you did not, a copy can be found - at the following URL: - - https://opensource.org/licenses/CDDL-1.0 - - THIS SOFTWARE/SOURCE CODE IS PROVIDED "AS IS" WITH NO - WARRANTY, GUARANTEE, OR CLAIM OF FITNESS FOR ANY PURPOSE - EXPRESS OR IMPLIED -#/ - -/; export module parse - /:import - "token.tnsl" - "tokenizer.tnsl" - :/ -;/
\ No newline at end of file diff --git a/tnslc/src/parse/token.tnsl b/tnslc/src/parse/token.tnsl deleted file mode 100644 index 21abe7b..0000000 --- a/tnslc/src/parse/token.tnsl +++ /dev/null @@ -1,295 +0,0 @@ -/# - Copyright 2021 Kyle Gunger - - This file is licensed under the CDDL 1.0 (the License) - and may only be used in accordance with the License. - You should have received a copy of the License with this - software/source code. If you did not, a copy can be found - at the following URL: - - https://opensource.org/licenses/CDDL-1.0 - - THIS SOFTWARE/SOURCE CODE IS PROVIDED "AS IS" WITH NO - WARRANTY, GUARANTEE, OR CLAIM OF FITNESS FOR ANY PURPOSE - EXPRESS OR IMPLIED -#/ - -/# The various types of tokens #/ -; enum TOKEN_TYPE [uint] { - LINESEP = 0, - INLNSEP = 1, - DELIMIT = 2, - AUGMENT = 3, - LITERAL = 4, - KEYTYPE = 5, - PREWORD = 6, - KEYWORD = 7, - DEFWORD = 8 -} - -/# Token struct definition #/ -;raw struct Token { - uint - token_type, - line, - col, - - ~{}charp - data -} - -/; method Token - - /; operator delete - ;delete self.data - ;/ - - /; add_char (~{}charp part) - ;uint l = len self.data` - ;realloc self.data, l + len part - /;loop (uint i = 0) [i++; i < len part] - ;self.data`{l + i} = part{i} - ;/ - ;/ -;/ - -/# - Reserved words and characters, as well as - helper funcs for checking their token types. -#/ - -;const {}{}charp PREWORDS = { - "include", - "define", - "extern", - "size", - "align", - "address", - "rootfile", - "if", - "else", - "abi" -} - -;const {}{}charp KEYTYPES = { - "bool", - "char", - "charp", - - "int8", - "int16", - "int32", - "int64", - "int", - "uint8", - "uint16", - "uint32", - "uint64", - "uint", - - "float32", - "float64", - "float", - - "void", - "type" -} - -;const {}{}charp KEYWORDS = { - "struct", - "interface", - "enum", - "is", - "extends", - - "loop", - "continue", - "break", - - "match", - "case", - "default", - - "label", - "goto", - - "if", - "else", - - "const", - "static", - "volatile", - - "method", - "override", - "self", - "super", - "operator", - - "raw", - "asm", - "inline", - - "delete", - - "module", - "export", -} - -;const {}{}charp LITERALS = { - "true", - "false" -} - -;const {}charp DELIMITS = "()[]{}" -;const {}charp LINESEPS = ";:#" -;const {}charp INLNSEPS = "," -;const {}charp AUGMENTS = "~`.&|^><!+-*/%" - -;const {}{}charp MDELIMITS = { - # Code block - "/;", - ";/", - - # Comment block - "/#", - "#/", - - # Preproc block - "/:", - ":/", - - # Redef blocks - ";;", - "::", - ";#", - ":#", - "#;", - "#:" -} - -;const {}{}charp MAUGMENTS = { - # Boolean - "==", - "&&", - "||", - - # Bitwise shifts - "<<", - ">>", - - # PREaugmented augmentors - "&=", - "|=", - "^=", - "+=", - "-=", - "*=", - "/=", - "%=", - "~=", - "`=", - - # POSTaugmented augmentors - "!&", - "!|", - "!^", - "!==", - "!&&", - "!||", - "!>", - "!<", - ">==", - "<==", - - # Increment and De-increment - "++", - "--" -} - -; const uint MAX_MRESERVED = 3 - -/## - Checks if the character point p is in the string cmp - -#; is_in_string (const {}charp` cmp, charp p) [bool] - - /; loop (int i = 0; i < len cmp) [i++] - - /; if (s == cmp{i}) - ;return true - ;/ - ;/ - - ;return false -;/ - - -/## - Checks if the string s is in the list cmp - -#; is_in_string_list (const {}{}charp` cmp, {}charp` s) [bool] - - /; loop (int i = 0; i < len cmp) [i++] - - /; if (len s == len cmp{i}) - - /; loop (int j = 0; j < len s) [j++] - - /; if (s{j} !== cmp{i}{j}) - ;goto cont_outer - ;/ - ;/ - - ;return true - ;/ - - ;label cont_outer - ;/ - - ;return false -;/ - -/# - Get the token_type value for a given string of character points - -#; get_token_type ({}charp` s) [int] - - /; if (len s > 1) - - /; if (is_in_string_list(~PREWORDS, ~s)) - ;return TOKEN_TYPE.PREWORD - ;; else if (is_in_string_list(~KEYTYPES, ~s)) - ;return TOKEN_TYPE.KEYTYPE - ;; else if (is_in_string_list(~KEYWORDS, ~s)) - ;return TOKEN_TYPE.KEYWORD - ;; else if (is_in_string_list(~LITERALS, ~s)) - ;return TOKEN_TYPE.LITERAL - ;; else if (is_in_string_list(~MDELIMITS, ~s)) - ;return TOKEN_TYPE.DELIMIT - ;; else if (is_in_string_list(~MAUGMENTS, ~s)) - ;return TOKEN_TYPE.AUGMENT - ;/ - - ;return TOKEN_TYPE.DEFWORD - - ;;else if (len s == 1) - - /; if (is_in_string(~DELIMITS, s{0})) - ;return TOKEN_TYPE.DELIMIT - ;; else if (is_in_string(~LINESEPS, s{0})) - ;return TOKEN_TYPE.LINESEP - ;; else if (is_in_string(~INLNSEPS, s{0})) - ;return TOKEN_TYPE.INLNSEP - ;; else if (is_in_string(~AUGMENTS, s{0})) - ;return TOKEN_TYPE.AUGMENT - ;/ - - ;return TOKEN_TYPE.DEFWORD - ;/ - - # What, we just produce vacant tokens now? - # Something has gone wrong. - - ;return -1 -;/
\ No newline at end of file diff --git a/tnslc/src/parse/tokenizer.tnsl b/tnslc/src/parse/tokenizer.tnsl deleted file mode 100644 index 4e5eeb7..0000000 --- a/tnslc/src/parse/tokenizer.tnsl +++ /dev/null @@ -1,38 +0,0 @@ -/# - Copyright 2021 Kyle Gunger - - This file is licensed under the CDDL 1.0 (the License) - and may only be used in accordance with the License. - You should have received a copy of the License with this - software/source code. If you did not, a copy can be found - at the following URL: - - https://opensource.org/licenses/CDDL-1.0 - - THIS SOFTWARE/SOURCE CODE IS PROVIDED "AS IS" WITH NO - WARRANTY, GUARANTEE, OR CLAIM OF FITNESS FOR ANY PURPOSE - EXPRESS OR IMPLIED -#/ - -:using 'tnsl' - -/## - parse.numeric_literal tokenizes the next numeric literal value in a file. - Returns a token with the proper data as well as the number of characters read - -#; numeric_literal (io.text_stream fstream) [Token, uint] - ;Token out = {token_type: TOKEN_TYPE.LITERAL} - ;uint counter = 0 - - ;bool l, d, run = false, false, true - ;~{}charp num - - ;num, run = fstream.read_number() - - /; loop (run) [num, run = fstream.read_number()] - ;out.add_data(num) - ;delete num - ;/ - - ;return out, counter -;/
\ No newline at end of file diff --git a/tnslc/src/tnslc.tnsl b/tnslc/src/tnslc.tnsl deleted file mode 100644 index 212819e..0000000 --- a/tnslc/src/tnslc.tnsl +++ /dev/null @@ -1,38 +0,0 @@ -/## - Copyright 2021 Kyle Gunger - - This file is licensed under the CDDL 1.0 (the License) - and may only be used in accordance with the License. - You should have received a copy of the License with this - software/source code. If you did not, a copy can be found - at the following URL: - - https://opensource.org/licenses/CDDL-1.0 - - THIS SOFTWARE/SOURCE CODE IS PROVIDED "AS IS" WITH NO - WARRANTY, GUARANTEE, OR CLAIM OF FITNESS FOR ANY PURPOSE - EXPRESS OR IMPLIED -#/ - -/; module tnslc - :import "flags/flags.tnsl" - :import "parse/parse.tnsl" - :import "ast/ast.tnsl" - :import "compile/compile.tnsl" -;/ - - -/; main (~{}{}char args) [int] - ;tnslc.flags.Flags argList = tnslc.flags.parse(args) - - ;{}tnslc.parse.Token tokenList = tnslc.parse.tokenize(argList) - - ;tnslc.ast.Node ast = ast.generate(tokenList) - - ;tnsl.io.File outFile = tnsl.io.open_file(argList.outPath) - ;[]uint8 data = tnslc.compile.generate(argList, ast) - - ;outFile.write(data) - - ;outFile.close() -;/ |