summary refs log tree commit diff
path: root/pc-thing/the_e_programming_language/test.e.txt
diff options
context:
space:
mode:
Diffstat (limited to 'pc-thing/the_e_programming_language/test.e.txt')
-rwxr-xr-xpc-thing/the_e_programming_language/test.e.txt43
1 files changed, 43 insertions, 0 deletions
diff --git a/pc-thing/the_e_programming_language/test.e.txt b/pc-thing/the_e_programming_language/test.e.txt
new file mode 100755
index 0000000..c8d09c5
--- /dev/null
+++ b/pc-thing/the_e_programming_language/test.e.txt
@@ -0,0 +1,43 @@
+// comments exist
+// 
+// types (in addresses (they store 2 bytes if you forgot)):
+// int - 1
+// char - 1
+// bool - 1
+// uuh yeah,, theyre all 1 address ;-;
+//
+// $VARNAME is the address of the var, when used in mov it means that we get that var
+// [$VARNAME] is the address of the var, but when it's used in mov it means we set to the address
+
+// translates to:
+// mov a 0
+// mov $counter a
+// prob not gonna make it do assembly tho
+int counter = 0
+int[4] buff = 0
+
+fn _start {
+    // translates to
+    // <inner code>
+    // mov a $counter
+    // mov b 4
+    // cmp a b
+    // jz $start_of_inner_code
+    while (counter < 4) {
+        // translates to
+        // mov a [$buff]
+        // mov b [$counter]
+        // add a a b
+        // mov b $counter
+        // str a b
+        buff[counter] = counter
+        // translates to
+        // mov a $counter ; further translates to:
+        //                ; mov a $counter
+        //                ; ld a a
+        // mov b 1
+        // add a a b
+        // str $counter a
+        counter = counter + 1
+    }
+}
\ No newline at end of file