;ELC   
;;; Compiled by nelson@oikos.local on Sat Jul 23 20:32:08 2005
;;; from file /Users/nelson/Desktop/nxml-mode-20041004/nxml-rap.el
;;; in Emacs version 22.0.50.6
;;; with all optimizations.

;;; This file uses dynamic docstrings, first added in Emacs 19.29.
(if (and (boundp 'emacs-version)
	 (< (aref emacs-version (1- (length emacs-version))) ?A)
	 (or (and (boundp 'epoch::version) epoch::version)
	     (string-lessp emacs-version "19.29")))
    (error "`nxml-rap.el' was compiled for Emacs 19.29 or later"))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


(byte-code "\300\301!\210\300\302!\207" [require xmltok nxml-util] 2)
#@54 Integer giving position following end of the prolog.
(defvar nxml-prolog-end nil (#$ . 660))
(make-variable-buffer-local 'nxml-prolog-end)
#@776 Marker giving position up to which we have scanned.
nxml-scan-end must be >= nxml-prolog-end.  Furthermore, nxml-scan-end
must not an inside position in the following sense. A position is
inside if the following character is a part of, but not the first
character of, a CDATA section, comment or processing instruction.
Furthermore all positions >= nxml-prolog-end and < nxml-scan-end that
are inside positions must have a non-nil nxml-inside property whose
value is a symbol specifying what it is inside. Any characters with a
non-nil fontified property must have position < nxml-scan-end and the
correct face. Dependent regions must also be established for any
unclosed constructs starting before nxml-scan-end.
There must be no nxml-inside properties after nxml-scan-end.
(defvar nxml-scan-end nil (#$ . 806))
(make-variable-buffer-local 'nxml-scan-end)
(defalias 'nxml-get-inside #[(pos) "\301\302\"\207" [pos get-text-property nxml-inside] 3])
(put 'nxml-get-inside 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'nxml-clear-inside #[(start end) "\302	\303#\207" [start end remove-text-properties (nxml-inside nil)] 4])
(put 'nxml-clear-inside 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'nxml-set-inside #[(start end type) "\303	\304\n$\207" [start end type put-text-property nxml-inside] 5])
(put 'nxml-set-inside 'byte-optimizer 'byte-compile-inline-expand)
#@103 Return the end of the inside region containing POS.
Return nil if the character at POS is not inside.
(defalias 'nxml-inside-end #[(pos) "\301\302\")\205 \303\302\"\206 d\207" [pos get-text-property nxml-inside next-single-property-change] 3 (#$ . 2201)])
#@105 Return the start of the inside region containing POS.
Return nil if the character at POS is not inside.
(defalias 'nxml-inside-start #[(pos) "\301\302\")\205 \303T\302\"\206 e\207" [pos get-text-property nxml-inside previous-single-property-change] 3 (#$ . 2470)])
#@182 Restore `nxml-scan-end' invariants after a change.
The change happened between START and END.
Return position after which lexical state is unchanged.
END must be > nxml-prolog-end.
(defalias 'nxml-scan-after-change #[(start end) "	Y\203 	\207b\210\306 \210`\211\307\211\310	^!\203Q \311>\203G \fT\312\313#\210*T`\314\315$\210+``	^W\204 `\316!\211\205^ \317)\204 \f\312\313#\210*\320\"\210\321 \210+	V\203\201 	\307\223\210\207" [start nxml-scan-end xmltok-dependent-regions xmltok-errors inside-remove-start end nxml-move-outside-backwards nil xmltok-forward-special (comment cdata-section processing-instruction) remove-text-properties (nxml-inside nil) put-text-property nxml-inside nxml-inside-end t nxml-clear-dependent-regions nxml-mark-parse-dependent-regions xmltok-type xmltok-start type inside-end] 6 (#$ . 2748)])
(defalias 'nxml-scan-prolog #[nil "eb\210\306\211\211\307 `e\f\f\310\f\311#\210*\312e\f\"\210\313 \210+\fW\2050 \f\306\223\207" [xmltok-dependent-regions xmltok-errors xmltok-dtd nxml-prolog-regions nxml-prolog-end end nil xmltok-forward-prolog remove-text-properties (nxml-inside nil) nxml-clear-dependent-regions nxml-mark-parse-dependent-regions start nxml-scan-end] 4])
(defalias 'nxml-adjust-start-for-dependent-regions #[(start end pre-change-length) "\306S\"\211\203H \n@\307!\310\311\"\312=\203@ \f	W\203@ \310\313\"\314@\315\f\316!\257A\"\"\203? \f)*\nA\211\204\f 	*\207" [start adjusted-start overlays overlay ostart funargs overlays-in overlay-start overlay-get category nxml-dependent nxml-funargs apply append overlay-end end pre-change-length] 10])
(defalias 'nxml-mark-parse-dependent-regions #[nil "\205 \301\302@\"\210A\211\204 \303\207" [xmltok-dependent-regions apply nxml-mark-parse-dependent-region nil] 4])
(defalias 'nxml-mark-parse-dependent-region #[(fun start end &rest args) "\305	\306\307\211%\310\n\311\312#\210\310\n\313\fB#)\207" [start end overlay fun args make-overlay nil t overlay-put category nxml-dependent nxml-funargs] 6])
(put 'nxml-dependent 'evaporate t)
(defalias 'nxml-clear-dependent-regions #[(start end) "\305	\"\211\205, \n@\306\304\"\211\307=\203# \310!X\203# \311!\210*\nA\211\204	 \312)\207" [start end overlays overlay category overlays-in overlay-get nxml-dependent overlay-start delete-overlay nil] 4])
#@322 Return the position after the token containing the char after point.
Sets up the variables `xmltok-type', `xmltok-start',
`xmltok-name-end', `xmltok-name-colon', `xmltok-attributes',
`xmltok-namespace-attributes' in the same was as does
`xmltok-forward'.  The prolog will be treated as a single token with
type `prolog'.
(defalias 'nxml-token-after #[nil "`\211	W\203 \304e	d^\202c \305 \210\306\307\")\203+ \212\310 \210\311 \210`)\202c \212\312f\313=\204= \314\315e	]\316#\203C \310 \210\202V e	X\203M 	\202T \317e!\206T eb\210\320 \203a `X\204V `))\207" [pos nxml-prolog-end xmltok-type xmltok-start prolog nxml-ensure-scan-up-to-date get-text-property nxml-inside nxml-move-outside-backwards xmltok-forward nil 60 search-backward "<" t nxml-inside-end nxml-tokenize-forward] 5 (#$ . 5138)])
#@111 Return the position after the token containing the char before point.
Sets variables like `nxml-token-after'.
(defalias 'nxml-token-before #[nil "e`U\204 \212`Sb\210\302 )\207`\303`\207" [xmltok-start xmltok-type nxml-token-after nil] 2 (#$ . 5948)])
(defalias 'nxml-tokenize-forward #[nil "\306\211\307 \203Q `\nV\203Q \310>\203E \311 \312\211\211\306\211\211\313\216T`\314\315$\210.\202L 	\203L \316 \210\n`\306\223\210*\207" [xmltok-errors xmltok-dependent-regions nxml-scan-end xmltok-type buffer-file-truename buffer-file-name nil xmltok-forward (comment cdata-section processing-instruction) buffer-modified-p t ((byte-code "\204 \301\302!\210\302\207" [#1=#:modified restore-buffer-modified-p nil] 2)) put-text-property nxml-inside nxml-mark-parse-dependent-regions deactivate-mark buffer-undo-list inhibit-modification-hooks inhibit-read-only #1# xmltok-start type end start] 7])
#@122 Move point to first character of the containing special thing.
Leave point unmoved if it is not inside anything special.
(defalias 'nxml-move-outside-backwards #[nil "\302`!\211\205! Sb\210`\303	\304\")\205! \305\306``\303	\304\")#)\207" [start pos nxml-inside-start get-text-property nxml-inside error "Char before inside-start at %s had nxml-inside property %s"] 7 (#$ . 6880)])
(defalias 'nxml-ensure-scan-up-to-date #[nil "`	W\205_ \212	b\210\306\211\307!\203R \f\310>\203J \311 \312\211\211\306\211\211\313\216T`\f\314\315$\210.`W\204 `\316	\"\210\317 \210	\306\223+)\207" [pos nxml-scan-end xmltok-dependent-regions xmltok-errors xmltok-type buffer-file-truename nil xmltok-forward-special (comment processing-instruction cdata-section) buffer-modified-p t ((byte-code "\204 \301\302!\210\302\207" [#1=#:modified restore-buffer-modified-p nil] 2)) put-text-property nxml-inside nxml-clear-dependent-regions nxml-mark-parse-dependent-regions buffer-file-name deactivate-mark buffer-undo-list inhibit-modification-hooks inhibit-read-only #1# xmltok-start type end start] 7])
#@416 Scan forward from FROM over a single balanced element.
Point must between tokens.  Return the position of the end of the tag
that ends the element. `xmltok-start' will contain the position of the
start of the tag. If UP is non-nil, then scan past end-tag of element
containing point.  If no element is found, return nil.  If a
well-formedness error prevents scanning, signal an nxml-scan-error.
Point is not moved.
(defalias 'nxml-scan-element-forward #[(from &optional up) "\205 \306\307\212b\210\310 \204# \n:\203\261 \311\n\211A@)\312\"\210\202\261 \313=\2034 \314 \nBB\202\f \315=\203l \n\203\261 \n:\204H `\202\261 \n@\316 \230\204\\ \311\317\\\320\n@#\202\256 \n\211AA)\211\204\f `\202\261 \321>\203{ \n\204\f `\202\261 \322=\203\237 \n\203\261 \n:\204\217 `\202\261 \n\211AA)\211\204\f `\202\261 \323=\203\255 \311\324\"\202\256 \306\204\f )	*\207" [up found open-tags from x xmltok-type t nil nxml-tokenize-forward nxml-scan-error "Start-tag has no end-tag" start-tag xmltok-start-tag-qname end-tag xmltok-end-tag-qname 2 "Mismatched end-tag; expected `%s'" (empty-element partial-empty-element) partial-end-tag partial-start-tag "Missing `>'" xmltok-start] 5 (#$ . 8010)])
#@478 Scan backward from FROM over a single balanced element.
Point must between tokens.  Return the position of the end of the tag
that starts the element. `xmltok-start' will contain the position of
the start of the tag.  If UP is non-nil, then scan past start-tag of
element containing point.  If BOUND is non-nil, then don't scan back
past BOUND.  If no element is found, return nil.  If a well-formedness
error prevents scanning, signal an nxml-scan-error.  Point is not
moved.
(defalias 'nxml-scan-element-backward #[(from &optional up bound) "\205 \306\307\211\212\fb\210`W\204# \310\311\206 \312]\306#\204; :\203\311 \204\311 \313\211A@)\314\"\210\202\311 \315 \210\212\316 \210`)\317=\203W \320 BB\202 \321=\203\225 \203\311 :\204l \n\202\311 @\203\204 @\322 \230\204\204 \313T\323@#\202\306 \211AA)\211\204 \n\202\311 \324>\203\245 \204 \n\202\311 \325=\203\266 \307BB\202 \326=\203\305 \313\327\"\202\306 \306\204 )	+\207" [up found token-end open-tags from nxml-prolog-end t nil search-backward "<" 0 nxml-scan-error "End-tag has no start-tag" nxml-move-outside-backwards nxml-tokenize-forward end-tag xmltok-end-tag-qname start-tag xmltok-start-tag-qname "Mismatched start-tag; expected `%s'" (empty-element partial-empty-element) partial-end-tag partial-start-tag "Missing `>'" bound x xmltok-type xmltok-start] 5 (#$ . 9226)])
(defalias 'nxml-scan-error #[(&rest args) "\301\302\"\207" [args signal nxml-scan-error] 3])
(byte-code "\300\301\302\303#\210\300\301\304\305#\210\306\307!\207" [put nxml-scan-error error-conditions (error nxml-error nxml-scan-error) error-message "Scan over element that is not well-formed" provide nxml-rap] 4)
