diff --git a/components/milkshake/README.md b/components/milkshake/README.md new file mode 100644 index 0000000..47bcb52 --- /dev/null +++ b/components/milkshake/README.md @@ -0,0 +1,42 @@ +# Milkshake + +![milkshake](./milkshake.png) + +A tool for slurping S-expressions. They are quite tasty. + +## Grammar + +Milkshake supports a slightly expanded and idiosyncratic set of S-expression datums. +Milkshake owes much to but is not quite Clojure's EDN. + +```lisp + +;; A comment. Any number of semicolons will do. + +() ; A list +'() ; A quoted list +[] ; Another kind of list +#[] ; A vector (maybe just a list) +{'foo 1} ; A mapping +#{1 2 3} ; A set + +nil ; A symbol +/ ; Another symbol +~ ; An unusual symbol +# ; Another unusual symbol + +/^\s+/ ; A regex pattern + +"foo" ; A string + +1 ; A number +1e3 ; Another number ++3.1415 ; Another form of a floating number +1,000.00 ; A US-format number +1.000,00 ; A more common number format +1_000.00 ; A compromise form for a number + +`() ; A quasiquoted expression +`~() ; An unqoted expression +`~@() ; A spliced expression +``` diff --git a/components/milkshake/milkshake.png b/components/milkshake/milkshake.png new file mode 100644 index 0000000..567ea96 Binary files /dev/null and b/components/milkshake/milkshake.png differ