summaryrefslogtreecommitdiff
path: root/libtnsl
diff options
context:
space:
mode:
authorKyle Gunger <kgunger12@gmail.com>2021-08-06 19:58:35 -0400
committerKyle Gunger <kgunger12@gmail.com>2021-08-06 19:58:35 -0400
commit171e1986bb92c0e41f5f8e3672d5de1fc069c27c (patch)
tree3b23fbefa0009b4c6145b388798734afa7cc799f /libtnsl
parentdd35976e57081987bee8278d006b2ae48e604f1d (diff)
Initial empty/bare-bones files for implementation
Diffstat (limited to 'libtnsl')
-rw-r--r--libtnsl/READEME.md50
-rw-r--r--libtnsl/src/algorithm/alg.tnsl0
-rw-r--r--libtnsl/src/algorithm/math/math.tnsl0
-rw-r--r--libtnsl/src/bootstrap.tnsl33
-rw-r--r--libtnsl/src/box/box.tnsl0
-rw-r--r--libtnsl/src/box/map.tnsl0
-rw-r--r--libtnsl/src/box/string.tnsl0
-rw-r--r--libtnsl/src/box/tree.tnsl0
-rw-r--r--libtnsl/src/box/vector.tnsl0
-rw-r--r--libtnsl/src/io/block.tnsl0
-rw-r--r--libtnsl/src/io/file.tnsl0
-rw-r--r--libtnsl/src/io/io.tnsl0
-rw-r--r--libtnsl/src/io/std.tnsl0
-rw-r--r--libtnsl/src/io/stream.tnsl0
-rw-r--r--libtnsl/src/libtnsl.tnsl19
-rw-r--r--libtnsl/src/reflect/dynamic.tnsl0
-rw-r--r--libtnsl/src/reflect/method.tnsl0
-rw-r--r--libtnsl/src/reflect/reflect.tnsl0
-rw-r--r--libtnsl/src/reflect/resolver.tnsl0
-rw-r--r--libtnsl/src/reflect/static.tnsl0
-rw-r--r--libtnsl/src/reflect/type.tnsl0
-rw-r--r--libtnsl/src/time/alg.tnsl0
-rw-r--r--libtnsl/src/time/conv.tnsl0
-rw-r--r--libtnsl/src/time/parse.tnsl0
-rw-r--r--libtnsl/src/time/time.tnsl0
25 files changed, 102 insertions, 0 deletions
diff --git a/libtnsl/READEME.md b/libtnsl/READEME.md
new file mode 100644
index 0000000..32cff9a
--- /dev/null
+++ b/libtnsl/READEME.md
@@ -0,0 +1,50 @@
+# libts
+
+The official implimentation of the TNSL Standard Library
+
+libts provides the following language features:
+* Type and method resolution
+* Basic input and output
+* Standard algorithms
+* Standard data containers
+* Basic platform identification
+* Time resolution
+
+More information on these features can be found in the specification under libts.txt
+
+---
+## Provided Sub-modules
+
+libts provides the ts base module and the following sub-modules to address each feature:
+* algorithm
+ * Algorithms. Also contains the math sub-module for basic math operations.
+* box
+ * Data containers (vector, map, etc.)
+* io
+ * Input and output
+* reflect
+ * Type reflection and method resolution
+* time
+ * Time related functions
+
+Each sub-module should have its own README to address features
+
+---
+ Copyright 2021 Kyle Gunger
+
+ Dual licenced under the CDDL 1.0 and BSD 3-Clause licences.
+
+ This file may only be used in accordance with one of the two
+ licences. You should have recieved a copy of each licence with
+ the source code. In the event that you did not recieve a copy
+ of the licences, they may be found at the following URLs:
+
+ CDDL 1.0:
+ https://opensource.org/licenses/CDDL-1.0
+
+ BSD 3-Clause:
+ https://opensource.org/licenses/BSD-3-Clause
+
+ THIS SOFTWARE/SOURCE CODE IS PROVIDED "AS IS" WITH NO
+ WARRENTY, GUARANTEE, OR CLAIM OF FITNESS FOR ANY PURPOSE
+ EXPRESS OR IMPLIED
diff --git a/libtnsl/src/algorithm/alg.tnsl b/libtnsl/src/algorithm/alg.tnsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/libtnsl/src/algorithm/alg.tnsl
diff --git a/libtnsl/src/algorithm/math/math.tnsl b/libtnsl/src/algorithm/math/math.tnsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/libtnsl/src/algorithm/math/math.tnsl
diff --git a/libtnsl/src/bootstrap.tnsl b/libtnsl/src/bootstrap.tnsl
new file mode 100644
index 0000000..01ebf56
--- /dev/null
+++ b/libtnsl/src/bootstrap.tnsl
@@ -0,0 +1,33 @@
+/##
+ Copyright 2020 Kyle Gunger
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+#/
+
+/#
+ This file provides a nonstandard entry point for a bootstrap implementation of TNSL.
+
+ The reference implementation of the TNSL compiler (written in GOLANG for now), does
+ not contain feature complete functionality in the form of pre-compiler directives, which the
+ full libts uses for compilation on different operating systems. This version is provided
+ so that the reference compiler can produce a functional enough libts to compile the
+ full tnslc compiler (written in TNSL).
+
+ As such, this entry point must be modified manually to use windows, mac, or linux
+ code files, and then will provide a barebones file, stream, and error handeling library
+ with nothing else to act as a bootstrap for the compiler. The bootstrap compiler should
+ be able to compile the full libts and, in turn, the full compiler.
+#/
+
+/;export module ts
+;/ \ No newline at end of file
diff --git a/libtnsl/src/box/box.tnsl b/libtnsl/src/box/box.tnsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/libtnsl/src/box/box.tnsl
diff --git a/libtnsl/src/box/map.tnsl b/libtnsl/src/box/map.tnsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/libtnsl/src/box/map.tnsl
diff --git a/libtnsl/src/box/string.tnsl b/libtnsl/src/box/string.tnsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/libtnsl/src/box/string.tnsl
diff --git a/libtnsl/src/box/tree.tnsl b/libtnsl/src/box/tree.tnsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/libtnsl/src/box/tree.tnsl
diff --git a/libtnsl/src/box/vector.tnsl b/libtnsl/src/box/vector.tnsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/libtnsl/src/box/vector.tnsl
diff --git a/libtnsl/src/io/block.tnsl b/libtnsl/src/io/block.tnsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/libtnsl/src/io/block.tnsl
diff --git a/libtnsl/src/io/file.tnsl b/libtnsl/src/io/file.tnsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/libtnsl/src/io/file.tnsl
diff --git a/libtnsl/src/io/io.tnsl b/libtnsl/src/io/io.tnsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/libtnsl/src/io/io.tnsl
diff --git a/libtnsl/src/io/std.tnsl b/libtnsl/src/io/std.tnsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/libtnsl/src/io/std.tnsl
diff --git a/libtnsl/src/io/stream.tnsl b/libtnsl/src/io/stream.tnsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/libtnsl/src/io/stream.tnsl
diff --git a/libtnsl/src/libtnsl.tnsl b/libtnsl/src/libtnsl.tnsl
new file mode 100644
index 0000000..a684317
--- /dev/null
+++ b/libtnsl/src/libtnsl.tnsl
@@ -0,0 +1,19 @@
+/##
+ Copyright 2020 Kyle Gunger
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+#/
+
+/;export module tnsl
+
+;/
diff --git a/libtnsl/src/reflect/dynamic.tnsl b/libtnsl/src/reflect/dynamic.tnsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/libtnsl/src/reflect/dynamic.tnsl
diff --git a/libtnsl/src/reflect/method.tnsl b/libtnsl/src/reflect/method.tnsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/libtnsl/src/reflect/method.tnsl
diff --git a/libtnsl/src/reflect/reflect.tnsl b/libtnsl/src/reflect/reflect.tnsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/libtnsl/src/reflect/reflect.tnsl
diff --git a/libtnsl/src/reflect/resolver.tnsl b/libtnsl/src/reflect/resolver.tnsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/libtnsl/src/reflect/resolver.tnsl
diff --git a/libtnsl/src/reflect/static.tnsl b/libtnsl/src/reflect/static.tnsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/libtnsl/src/reflect/static.tnsl
diff --git a/libtnsl/src/reflect/type.tnsl b/libtnsl/src/reflect/type.tnsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/libtnsl/src/reflect/type.tnsl
diff --git a/libtnsl/src/time/alg.tnsl b/libtnsl/src/time/alg.tnsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/libtnsl/src/time/alg.tnsl
diff --git a/libtnsl/src/time/conv.tnsl b/libtnsl/src/time/conv.tnsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/libtnsl/src/time/conv.tnsl
diff --git a/libtnsl/src/time/parse.tnsl b/libtnsl/src/time/parse.tnsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/libtnsl/src/time/parse.tnsl
diff --git a/libtnsl/src/time/time.tnsl b/libtnsl/src/time/time.tnsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/libtnsl/src/time/time.tnsl