about summary refs log tree commit diff stats
path: root/edit.arc.t
diff options
context:
space:
mode:
Diffstat (limited to 'edit.arc.t')
-rw-r--r--edit.arc.t25
1 files changed, 25 insertions, 0 deletions
diff --git a/edit.arc.t b/edit.arc.t
index 6272699b..3986cbfc 100644
--- a/edit.arc.t
+++ b/edit.arc.t
@@ -1,5 +1,30 @@
 (load "mu.arc")
 
+(on-init
+  (= types* (obj
+              ; Each type must be scalar or array, sum or product or primitive
+              location (obj size 1)
+              integer (obj size 1)
+              boolean (obj size 1)
+              boolean-address (obj size 1  address t)
+              byte (obj size 1)
+;?               string (obj array t  elem 'byte)  ; inspired by Go
+              character (obj size 1)  ; int32 like a Go rune
+              character-address (obj size 1  address t  elem 'character)
+              string (obj size 1)  ; temporary hack
+              ; arrays consist of an integer length followed by the right number of elems
+              integer-array (obj array t  elem 'integer)
+              integer-address (obj size 1  address t  elem 'integer)  ; pointer to int
+              ; records consist of a series of elems, corresponding to a list of types
+              integer-boolean-pair (obj size 2  record t  elems '(integer boolean))
+              ; editor
+              line (obj array t  elem 'character)
+              line-address (obj size 1  address t  elem 'line)
+              line-address-address (obj size 1  address t  elem 'line-address)
+              screen (obj array t  elem 'line-address)
+              screen-address (obj size 1  address t  elem 'screen)
+              )))
+
 (reset)
 (new-trace "new-screen")
 ;? (set dump-trace*)