summaryrefslogtreecommitdiff
path: root/tnslc/flags
diff options
context:
space:
mode:
Diffstat (limited to 'tnslc/flags')
-rw-r--r--tnslc/flags/defaults.tnsl24
-rw-r--r--tnslc/flags/flags.tnsl32
2 files changed, 56 insertions, 0 deletions
diff --git a/tnslc/flags/defaults.tnsl b/tnslc/flags/defaults.tnsl
new file mode 100644
index 0000000..2164e20
--- /dev/null
+++ b/tnslc/flags/defaults.tnsl
@@ -0,0 +1,24 @@
+/##
+ 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
+#/
+
+/# defaults.tnsl
+ # This file provides the default settings for the compiler
+ # if the user has not provided flags which overrides them.
+#/
+
+/; get_defaults [Settings]
+
+;/ \ No newline at end of file
diff --git a/tnslc/flags/flags.tnsl b/tnslc/flags/flags.tnsl
index bc5d43f..1dbbaf4 100644
--- a/tnslc/flags/flags.tnsl
+++ b/tnslc/flags/flags.tnsl
@@ -14,3 +14,35 @@
EXPRESS OR IMPLIED
#/
+/; module flags
+ :include "flags/defaults.tnsl"
+;/
+
+;enum ISA [uint] {
+ X86 = 0,
+ X64 = 1,
+ ARM = 2,
+ ARM64 = 3,
+ RISCV = 4
+}
+
+;enum FORMATS [uint] {
+ ELF = 0
+ PE = 1
+}
+
+;struct Settings {
+
+ # ISA settings
+ uint isa,
+ bool littleEndian,
+
+ # Output format settings
+ uint format
+}
+
+/; parse_flags () [Settings]
+ ;Settings out = flags.get_defaults()
+
+ ;return out
+;/