difftastic/test/corpus/basic.txt

897 lines
22 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
(kwd_symbol))
(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
(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
(format_specifier
(format_directive_type))
(format_specifier
(format_directive_type))
(format_specifier
(format_directive_type)))
(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
(format_specifier
(format_directive_type))
(format_specifier
(format_directive_type))
(format_specifier
(format_directive_type)))
(sym_lit)
(sym_lit))))
(loop_clause
(list_lit
(sym_lit)
(sym_lit)
(str_lit
(format_specifier
(format_directive_type))
(format_specifier
(format_directive_type))
(format_specifier
(format_directive_type)))
(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
(sym_lit)
(sym_lit))
(list_lit
(package_lit
(sym_lit)
(sym_lit))))
================================================================================
Keywords
================================================================================
:foo
:foo.bar
--------------------------------------------------------------------------------
(source
(kwd_lit
(kwd_symbol))
(kwd_lit
(kwd_symbol)))
================================================================================
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
--------------------------------------------------------------------------------
(source
(sym_lit)
(sym_lit)
(sym_lit)
(sym_lit)
(sym_lit))
================================================================================
Loop (else)
================================================================================
(loop for input-index from 0
for input-constraint across (transformation-input-mask transformation)
if (not input-constraint)
collect (transformation-input-symbol input-index)
else
collect input-constraint)
--------------------------------------------------------------------------------
(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
(condition_clause
(list_lit
(sym_lit)
(sym_lit))))
(loop_clause
(accumulation_clause
(accumulation_verb)
(list_lit
(sym_lit)
(sym_lit))))
(loop_clause
(condition_clause))
(loop_clause
(accumulation_clause
(accumulation_verb)
(sym_lit))))))
================================================================================
Multiple gaps in Loop
================================================================================
(defmethod cl-dot:graph-object-points-to
((graph any-graph) node)
(loop for edge in (graphviz-potential-edges graph node)
append
;; There must be a more graceful way to loop over sequences...
(loop for target in (coerce (graphviz-outgoing-edge-targets graph edge node) 'list)
for edge-number from 0
collect
(make-instance 'cl-dot:attributed
:attributes (graphviz-edge-attributes graph edge node target edge-number)
:object target))))
--------------------------------------------------------------------------------
(source
(list_lit
(defun
(defun_header
(defun_keyword)
(package_lit
(sym_lit)
(sym_lit))
(list_lit
(list_lit
(sym_lit)
(sym_lit))
(sym_lit)))
(list_lit
(loop_macro
(loop_clause
(for_clause
(sym_lit)
(for_clause_word)
(list_lit
(sym_lit)
(sym_lit)
(sym_lit))))
(loop_clause
(accumulation_clause
(accumulation_verb)
(comment)
(list_lit
(loop_macro
(loop_clause
(for_clause
(sym_lit)
(for_clause_word)
(list_lit
(sym_lit)
(list_lit
(sym_lit)
(sym_lit)
(sym_lit)
(sym_lit))
(quoting_lit
(sym_lit)))))
(loop_clause
(for_clause
(sym_lit)
(for_clause_word)
(num_lit)))
(loop_clause
(accumulation_clause
(accumulation_verb)
(list_lit
(sym_lit)
(quoting_lit
(package_lit
(sym_lit)
(sym_lit)))
(kwd_lit
(kwd_symbol))
(list_lit
(sym_lit)
(sym_lit)
(sym_lit)
(sym_lit)
(sym_lit)
(sym_lit))
(kwd_lit
(kwd_symbol))
(sym_lit)))))))))))))
================================================================================
Unquoting in defun
================================================================================
(defun ,foo ,arguments
)
--------------------------------------------------------------------------------
(source
(list_lit
(defun
(defun_header
(defun_keyword)
(unquoting_lit
(sym_lit))
(unquoting_lit
(sym_lit))))))
================================================================================
Weird quoting
================================================================================
(deftype worker-pool-workers ()
`simple-vector)
--------------------------------------------------------------------------------
(source
(list_lit
(sym_lit)
(sym_lit)
(list_lit)
(syn_quoting_lit
(sym_lit))))
================================================================================
Num Literals (TODO)
================================================================================
(deftype zero ()
'(member 0 0S0 -0S0 0F0 -0F0 0D0 -0D0 0L0 -0L0
#C(0S0 0S0) #C(0S0 -0S0) #C(-0S0 0S0) #C(-0S0 -0S0)
#C(0F0 0F0) #C(0F0 -0F0) #C(-0F0 0F0) #C(-0F0 -0F0)
#C(0D0 0D0) #C(0D0 -0D0) #C(-0D0 0D0) #C(-0D0 -0D0)
#C(0L0 0L0) #C(0L0 -0L0) #C(-0L0 0L0) #C(-0L0 -0L0)))
--------------------------------------------------------------------------------
(source
(ERROR
(sym_lit)
(sym_lit)
(list_lit)
(sym_lit)
(num_lit)
(num_lit)
(sym_lit)
(num_lit)
(sym_lit)
(num_lit)
(sym_lit)
(num_lit)
(sym_lit)
(num_lit)
(sym_lit)
(num_lit)
(sym_lit)
(num_lit)
(sym_lit)
(num_lit)
(sym_lit)
(num_lit)))
================================================================================
Format
================================================================================
"~S"
"~3,-4:@s"
"~,+4S"
(format T "~8,0b" 5)
(format T "~v,'0b" 8 5)
(load "~/quicklisp/setup")
2
--------------------------------------------------------------------------------
(source
(str_lit
(format_specifier
(format_directive_type)))
(str_lit
(format_specifier
(format_modifiers
(num_lit)
(num_lit))
(format_directive_type)))
(str_lit
(format_specifier
(format_directive_type
(num_lit))))
(list_lit
(sym_lit)
(sym_lit)
(str_lit
(format_specifier
(format_directive_type
(num_lit)
(num_lit))))
(num_lit))
(list_lit
(sym_lit)
(sym_lit)
(str_lit
(format_specifier
(format_prefix_parameters)
(format_directive_type
(char_lit))))
(num_lit)
(num_lit))
(list_lit
(sym_lit)
(str_lit
(format_specifier
(format_directive_type
(sym_lit)))))
(num_lit))