151 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			Factor
		
	
	
		
		
			
		
	
	
			151 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			Factor
		
	
	
|  | ! Copyright (C) 2005, 2006 Daniel Ehrenberg | ||
|  | ! See http://factorcode.org/license.txt for BSD license. | ||
|  | USING: accessors debugger io kernel prettyprint sequences | ||
|  | xml.errors xml.writer ;
 | ||
|  | IN: xml.errors.debugger | ||
|  | 
 | ||
|  | M: xml-error-at error. | ||
|  |     "XML parsing error" print
 | ||
|  |     "Line: " write dup line>> .
 | ||
|  |     "Column: " write column>> . ;
 | ||
|  | 
 | ||
|  | M: expected error. | ||
|  |     dup call-next-method | ||
|  |     "Token expected: " write dup should-be>> print
 | ||
|  |     "Token present: " write was>> print ;
 | ||
|  | 
 | ||
|  | M: unexpected-end error. | ||
|  |     call-next-method | ||
|  |     "File unexpectedly ended." print ;
 | ||
|  | 
 | ||
|  | M: missing-close error. | ||
|  |     call-next-method | ||
|  |     "Missing closing token." print ;
 | ||
|  | 
 | ||
|  | M: disallowed-char error. | ||
|  |     dup call-next-method | ||
|  |     "Disallowed character in XML document: " write
 | ||
|  |     char>> write1 nl ;
 | ||
|  | 
 | ||
|  | M: multitags error. | ||
|  |     drop "XML document contains multiple main tags" print ;
 | ||
|  | 
 | ||
|  | M: pre/post-content error. | ||
|  |     "The text string:" print
 | ||
|  |     dup string>> .
 | ||
|  |     "was used " write
 | ||
|  |     pre?>> "before" "after" ? write
 | ||
|  |     " the main tag." print ;
 | ||
|  | 
 | ||
|  | M: no-entity error. | ||
|  |     dup call-next-method | ||
|  |     "Entity does not exist: &" write thing>> write ";" print ;
 | ||
|  | 
 | ||
|  | M: mismatched error. | ||
|  |     dup call-next-method | ||
|  |     "Mismatched tags" print
 | ||
|  |     "Opening tag: <" write dup open>> print-name ">" print
 | ||
|  |     "Closing tag: </" write close>> print-name ">" print ;
 | ||
|  | 
 | ||
|  | M: unclosed error. | ||
|  |     dup call-next-method | ||
|  |     "Unclosed tags" print
 | ||
|  |     "Tags: " print
 | ||
|  |     tags>> [ "  <" write print-name ">" print ] each ;
 | ||
|  | 
 | ||
|  | M: bad-uri error. | ||
|  |     dup call-next-method | ||
|  |     "Bad URI:" print string>> . ;
 | ||
|  | 
 | ||
|  | M: nonexist-ns error. | ||
|  |     dup call-next-method | ||
|  |     "Namespace " write name>> write " has not been declared" print ;
 | ||
|  | 
 | ||
|  | M: unopened error. | ||
|  |     call-next-method | ||
|  |     "Closed an unopened tag" print ;
 | ||
|  | 
 | ||
|  | M: not-yes/no error. | ||
|  |     dup call-next-method | ||
|  |     "standalone must be either yes or no, not \"" write
 | ||
|  |     text>> write "\"." print ;
 | ||
|  | 
 | ||
|  | M: extra-attrs error. | ||
|  |     dup call-next-method | ||
|  |     "Extra attributes included in xml version declaration:" print
 | ||
|  |     attrs>> . ;
 | ||
|  | 
 | ||
|  | M: bad-version error. | ||
|  |     "XML version must be \"1.0\" or \"1.1\". Version here was " write
 | ||
|  |     num>> . ;
 | ||
|  | 
 | ||
|  | M: notags error. | ||
|  |     drop "XML document lacks a main tag" print ;
 | ||
|  | 
 | ||
|  | M: bad-prolog error. | ||
|  |     dup call-next-method | ||
|  |     "Misplaced XML prolog" print
 | ||
|  |     prolog>> write-xml nl ;
 | ||
|  | 
 | ||
|  | M: capitalized-prolog error. | ||
|  |     dup call-next-method | ||
|  |     "XML prolog name was partially or totally capitalized, using" print
 | ||
|  |     "<?" write name>> write "...?>" write
 | ||
|  |     " instead of <?xml...?>" print ;
 | ||
|  | 
 | ||
|  | M: versionless-prolog error. | ||
|  |     call-next-method | ||
|  |     "XML prolog lacks a version declaration" print ;
 | ||
|  | 
 | ||
|  | M: bad-directive error. | ||
|  |     dup call-next-method | ||
|  |     "Unknown directive:" print
 | ||
|  |     dir>> print ;
 | ||
|  | 
 | ||
|  | M: bad-decl error. | ||
|  |     call-next-method "Extra content in directive" print ;
 | ||
|  | 
 | ||
|  | M: bad-external-id error. | ||
|  |     call-next-method "Bad external ID" print ;
 | ||
|  | 
 | ||
|  | M: misplaced-directive error. | ||
|  |     dup call-next-method | ||
|  |     "Misplaced directive:" print
 | ||
|  |     dir>> write-xml nl ;
 | ||
|  | 
 | ||
|  | M: bad-name error. | ||
|  |     dup call-next-method | ||
|  |     "Invalid name: " write name>> print ;
 | ||
|  | 
 | ||
|  | M: unclosed-quote error. | ||
|  |     call-next-method | ||
|  |     "XML document ends with quote still open" print ;
 | ||
|  | 
 | ||
|  | M: quoteless-attr error. | ||
|  |     call-next-method "Attribute lacks quotes around value" print ;
 | ||
|  | 
 | ||
|  | M: attr-w/< error. | ||
|  |     call-next-method | ||
|  |     "Attribute value contains literal <" print ;
 | ||
|  | 
 | ||
|  | M: text-w/]]> error. | ||
|  |     call-next-method | ||
|  |     "Text node contains ']]>'" print ;
 | ||
|  | 
 | ||
|  | M: duplicate-attr error. | ||
|  |     call-next-method "Duplicate attribute" print ;
 | ||
|  | 
 | ||
|  | M: bad-cdata error. | ||
|  |     call-next-method "CDATA occurs before or after main tag" print ;
 | ||
|  | 
 | ||
|  | M: not-enough-characters error. | ||
|  |     call-next-method | ||
|  |     "Not enough characters" print ;
 | ||
|  | 
 | ||
|  | M: bad-doctype error. | ||
|  |     call-next-method "DTD contains invalid object" print ;
 | ||
|  | 
 | ||
|  | M: bad-encoding error. | ||
|  |     call-next-method | ||
|  |     "Encoding in XML document does not exist" print ;
 |