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 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 ;
 |