mirror of https://github.com/Wilfred/difftastic/
619 lines
15 KiB
Plaintext
619 lines
15 KiB
Plaintext
================================================================================
|
|
Block Comments
|
|
================================================================================
|
|
|
|
#|(ql.foo:quickload "cl-project")
|
|
(defun add (a b) |
|
|
(+ a b ))|#
|
|
|
|
(add 8 9)
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
(source
|
|
(block_comment)
|
|
(list_lit
|
|
(sym_lit)
|
|
(num_lit)
|
|
(num_lit)))
|
|
|
|
================================================================================
|
|
Block Comments 2
|
|
================================================================================
|
|
|
|
(add #|8 |#9)
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
(source
|
|
(list_lit
|
|
(sym_lit)
|
|
(block_comment)
|
|
(num_lit)))
|
|
|
|
================================================================================
|
|
Quasi-Quoting
|
|
================================================================================
|
|
|
|
`(add a ,(b))
|
|
`(add a ,@(b))
|
|
`(add a , b)
|
|
`(add a ,b)
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
(source
|
|
(syn_quoting_lit
|
|
(list_lit
|
|
(sym_lit)
|
|
(sym_lit)
|
|
(unquoting_lit
|
|
(list_lit
|
|
(sym_lit)))))
|
|
(syn_quoting_lit
|
|
(list_lit
|
|
(sym_lit)
|
|
(sym_lit)
|
|
(unquote_splicing_lit
|
|
(list_lit
|
|
(sym_lit)))))
|
|
(syn_quoting_lit
|
|
(list_lit
|
|
(sym_lit)
|
|
(sym_lit)
|
|
(unquoting_lit
|
|
(sym_lit))))
|
|
(syn_quoting_lit
|
|
(list_lit
|
|
(sym_lit)
|
|
(sym_lit)
|
|
(unquoting_lit
|
|
(sym_lit)))))
|
|
|
|
================================================================================
|
|
Fancy Literal
|
|
================================================================================
|
|
|
|
(|`(add a ,(b))| a)
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
(source
|
|
(list_lit
|
|
(fancy_literal)
|
|
(sym_lit)))
|
|
|
|
================================================================================
|
|
Defun header
|
|
================================================================================
|
|
(defun a (a b)
|
|
(car 1 2)
|
|
2)
|
|
( defun a (a b)
|
|
(car 1 2)
|
|
2)
|
|
|
|
(defmethod input-gradient :around
|
|
(lazy-array output-gradient index)
|
|
(let ((input (nth index (lazy-array-inputs lazy-array)))
|
|
(value (call-next-method)))
|
|
(if (petalisp.type-inference:ntype=
|
|
(element-ntype value)
|
|
(element-ntype input))
|
|
value
|
|
(lazy #'coerce value (element-type input)))))
|
|
--------------------------------------------------------------------------------
|
|
|
|
(source
|
|
(list_lit
|
|
(defun
|
|
(defun_header
|
|
(defun_keyword)
|
|
(sym_lit)
|
|
(list_lit
|
|
(sym_lit)
|
|
(sym_lit)))
|
|
(list_lit
|
|
(sym_lit)
|
|
(num_lit)
|
|
(num_lit))
|
|
(num_lit)))
|
|
(list_lit
|
|
(defun
|
|
(defun_header
|
|
(defun_keyword)
|
|
(sym_lit)
|
|
(list_lit
|
|
(sym_lit)
|
|
(sym_lit)))
|
|
(list_lit
|
|
(sym_lit)
|
|
(num_lit)
|
|
(num_lit))
|
|
(num_lit)))
|
|
(list_lit
|
|
(defun
|
|
(defun_header
|
|
(defun_keyword)
|
|
(sym_lit)
|
|
(kwd_lit
|
|
(sym_lit))
|
|
(list_lit
|
|
(sym_lit)
|
|
(sym_lit)
|
|
(sym_lit)))
|
|
(list_lit
|
|
(sym_lit)
|
|
(list_lit
|
|
(list_lit
|
|
(sym_lit)
|
|
(list_lit
|
|
(sym_lit)
|
|
(sym_lit)
|
|
(list_lit
|
|
(sym_lit)
|
|
(sym_lit))))
|
|
(list_lit
|
|
(sym_lit)
|
|
(list_lit
|
|
(sym_lit))))
|
|
(list_lit
|
|
(sym_lit)
|
|
(list_lit
|
|
(package_lit
|
|
(dotted_sym_lit
|
|
(sym_lit)
|
|
(sym_lit))
|
|
(sym_lit))
|
|
(list_lit
|
|
(sym_lit)
|
|
(sym_lit))
|
|
(list_lit
|
|
(sym_lit)
|
|
(sym_lit)))
|
|
(sym_lit)
|
|
(list_lit
|
|
(sym_lit)
|
|
(var_quoting_lit
|
|
(sym_lit))
|
|
(sym_lit)
|
|
(list_lit
|
|
(sym_lit)
|
|
(sym_lit))))))))
|
|
|
|
================================================================================
|
|
Vectors
|
|
================================================================================
|
|
|
|
#( 2 3 4)
|
|
#()
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
(source
|
|
(vec_lit
|
|
(list_lit
|
|
(num_lit)
|
|
(num_lit)
|
|
(num_lit)))
|
|
(vec_lit
|
|
(list_lit)))
|
|
|
|
================================================================================
|
|
Arrays
|
|
================================================================================
|
|
|
|
#0A2
|
|
#2A((2 3 4))
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
(source
|
|
(vec_lit
|
|
(num_lit))
|
|
(vec_lit
|
|
(array_dimension
|
|
(num_lit))
|
|
(list_lit
|
|
(list_lit
|
|
(num_lit)
|
|
(num_lit)
|
|
(num_lit)))))
|
|
|
|
================================================================================
|
|
Loop Macro
|
|
================================================================================
|
|
|
|
(cl:loop for dim-idx in xyz
|
|
for letter in (list 'x 'y 'z)
|
|
collect (let ((current-range (nth dim-idx iteration-ranges)))
|
|
`(, (get-counter-symbol dim-idx)
|
|
(+ ,(range-start current-range)
|
|
(* ,(range-step current-range)
|
|
,(case letter
|
|
(x '(+ thread-idx-x (* block-idx-x block-dim-x)))
|
|
(y '(+ thread-idx-y (* block-idx-y block-dim-y)))
|
|
(z '(+ thread-idx-z (* block-idx-z block-dim-z)))))))))
|
|
--------------------------------------------------------------------------------
|
|
|
|
(source
|
|
(list_lit
|
|
(loop_macro
|
|
(loop_clause
|
|
(for_clause
|
|
(sym_lit)
|
|
(for_clause_word)
|
|
(sym_lit)))
|
|
(loop_clause
|
|
(for_clause
|
|
(sym_lit)
|
|
(for_clause_word)
|
|
(list_lit
|
|
(sym_lit)
|
|
(quoting_lit
|
|
(sym_lit))
|
|
(quoting_lit
|
|
(sym_lit))
|
|
(quoting_lit
|
|
(sym_lit)))))
|
|
(loop_clause
|
|
(accumulation_clause
|
|
(accumulation_verb)
|
|
(list_lit
|
|
(sym_lit)
|
|
(list_lit
|
|
(list_lit
|
|
(sym_lit)
|
|
(list_lit
|
|
(sym_lit)
|
|
(sym_lit)
|
|
(sym_lit))))
|
|
(syn_quoting_lit
|
|
(list_lit
|
|
(unquoting_lit
|
|
(list_lit
|
|
(sym_lit)
|
|
(sym_lit)))
|
|
(list_lit
|
|
(sym_lit)
|
|
(unquoting_lit
|
|
(list_lit
|
|
(sym_lit)
|
|
(sym_lit)))
|
|
(list_lit
|
|
(sym_lit)
|
|
(unquoting_lit
|
|
(list_lit
|
|
(sym_lit)
|
|
(sym_lit)))
|
|
(unquoting_lit
|
|
(list_lit
|
|
(sym_lit)
|
|
(sym_lit)
|
|
(list_lit
|
|
(sym_lit)
|
|
(quoting_lit
|
|
(list_lit
|
|
(sym_lit)
|
|
(sym_lit)
|
|
(list_lit
|
|
(sym_lit)
|
|
(sym_lit)
|
|
(sym_lit)))))
|
|
(list_lit
|
|
(sym_lit)
|
|
(quoting_lit
|
|
(list_lit
|
|
(sym_lit)
|
|
(sym_lit)
|
|
(list_lit
|
|
(sym_lit)
|
|
(sym_lit)
|
|
(sym_lit)))))
|
|
(list_lit
|
|
(sym_lit)
|
|
(quoting_lit
|
|
(list_lit
|
|
(sym_lit)
|
|
(sym_lit)
|
|
(list_lit
|
|
(sym_lit)
|
|
(sym_lit)
|
|
(sym_lit)))))))))))))))))
|
|
|
|
================================================================================
|
|
Loop Macro (Accumulation)
|
|
================================================================================
|
|
|
|
(loop for i below 10
|
|
collect x into a)
|
|
--------------------------------------------------------------------------------
|
|
|
|
(source
|
|
(list_lit
|
|
(loop_macro
|
|
(loop_clause
|
|
(for_clause
|
|
(sym_lit)
|
|
(for_clause_word)
|
|
(num_lit)))
|
|
(loop_clause
|
|
(accumulation_clause
|
|
(accumulation_verb)
|
|
(sym_lit)
|
|
(sym_lit))))))
|
|
|
|
================================================================================
|
|
Loop Macro (finally)
|
|
================================================================================
|
|
|
|
(loop for a below 8
|
|
for x = (+ a)
|
|
with first-x = (+ a)
|
|
if (> x 10) return x
|
|
do (format t "~A ~A~%" x first-x)
|
|
finally (return 3))
|
|
--------------------------------------------------------------------------------
|
|
|
|
(source
|
|
(list_lit
|
|
(loop_macro
|
|
(loop_clause
|
|
(for_clause
|
|
(sym_lit)
|
|
(for_clause_word)
|
|
(num_lit)))
|
|
(loop_clause
|
|
(for_clause
|
|
(sym_lit)
|
|
(for_clause_word)
|
|
(list_lit
|
|
(sym_lit)
|
|
(sym_lit))))
|
|
(loop_clause
|
|
(with_clause
|
|
(sym_lit)
|
|
(list_lit
|
|
(sym_lit)
|
|
(sym_lit))))
|
|
(loop_clause
|
|
(condition_clause
|
|
(list_lit
|
|
(sym_lit)
|
|
(sym_lit)
|
|
(num_lit))))
|
|
(loop_clause
|
|
(termination_clause
|
|
(sym_lit)))
|
|
(loop_clause
|
|
(do_clause
|
|
(list_lit
|
|
(sym_lit)
|
|
(sym_lit)
|
|
(str_lit)
|
|
(sym_lit)
|
|
(sym_lit))))
|
|
(loop_clause
|
|
(termination_clause
|
|
(list_lit
|
|
(sym_lit)
|
|
(num_lit)))))))
|
|
|
|
================================================================================
|
|
Loop Macro (do do do)
|
|
================================================================================
|
|
|
|
(loop for a below 8
|
|
for x = (+ a)
|
|
with first-x = (+ a)
|
|
if (> x 10) return x
|
|
do (format t "~A ~A~%" x first-x) (format t "~A ~A~%" x first-x)
|
|
finally (return 3))
|
|
--------------------------------------------------------------------------------
|
|
|
|
(source
|
|
(list_lit
|
|
(loop_macro
|
|
(loop_clause
|
|
(for_clause
|
|
(sym_lit)
|
|
(for_clause_word)
|
|
(num_lit)))
|
|
(loop_clause
|
|
(for_clause
|
|
(sym_lit)
|
|
(for_clause_word)
|
|
(list_lit
|
|
(sym_lit)
|
|
(sym_lit))))
|
|
(loop_clause
|
|
(with_clause
|
|
(sym_lit)
|
|
(list_lit
|
|
(sym_lit)
|
|
(sym_lit))))
|
|
(loop_clause
|
|
(condition_clause
|
|
(list_lit
|
|
(sym_lit)
|
|
(sym_lit)
|
|
(num_lit))))
|
|
(loop_clause
|
|
(termination_clause
|
|
(sym_lit)))
|
|
(loop_clause
|
|
(do_clause
|
|
(list_lit
|
|
(sym_lit)
|
|
(sym_lit)
|
|
(str_lit)
|
|
(sym_lit)
|
|
(sym_lit))))
|
|
(loop_clause
|
|
(list_lit
|
|
(sym_lit)
|
|
(sym_lit)
|
|
(str_lit)
|
|
(sym_lit)
|
|
(sym_lit)))
|
|
(loop_clause
|
|
(termination_clause
|
|
(list_lit
|
|
(sym_lit)
|
|
(num_lit)))))))
|
|
|
|
================================================================================
|
|
Conses
|
|
================================================================================
|
|
|
|
(2 . 3)
|
|
(2 . ( 2 3))
|
|
--------------------------------------------------------------------------------
|
|
|
|
(source
|
|
(list_lit
|
|
(num_lit)
|
|
(num_lit))
|
|
(list_lit
|
|
(num_lit)
|
|
(list_lit
|
|
(num_lit)
|
|
(num_lit))))
|
|
|
|
================================================================================
|
|
Complex Numbers
|
|
================================================================================
|
|
|
|
#C(2 3)
|
|
#C
|
|
( 2 1)
|
|
|
|
#C(-2 1)
|
|
--------------------------------------------------------------------------------
|
|
|
|
(source
|
|
(complex_num_lit
|
|
(num_lit)
|
|
(num_lit))
|
|
(complex_num_lit
|
|
(num_lit)
|
|
(num_lit))
|
|
(complex_num_lit
|
|
(num_lit)
|
|
(num_lit)))
|
|
|
|
================================================================================
|
|
Reader Macros
|
|
================================================================================
|
|
#+unix(loop)
|
|
|
|
#+windows
|
|
(loop)
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
(source
|
|
(include_reader_macro
|
|
(sym_lit)
|
|
(list_lit
|
|
(loop_macro)))
|
|
(include_reader_macro
|
|
(sym_lit)
|
|
(list_lit
|
|
(loop_macro))))
|
|
|
|
================================================================================
|
|
Packages
|
|
================================================================================
|
|
|
|
foo:baz
|
|
foo.bar:baz
|
|
(foo.bar:baz)
|
|
--------------------------------------------------------------------------------
|
|
|
|
(source
|
|
(package_lit
|
|
(sym_lit)
|
|
(sym_lit))
|
|
(package_lit
|
|
(dotted_sym_lit
|
|
(sym_lit)
|
|
(sym_lit))
|
|
(sym_lit))
|
|
(list_lit
|
|
(package_lit
|
|
(dotted_sym_lit
|
|
(sym_lit)
|
|
(sym_lit))
|
|
(sym_lit))))
|
|
|
|
================================================================================
|
|
Keywords
|
|
================================================================================
|
|
|
|
:foo
|
|
|
|
:foo.bar
|
|
--------------------------------------------------------------------------------
|
|
|
|
(source
|
|
(kwd_lit
|
|
(sym_lit))
|
|
(kwd_lit
|
|
(dotted_sym_lit
|
|
(sym_lit)
|
|
(sym_lit))))
|
|
|
|
================================================================================
|
|
Functions with numbers (TODO!!!)
|
|
================================================================================
|
|
|
|
1+
|
|
1-
|
|
--------------------------------------------------------------------------------
|
|
|
|
(source
|
|
(num_lit)
|
|
(sym_lit)
|
|
(num_lit)
|
|
(sym_lit))
|
|
|
|
================================================================================
|
|
Petalisp shapes
|
|
================================================================================
|
|
|
|
(~ (* w h) ~ 128)
|
|
--------------------------------------------------------------------------------
|
|
|
|
(source
|
|
(list_lit
|
|
(sym_lit)
|
|
(list_lit
|
|
(sym_lit)
|
|
(sym_lit)
|
|
(sym_lit))
|
|
(sym_lit)
|
|
(num_lit)))
|
|
|
|
================================================================================
|
|
Chars
|
|
================================================================================
|
|
|
|
#\?
|
|
--------------------------------------------------------------------------------
|
|
|
|
(source
|
|
(char_lit))
|
|
|
|
|
|
================================================================================
|
|
Dotted literals
|
|
================================================================================
|
|
|
|
foo.bar
|
|
foo. bar
|
|
.bar
|
|
#.bar
|
|
--------------------------------------------------------------------------------
|
|
|