Also commit the syntax playground
This commit is contained in:
29
syntax.gp
Normal file
29
syntax.gp
Normal file
@@ -0,0 +1,29 @@
|
||||
|
||||
; LISP style
|
||||
(do
|
||||
(println (+ 2 3))
|
||||
(println (- 2 3))
|
||||
(println (* 2 3))
|
||||
(println (/ 2 3))
|
||||
(println "howdy")
|
||||
)
|
||||
|
||||
; let's add some stuff to our grammer...
|
||||
(add_grammer_rule :semi_forms [:form ";"] (fn* (xs) (list (first xs))))
|
||||
(add_grammer_rule :semi_forms [:form ";" :optional_WS :semi_forms ] (fn* (xs) (cons (first xs) (nth xs 3))))
|
||||
(add_grammer_rule :form ["{" :optional_WS :semi_forms :optional_WS "}"] (fn* (xs) `(do ,(nth xs 2))))
|
||||
(add_grammer_rule :form [:atom :form ] (fn* (xs) `(~(first xs) ,(nth xs 1))))
|
||||
(add_grammer_rule :form [:form :optional_WS "$" :atom :optional_WS :form] (fn* (xs) `(~(nth xs 3) ~(nth xs 0) ~(nth xs 5))))
|
||||
|
||||
; C style
|
||||
{
|
||||
println( 2 $+ 3 );
|
||||
println( 2 $- 3 );
|
||||
println( 2 $* 3 );
|
||||
println( 2 $/ 3 );
|
||||
println("howdy");
|
||||
}
|
||||
|
||||
; combo
|
||||
(println (list 1 2 4 $+ 5))
|
||||
{ println( (+ 2 3) ); }
|
||||
Reference in New Issue
Block a user