-3
###
+3
###
! foo
###
not foo
###
-!foo
###
- not foo
###
not foo
###
Not foo
###
10 % * 3
###
A.B
###
(A+B).C
###
A^B^C
###
A^B^C
###
A^B^C
###
-A^-B^!C
###
-A^-B^ not C
###
-A^-B^ (not C)
###
// Note that "B %" binds strongest.
A ^ - ! B %
###
A ^ - not B %
###
A ^ - (not B %)
###
A ^ ( - ! B ) %
###
A ^ ( - not B ) %
###
A ^ ( - (not B) ) %
###
A * B ^ C
###
A ^ B * C

###
A / B ^ C
###
A ^ B / C

###
A * B / C
###
A / B * C

###
A + B / C
###
A * B + C

###
A - B * C
###
A / B - C

###
A + B - C
###
A - B + C

###
A + B & C
###
A & B + C

###
A > B & C
###
A & B > C
###
A @> B & C
###
A & B @> C

###
A > B >= C
###
A >= B > C

###
A > B < C
###
A < B > C

###
A > B <= C
###
A <= B > C

###
A > B = C
###
A = B > C

###
A > B != C
###
A > B ! = C
###
A > B not = C
###
A > B not= C
###
A != B > C
###
A ! = B > C
###
A not = B > C
###
A not= B > C

###
A < B <

###
A in B > C
###
A > B in C

###
A in B and C

###
A + B 17

###
// Leaves tokens after expr.
A ; B

###
// Extra close paren. REVIEW: What should we do?
(A + B)) * C

###
x%->{a, b}
###
x%->{a: 3, b: it}
###
x^y->{a, b}
###
x^y%->{a, b}

###
A ?? B ?? C
###
(A ?? B) ?? C
###
A + B ?? C

###
A ++ B
###
A ^ B

###
A |  _
###
A |  F(3, _)
###
A |  F(3)
###
A |  F(3, _, 5, _).X
###
_
###
-A^B |  F(_)
###
A+B |  F(_)
###
A |  B if C |  D else E |  F
###
A -> F()
###
A -> F(3)
###
A -> F.G.H(3)
###
A -> F(3)%
###
A% -> F(3)
###
A -> F(3, 5).X
###
A -> 1
###
A -> F
###
A -> F.G.H
###
A -> -(B -> -(F() * G()))
###
// This is now value projection.
A -> (B -> (F() * G()))
###
1->2 + 3->4 + 5->F.G() + 6->a.b
###
-x ^ y -> F(17)
###
-x ^ y |  F(_, 17)
###
A -> @F()
###
X + [>] Y
###
X * * F([>] Y)
###
A->B.(3)
###
A->F(as x, x * 2)
###
A->F(as _, it * 2)
###
A->F(as x)
###
A->F(as, it * 2)
###
A->F(as)

###
X ! ~ Y
###
X + Y ! = Z
###
X & Y ! ~ = Z

###
and
###
and or
###
and div or
###
and and and
###
and and
###
and (or)
###
and (or mod div)
###
(bor or band) xor (xor shri min)
###
(min or max) has in
###
3 X 5
###
3 to 5
###
3 TO 5
