`(a b (c . d) e ,(cons a `b) f ,@g h ,@k)
` => [start of back quote]
( => [back quote target is list]
(list
a => (list 'a
b => (list 'a 'b
( => (list 'a 'b (list
c => (list 'a 'b (list 'c
. => [least list close]
(list 'a 'b (list 'c)
[least list remove and save]
(list 'a 'b
[add append]
(list 'a 'b (append
[return saved list]
(list 'a 'b (append (list 'c)
d => (list 'a 'b (append (list 'c) 'd
) => (list 'a 'b (append (list 'c) 'd)
e => (list 'a 'b (append (list 'c) 'd) 'e
, => [start of non quote]
( => [non quote target is list]
(list 'a 'b (append (list 'c) 'd) 'e (
cons => (list 'a 'b (append (list 'c) 'd) 'e (cons
a => (list 'a 'b (append (list 'c) 'd) 'e (cons a
` => [start of back quote]
b => [back quote taget is atom]
(list 'a 'b (append (list 'c) 'd) 'e (cons a 'b
[end of back quote]
) => (list 'a 'b (append (list 'c) 'd) 'e (cons a 'b)
[end of non quote]
f => (list 'a 'b (append (list 'c) 'd) 'e (cons a 'b) f
, => [start of non quote]
@ => [non quote target is expand]
[least list close]
(list 'a 'b (append (list 'c) 'd) 'e (cons a 'b) f)
[least list remove and save]
[add append (closing +1, all=1)]
(append
[return saved list]
(append (list 'a 'b (append (list 'c) 'd) 'e (cons a 'b) f)
g => [expand target is atom (must refer list)]
(append (list 'a 'b (append (list 'c) 'd) 'e (cons a 'b) f) g
[end of expand and non quote]
[add list]
(append (list 'a 'b (append (list 'c) 'd) 'e (cons a 'b) f) g (list
h => (append (list 'a 'b (append (list 'c) 'd) 'e (cons a 'b) f) g (list h
, => [start of non quote]
@ => [non quote target is expand]
[least list close]
(append (list 'a 'b (append (list 'c) 'd) 'e (cons a 'b) f) g (list h)
[least list remove and save]
(append (list 'a 'b (append (list 'c) 'd) 'e (cons a 'b) f) g
[add append (closing +1, all=2)]
(append (list 'a 'b (append (list 'c) 'd) 'e (cons a 'b) f) g (append
[return saved list]
(append (list 'a 'b (append (list 'c) 'd) 'e (cons a 'b) f) g (append (list h)
k => [expand target is atom (must refer list)]
(append (list 'a 'b (append (list 'c) 'd) 'e (cons a 'b) f) g (append (list h) k
[endo of expand and non quote]
[add list]
(append (list 'a 'b (append (list 'c) 'd) 'e (cons a 'b) f) g (append (list h) k (list
) => (append (list 'a 'b (append (list 'c) 'd) 'e (cons a 'b) f) g (append (list h) k (list)
[end of back quote]
[add closings(all=2)]
(append (list 'a 'b (append (list 'c) 'd) 'e (cons a 'b) f) g (append (list h) k (list)))