1 ! Copyright (C) 2008 James Cash
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: lisp.parser tools.test peg peg.ebnf lists ;
8 "1234" "atom" \ lisp-expr rule parse
12 "-42" "atom" \ lisp-expr rule parse
16 "37/52" "atom" \ lisp-expr rule parse
20 "123.98" "atom" \ lisp-expr rule parse
24 "\"\"" "atom" \ lisp-expr rule parse
28 "\"aoeu\"" "atom" \ lisp-expr rule parse
32 "\"aoeu\\\"de\"" "atom" \ lisp-expr rule parse
35 { T{ lisp-symbol f "foobar" } } [
36 "foobar" "atom" \ lisp-expr rule parse
39 { T{ lisp-symbol f "+" } } [
40 "+" "atom" \ lisp-expr rule parse
50 T{ lisp-symbol f "foo" }
55 T{ cons f 2 T{ cons f "aoeu" +nil+ } }
57 "(foo 1 2 \"aoeu\")" lisp-expr
63 T{ cons f 3 T{ cons f 4 +nil+ } }
67 "(1 (3 4) 2)" lisp-expr
70 { { T{ lisp-symbol { name "quote" } } { 1 2 3 } } } [
71 "'(1 2 3)" lisp-expr cons>seq
74 { { T{ lisp-symbol f "quote" } T{ lisp-symbol f "foo" } } } [
75 "'foo" lisp-expr cons>seq
78 { { 1 2 { T{ lisp-symbol { name "quote" } } { 3 4 } } 5 } } [
79 "(1 2 '(3 4) 5)" lisp-expr cons>seq