mirror of https://github.com/Wilfred/difftastic/
895 lines
22 KiB
Plaintext
895 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)))
|
|
(num_lit)
|
|
(num_lit))
|
|
(list_lit
|
|
(sym_lit)
|
|
(str_lit
|
|
(format_specifier
|
|
(format_directive_type))))
|
|
(num_lit))
|