5 Binary: and or < > <= >= == != + - * / % ++
10 Binary: and then, or else, integer division
15 Do I want COND ? IFTRUE : IFFALSE
16 or IFTRUE if COND else IFFALSE
19 provide the integer part?
21 What can I use '!' '@' '#' '$' '^' '&' '*' '|'
24 bit-wise and/or/not/xor
26 != is 'xor' for Boolean
28 I should use & | ~ for bitwise. and or not
29 ~ could be an infix for xor
33 += -= *= /= %= &= |= ~=
35 Do I want "#n" to be (1 << n) ??
37 ++ is concat. What about
44 || These last two are best avoided.
46 Pointers ... do I need a dereference operator?
47 Normally a pointer refers to the object it references (which isn't a pointer)
48 The only difficulty is
50 If a:foo and b:foo^ then b is dereferenced.
51 If a:foo^ and b:foo then a points to b
52 if a:foo^ and b:foo^ then a points to what b points to
54 So how do you change what a points to? I could have a de-reference operation
56 but I think I want a structure-changing assignment
62 What types do operators act one?
66 Boolean and or not "and then" "or else" "if .. else" What about and= ?? *= ??
67 string ++ < > == etc, regexp? strlen? append?
68 character? add to string? Convert to string?
70 are << and >> operators on numbers or bitsets?
71 can I just use "*# or /#" ??
74 What about error encoding? e.g. a pointer can have nil or other error encoded
75 A range-limited number could have extra codes outside that range.
77 convert error to type !error
78 test if value is error ?value
79 extract error code value!
85 could have a natural precedence:
87 A if C else B if q else a if c else b
89 A if C else (B if q else (a if c else b))
90 Hmm.. not what I imagined. But what I imaging suggested that left-association what
91 a op b op c -> (a op b) op c
92 requires that we reduce even when we could shift, ... maybe .... I should leave this
93 until I do precedence.