about summary refs log tree commit diff stats
path: root/transect/ex8.k2
diff options
context:
space:
mode:
Diffstat (limited to 'transect/ex8.k2')
-rw-r--r--transect/ex8.k236
1 files changed, 0 insertions, 36 deletions
diff --git a/transect/ex8.k2 b/transect/ex8.k2
deleted file mode 100644
index dfef03b0..00000000
--- a/transect/ex8.k2
+++ /dev/null
@@ -1,36 +0,0 @@
-# Example reading commandline arguments: compute length of first arg.
-
-fn main argc : int, argv : (array (ref array char)) -> [
-  var tmp : (index char)
-  tmp <- index 1, %size(ref array char)
-  var tmp2 : (address (ref array char))
-  tmp2 <- advance argv, tmp
-  var s/EBX : (ref array char)
-  s/EBX <- copy *tmp2
-  var result/EAX : int
-  result/EAX <- ascii_length s/EBX
-  call exit, result/EAX
-]
-
-fn ascii_length s : (ref array char) -> result : int [
-  var result/EBX : int
-  result/EBX <- copy 0
-  {
-    var tmp0/EDI : (offset char)
-    tmp0/EDI <- index result/EBX, %size(char)
-    var tmp/EDX : (address char)
-    tmp/EDX <- advance *s, tmp0/EDI
-    var c/ECX : char
-    c/ECX <- copy *tmp
-    compare c/ECX, 0
-    break-if-equal
-    loop
-  }
-  return result/EBX
-]
-
-fn exit x : int [
-  code/EBX <- copy x
-  code/EAX <- copy 1/exit
-  syscall
-]