| 
									
										
										
										
											2009-02-20 21:40:17 -05:00
										 |  |  | ! Copyright (C) 2009 Doug Coleman. | 
					
						
							|  |  |  | ! See http://factorcode.org/license.txt for BSD license. | 
					
						
							| 
									
										
										
										
											2009-02-20 23:59:01 -05:00
										 |  |  | USING: accessors combinators db kernel sequences peg.ebnf | 
					
						
							|  |  |  | strings db.errors ;
 | 
					
						
							| 
									
										
										
										
											2009-02-20 21:40:17 -05:00
										 |  |  | IN: db.errors.sqlite | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-04-06 23:00:08 -04:00
										 |  |  | TUPLE: unparsed-sqlite-error error ;
 | 
					
						
							|  |  |  | C: <unparsed-sqlite-error> unparsed-sqlite-error | 
					
						
							| 
									
										
										
										
											2009-02-20 21:40:17 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  | SINGLETONS: table-exists table-missing ;
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | : sqlite-table-error ( table message -- error )
 | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         { table-exists [ <sql-table-exists> ] } | 
					
						
							|  |  |  |     } case ;
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | EBNF: parse-sqlite-sql-error | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | TableMessage = " already exists" => [[ table-exists ]] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | SqliteError =
 | 
					
						
							|  |  |  |     "table " (!(TableMessage).)+:table TableMessage:message | 
					
						
							|  |  |  |       => [[ table >string message sqlite-table-error ]] | 
					
						
							|  |  |  |     | "no such table: " .+:table | 
					
						
							|  |  |  |       => [[ table >string <sql-table-missing> ]] | 
					
						
							| 
									
										
										
										
											2009-04-06 23:00:08 -04:00
										 |  |  |     | .*:error | 
					
						
							|  |  |  |       => [[ error >string <unparsed-sqlite-error> ]] | 
					
						
							| 
									
										
										
										
											2009-02-20 21:40:17 -05:00
										 |  |  | ;EBNF |