68 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Factor
		
	
	
			
		
		
	
	
			68 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Factor
		
	
	
! Copyright (C) 2008 James Cash
 | 
						|
! See http://factorcode.org/license.txt for BSD license.
 | 
						|
USING: lisp.parser tools.test peg peg.ebnf lists ;
 | 
						|
 | 
						|
IN: lisp.parser.tests
 | 
						|
 | 
						|
{ 1234  }  [
 | 
						|
  "1234" "atom" \ lisp-expr rule parse
 | 
						|
] unit-test
 | 
						|
 | 
						|
{ -42  }  [
 | 
						|
    "-42" "atom" \ lisp-expr rule parse
 | 
						|
] unit-test
 | 
						|
 | 
						|
{ 37/52 } [
 | 
						|
    "37/52" "atom" \ lisp-expr rule parse
 | 
						|
] unit-test
 | 
						|
 | 
						|
{ 123.98 } [
 | 
						|
    "123.98" "atom" \ lisp-expr rule parse
 | 
						|
] unit-test
 | 
						|
 | 
						|
{ "" } [
 | 
						|
    "\"\"" "atom" \ lisp-expr rule parse
 | 
						|
] unit-test
 | 
						|
 | 
						|
{ "aoeu" } [
 | 
						|
    "\"aoeu\"" "atom" \ lisp-expr rule parse
 | 
						|
] unit-test
 | 
						|
 | 
						|
{ "aoeu\"de" } [
 | 
						|
    "\"aoeu\\\"de\"" "atom" \ lisp-expr rule parse
 | 
						|
] unit-test
 | 
						|
 | 
						|
{ T{ lisp-symbol f "foobar" } } [
 | 
						|
    "foobar" "atom" \ lisp-expr rule parse
 | 
						|
] unit-test
 | 
						|
 | 
						|
{ T{ lisp-symbol f "+" } } [
 | 
						|
    "+" "atom" \ lisp-expr rule parse
 | 
						|
] unit-test
 | 
						|
 | 
						|
{ +nil+ } [
 | 
						|
    "()" lisp-expr
 | 
						|
] unit-test
 | 
						|
 | 
						|
{ T{
 | 
						|
    cons
 | 
						|
    f
 | 
						|
    T{ lisp-symbol f "foo" }
 | 
						|
    T{
 | 
						|
        cons
 | 
						|
        f
 | 
						|
        1
 | 
						|
        T{ cons f 2 T{ cons f "aoeu" +nil+ } }
 | 
						|
    } } } [
 | 
						|
    "(foo 1 2 \"aoeu\")" lisp-expr
 | 
						|
] unit-test
 | 
						|
 | 
						|
{ T{ cons f
 | 
						|
       1
 | 
						|
       T{ cons f
 | 
						|
           T{ cons f 3 T{ cons f 4 +nil+ } }
 | 
						|
           T{ cons f 2 +nil+ } }
 | 
						|
   }
 | 
						|
} [
 | 
						|
    "(1 (3 4) 2)" lisp-expr
 | 
						|
] unit-test |