| 
									
										
										
										
											2008-04-27 23:12:18 -04:00
										 |  |  | ! Copyright (C) 2008 James Cash | 
					
						
							|  |  |  | ! See http://factorcode.org/license.txt for BSD license. | 
					
						
							| 
									
										
										
										
											2008-06-03 03:46:29 -04:00
										 |  |  | USING: lisp.parser tools.test peg peg.ebnf lists ;
 | 
					
						
							| 
									
										
										
										
											2008-04-27 23:12:18 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | IN: lisp.parser.tests | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | { 1234  }  [ | 
					
						
							| 
									
										
										
										
											2008-07-10 19:33:09 -04:00
										 |  |  |   "1234" "atom" \ lisp-expr rule parse | 
					
						
							| 
									
										
										
										
											2008-04-27 23:12:18 -04:00
										 |  |  | ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-05-14 02:19:21 -04:00
										 |  |  | { -42  }  [ | 
					
						
							| 
									
										
										
										
											2008-07-10 19:33:09 -04:00
										 |  |  |     "-42" "atom" \ lisp-expr rule parse | 
					
						
							| 
									
										
										
										
											2008-05-14 02:19:21 -04:00
										 |  |  | ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | { 37/52 } [ | 
					
						
							| 
									
										
										
										
											2008-07-10 19:33:09 -04:00
										 |  |  |     "37/52" "atom" \ lisp-expr rule parse | 
					
						
							| 
									
										
										
										
											2008-05-14 02:19:21 -04:00
										 |  |  | ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-04-27 23:12:18 -04:00
										 |  |  | { 123.98 } [ | 
					
						
							| 
									
										
										
										
											2008-07-10 19:33:09 -04:00
										 |  |  |     "123.98" "atom" \ lisp-expr rule parse | 
					
						
							| 
									
										
										
										
											2008-04-27 23:12:18 -04:00
										 |  |  | ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-04-29 23:10:47 -04:00
										 |  |  | { "" } [ | 
					
						
							| 
									
										
										
										
											2008-07-10 19:33:09 -04:00
										 |  |  |     "\"\"" "atom" \ lisp-expr rule parse | 
					
						
							| 
									
										
										
										
											2008-04-29 23:10:47 -04:00
										 |  |  | ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-04-27 23:12:18 -04:00
										 |  |  | { "aoeu" } [ | 
					
						
							| 
									
										
										
										
											2008-07-10 19:33:09 -04:00
										 |  |  |     "\"aoeu\"" "atom" \ lisp-expr rule parse | 
					
						
							| 
									
										
										
										
											2008-04-27 23:12:18 -04:00
										 |  |  | ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | { "aoeu\"de" } [ | 
					
						
							| 
									
										
										
										
											2008-07-10 19:33:09 -04:00
										 |  |  |     "\"aoeu\\\"de\"" "atom" \ lisp-expr rule parse | 
					
						
							| 
									
										
										
										
											2008-04-27 23:12:18 -04:00
										 |  |  | ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | { T{ lisp-symbol f "foobar" } } [ | 
					
						
							| 
									
										
										
										
											2008-07-10 19:33:09 -04:00
										 |  |  |     "foobar" "atom" \ lisp-expr rule parse | 
					
						
							| 
									
										
										
										
											2008-04-27 23:12:18 -04:00
										 |  |  | ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | { T{ lisp-symbol f "+" } } [ | 
					
						
							| 
									
										
										
										
											2008-07-10 19:33:09 -04:00
										 |  |  |     "+" "atom" \ lisp-expr rule parse | 
					
						
							| 
									
										
										
										
											2008-04-27 23:12:18 -04:00
										 |  |  | ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-06-04 00:56:06 -04:00
										 |  |  | { +nil+ } [ | 
					
						
							| 
									
										
										
										
											2008-07-10 19:33:09 -04:00
										 |  |  |     "()" lisp-expr | 
					
						
							| 
									
										
										
										
											2008-06-01 18:50:22 -04:00
										 |  |  | ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | { T{ | 
					
						
							|  |  |  |     cons | 
					
						
							|  |  |  |     f
 | 
					
						
							|  |  |  |     T{ lisp-symbol f "foo" } | 
					
						
							|  |  |  |     T{ | 
					
						
							|  |  |  |         cons | 
					
						
							|  |  |  |         f
 | 
					
						
							|  |  |  |         1
 | 
					
						
							| 
									
										
										
										
											2008-06-04 00:56:06 -04:00
										 |  |  |         T{ cons f 2 T{ cons f "aoeu" +nil+ } } | 
					
						
							| 
									
										
										
										
											2008-06-01 18:50:22 -04:00
										 |  |  |     } } } [ | 
					
						
							| 
									
										
										
										
											2008-07-10 19:33:09 -04:00
										 |  |  |     "(foo 1 2 \"aoeu\")" lisp-expr | 
					
						
							| 
									
										
										
										
											2008-06-01 18:50:22 -04:00
										 |  |  | ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | { T{ cons f
 | 
					
						
							|  |  |  |        1
 | 
					
						
							|  |  |  |        T{ cons f
 | 
					
						
							| 
									
										
										
										
											2008-06-04 00:56:06 -04:00
										 |  |  |            T{ cons f 3 T{ cons f 4 +nil+ } } | 
					
						
							|  |  |  |            T{ cons f 2 +nil+ } } | 
					
						
							| 
									
										
										
										
											2008-06-01 18:50:22 -04:00
										 |  |  |    } | 
					
						
							|  |  |  | } [ | 
					
						
							| 
									
										
										
										
											2008-07-10 19:33:09 -04:00
										 |  |  |     "(1 (3 4) 2)" lisp-expr | 
					
						
							| 
									
										
										
										
											2008-09-09 12:25:14 -04:00
										 |  |  | ] unit-test | 
					
						
							|  |  |  |      | 
					
						
							|  |  |  | { { T{ lisp-symbol { name "quote" } } { 1 2 3 } } } [ | 
					
						
							|  |  |  |     "'(1 2 3)" lisp-expr cons>seq | 
					
						
							|  |  |  | ] unit-test | 
					
						
							|  |  |  |      | 
					
						
							|  |  |  | { { T{ lisp-symbol f "quote" } T{ lisp-symbol f "foo" } } } [ | 
					
						
							|  |  |  |     "'foo" lisp-expr cons>seq | 
					
						
							| 
									
										
										
										
											2008-09-14 20:23:40 -04:00
										 |  |  | ] unit-test | 
					
						
							|  |  |  |      | 
					
						
							|  |  |  | { { 1 2 { T{ lisp-symbol { name "quote" } } { 3 4 } } 5 } } [ | 
					
						
							|  |  |  |     "(1 2 '(3 4) 5)" lisp-expr cons>seq | 
					
						
							| 
									
										
										
										
											2008-04-27 23:12:18 -04:00
										 |  |  | ] unit-test |