
(provide (quote symbol))

(defvar sym-completion-buffer nil "\
Buffer containing user-entered symbols for identifier completion.")

(make-variable-buffer-local (quote sym-completion-buffer))

(defvar sym-end-display "<<" "\
*Display marker after string to be created in symbol mode.")

(defvar sym-end-marker (make-marker) "\
Marker at end of symbol.")

(make-variable-buffer-local (quote sym-end-marker))

(setq-default sym-end-marker (make-marker))

(defvar sym-original nil "\
Text string originally present, to be replaced in symbol-mode.")

(make-variable-buffer-local (quote sym-original))

(defvar sym-start-display ">>" "\
*Display marker before string to be created in symbol mode.")

(defvar sym-start nil "\
Position of start of symbol in buffer.")

(make-variable-buffer-local (quote sym-start))

(defvar symbol-mode-map nil "\
Key-map for Symbol Mode.")

(defun symbol-mode nil "\
Major mode for inserting symbols in place.  Like any other mode,
    except that newline terminates it, and the following commands
    are available:
      TAB  attempt to complete last identifier typed
    Meant to be called from sym-read-string, which initializes." (interactive) (byte-code "Ãˆ† Ä ˆÅ!ˆÆ‰ˆÇ‰(‡" [symbol-mode-map major-mode mode-name nil sym-set-local-keys use-local-map symbol-mode "Symbol"] 4))

(defun add-symbol nil "\
Add the symbol before point to the template-mode completion list." (interactive) (byte-code "ÁˆÁÂÃ!ˆ`‰ˆÂÄ!ˆÅÆ`\"!)‡" [start nil forward-word -1 1 sym-enter-id buffer-substring] 6))

(defun expand-symbol nil "\
Expand the symbol before point using the template-mode completion list." (interactive) (byte-code "ÂˆÂÂÃÄ!ˆ`‰ˆÃÅ!ˆÆÇ`\"!‰ˆÈÅ!ˆÉ	!*‡" [start result nil forward-word -1 1 sym-complete-id buffer-substring backward-kill-word insert-before-markers] 7))

(defun sym-abort-recursive-edit nil "\
Catch abort and repair entry." (interactive) (byte-code "ÂˆÃ ˆÄ	!W… ÅÄ	!\"ˆÆ ˆÇ (‡" [sym-start sym-end-marker nil sym-reposition-point marker-position delete-region sym-reset-display abort-recursive-edit] 7))

(defun sym-backward-char nil "\
Move point left one character, if possible." (interactive) (byte-code "ÁˆÂ ˆ`Vƒ ÃÄ!‚ Å (‡" [sym-start nil sym-reposition-point backward-char 1 ding] 4))

(defun sym-backward-kill-word nil "\
Delete the previous word in symbol-mode." (interactive) (byte-code "ÁˆÂ ˆ`Vƒ ÃÄ!ˆÅ ‚ Æ (‡" [sym-start nil sym-reposition-point backward-kill-word 1 sym-reset-display ding] 5))

(defun sym-backward-word nil "\
Move point left one word, if possible." (interactive) (byte-code "ÁˆÂ ˆ`Vƒ ÃÄ!‚ Å (‡" [sym-start nil sym-reposition-point backward-word 1 ding] 4))

(defun sym-complete-id (string) "\
Expand the identifier STRING using the completion table." (byte-code "ÅÅÆÇ
\"ˆÈ ‰ˆqˆebˆÉÊ
PdÄ#…. Ë ˆ`‰ˆÌ ˆÍ`\"‰ˆ	qˆÎ!ˆÆÏ!ˆ
*‡" [start text-buffer string sym-completion-buffer t nil message "Expanding %s..." buffer-name re-search-forward "^" beginning-of-line end-of-line buffer-substring bury-buffer "Expanding done."] 9))

(defun sym-create-display nil "\
Create the displayed string (if necessary) in symbol-mode." (byte-code "Å	!U…! Æ
G!ˆÇ!ˆÇ!ˆÈ!ˆÉ	`\"ˆ`‰(‡" [sym-start sym-end-marker sym-original sym-start-display sym-end-display marker-position delete-char insert-before-markers search-backward set-marker] 8))

(defun sym-delete-backward-char nil "\
Delete the previous character created in symbol-mode." (interactive) (byte-code "ÁˆÂ ˆ`Vƒ ÃÄ!ˆÅ ‚ Æ (‡" [sym-start nil sym-reposition-point delete-backward-char 1 sym-reset-display ding] 5))

(defun sym-delete-char nil "\
Delete the following character created in symbol-mode." (interactive) (byte-code "ÁˆÂ ˆ`Ã!Wƒ ÄÅ!ˆÆ ‚ Ç (‡" [sym-end-marker nil sym-reposition-point marker-position delete-char 1 sym-reset-display ding] 6))

(defun sym-enter-id (string) "\
Enter STRING into the identifier completion table." (interactive) (byte-code "ÈˆÈÈÈÈÈËÌ\"ˆÍ ‰ˆqˆÎ ˆ`‰ˆÏÈ!ˆÐ`\"‰ˆÊ‰	ˆ	…< Ñ\"…k m?ƒ[ ÒÓ!ˆ`‰ˆÏÈ!ˆÐ`\"‰‚g È‰	ˆo?…g Ô ˆ‚3 ˆ	ƒ„ Õ\"?…� ÒÈ!ˆÖ×\"‚† cˆqˆØ!ˆËÙ\"-‡" [text-buffer prefix suffix found end-line string sym-completion-buffer start nil more t message "Adding %s..." buffer-name beginning-of-buffer end-of-line buffer-substring string-lessp beginning-of-line 2 newline string-equal insert "
" bury-buffer "Adding Done."] 17))

(defun sym-expand-last-id nil "\
Try to expand last identifier created in symbol-mode." (interactive) (byte-code "ÃˆÃÃÄ ˆ`
VƒI `‰ˆÅÆ!ˆ`W…  ÇÈ!ˆ`
W…) 
bˆÉ`\"‰ˆ	GÊV…F Ë	G!ˆÌ	!‰ˆÍ	!‚K Î *‡" [end-id string sym-start nil sym-reposition-point re-search-backward "\\W" forward-char 1 buffer-substring 0 delete-char sym-complete-id insert-before-markers ding] 9))

(defun sym-forward-char nil "\
Move point right one character, if possible." (interactive) (byte-code "ÁˆÂ ˆ`Ã!Wƒ ÄÅ!‚ Æ (‡" [sym-end-marker nil sym-reposition-point marker-position forward-char 1 ding] 5))

(defun sym-forward-word nil "\
Move point right one word, if possible." (interactive) (byte-code "ÁˆÂ ˆ`Ã!Wƒ ÄÅ!‚ Æ (‡" [sym-end-marker nil sym-reposition-point marker-position forward-word 1 ding] 5))

(defun sym-illegal-command nil "\
Catch all illegal symbol-mode commands." (interactive) (byte-code "ÀˆÁ ˆÂÃ!(‡" [nil ding message "That command is not allowed in symbol-mode."] 3))

(defun sym-kill-line nil "\
Kill the current symbol line in symbol-mode" (interactive) (byte-code "ÁˆÂ ˆ`Ã!Wƒ Ä`Ã!\"ˆÅ ‚ Æ (‡" [sym-end-marker nil sym-reposition-point marker-position delete-region sym-reset-display ding] 7))

(defun sym-kill-word nil "\
Delete the following word in symbol-mode." (interactive) (byte-code "ÁˆÂ ˆ`Ã!Wƒ ÄÅ!ˆÆ ‚ Ç (‡" [sym-end-marker nil sym-reposition-point marker-position kill-word 1 sym-reset-display ding] 6))

(defun sym-position-end nil "\
Position point at end of symbol line." (interactive) (byte-code "ÁˆÂ!b(‡" [sym-end-marker nil marker-position] 2))

(defun sym-position-start nil "\
Position point at start of symbol line." (interactive) (byte-code "Áˆb(‡" [sym-start nil] 1))

(defun sym-read-string (prompt original) "\
Read characters and insert them at point.  First arg PROMPT is a
    message to prompt the user.  Second arg ORIGINAL is an initial
    string to use if all input is deleted." (byte-code "ÌÌÌÌÌ`‰ˆÑ ‰ˆÒ`\"ˆ‰ˆ	‰ˆ
‰ˆÓ ‰ˆÔ ˆÕÖ\"ˆ‰ˆ×ŽÌ‰ˆ?…t Ø ˆÙÚ!\"‰ˆÛ ˆÜÍ!…` ƒm Ý\"‰‚p Î‰ˆ‚C )ˆ-‡" [save-mode save-name save-keymap sym-input sym-valid-response sym-start sym-end-marker sym-original original major-mode mode-name prompt nil sym-check-validity-hook t sym-start-display sym-end-display make-marker set-marker current-local-map symbol-mode message "%s" ((byte-code "É	!W… bˆÊ
G!ˆÉ	!bˆËG!ˆ‰ˆ‰ˆÌ!‡" [sym-start sym-end-marker sym-start-display sym-end-display major-mode save-mode mode-name save-name save-keymap marker-position delete-backward-char delete-char use-local-map] 6)) recursive-edit buffer-substring marker-position sym-reposition-point boundp funcall] 14))

(defun sym-reposition-point nil "\
Reposition point within the symbol line, if necessary." (interactive) (byte-code "Âˆ`W† `Ã	!V… Ã	!b(‡" [sym-start sym-end-marker nil marker-position] 3))

(defun sym-reset-display nil "\
Reset the displayed string in symbol-mode." (byte-code "Å	!U…\" Æ
G!ˆÇG!ˆÈ!ˆÉ!ˆÊ	`\"ˆ`‰(‡" [sym-start sym-end-marker sym-start-display sym-end-display sym-original marker-position delete-backward-char delete-char insert-before-markers search-backward set-marker] 8))

(defun sym-self-insert-command nil "\
Insert this character in symbol-mode." (interactive) (byte-code "ÃˆÃÄ	!‰ˆÅ ˆÆ ˆÇ!ˆÈÉ	!U… 
…\" Ê )‡" [sym-char last-input-char blink-matching-paren nil char-to-string sym-reposition-point sym-create-display insert-before-markers 41 char-syntax blink-matching-open] 7))

(defun sym-set-local-keys nil "\
Create key-map for Symbol Mode." (byte-code "ÃÄ ‰ˆ‰ˆÅ	Â\"ˆÆ	ÇÈ#ˆÆ	ÉÊ#ˆÆ	ËÌ#ˆÆ	ÍÎ#ˆÆ	ÏÐ#ˆÆ	ÑÒ#ˆÆ	ÓÔ#ˆÆ	ÕÖ#ˆÆ	×Ø#ˆÆ	ÙÚ#ˆÆ	ÛØ#ˆÆ	ÜÝ#ˆÆ	ÞÝ#ˆÆ	ßÝ#ˆÆ	àÝ#ˆÆ	áâ#ˆÆ	ãÝ#ˆÆ	äÝ#ˆÆ	åÝ#ˆÆ	æÝ#ˆÆ	çÝ#ˆÆ	èÝ#ˆÆ	éÝ#ˆÆ	êÝ#ˆÆ	ëÝ#ˆÆ	ìÝ#ˆÆ	íÝ#ˆÆ	îÝ#ˆÆ	ïð#ˆÆ	ñØ#ˆÆ	òó#ˆÆ	ôÝ#ˆÆ	õÝ#ˆÆ	öÝ#ˆÆ	÷Ý#ˆÆ	øÝ#ˆÆ	ùÝ#ˆÆ	úÝ#ˆÆ	ûÝ#ˆÆ	üÝ#ˆÆ	ýÝ#ˆÆ	þÝ#ˆÆ	ÿÊ#ˆÆ	�@ Ð#ˆÆ	�A Ý#ˆÆ	�B ð#ˆÆ	�C �D #ˆÆ	�E ó#ˆÆ	�F Ý#ˆÆ	�G Ý#ˆÆ	�H Ý#ˆÆ	�I Ý#ˆÆ	�J Ý#ˆÆ	�K Ý#ˆÆ	�L Ý#ˆÆ	�M Ý#ˆÆ	�N �O #ˆÆ	�P �Q #ˆÆ	�R �Q #ˆÆ	�S �Q #ˆÆ	�T �Q #ˆÆ	�U �Q #ˆÆ	�V �Q #ˆÆ	�W �Q #ˆÆ	�X �Q #ˆÆ	�Y �Q #ˆÆ	�Z �Q #ˆÆ	�[ �Q #ˆÆ	�\\ �Q #ˆÆ	�] �Q #ˆÆ	�^ �Q #ˆÆ	�_ �Q #ˆÆ	�` �Q #ˆÆ	�a �Q #ˆÆ	�b �Q #ˆÆ	�c �Q #ˆÆ	�d �Q #ˆÆ	�e �Q #ˆÆ	�f �Q #ˆÆ	�g �Q #ˆÆ	�h �Q #ˆÆ	�i �Q #ˆÆ	�j �Q #ˆÆ	�k �Q #ˆÆ	�l �Q #ˆÆ	�m �Q #ˆÆ	�n �Q #ˆÆ	�o �Q #ˆÆ	�p �Q #ˆÆ	�q �Q #ˆÆ	�r �Q #ˆÆ	�s �Q #ˆÆ	�t �Q #ˆÆ	�u �Q #ˆÆ	�v �Q #ˆÆ	�w �Q #ˆÆ	�x �Q #ˆÆ	�y �Q #ˆÆ	�z �Q #ˆÆ	�{ �Q #ˆÆ	�| �Q #ˆÆ	�} �Q #ˆÆ	�~ �Q #ˆÆ	� �Q #ˆÆ	�€ �Q #ˆÆ	�� �Q #ˆÆ	�‚ �Q #ˆÆ	�ƒ �Q #ˆÆ	�„ �Q #ˆÆ	�… �Q #ˆÆ	�† �Q #ˆÆ	�‡ �Q #ˆÆ	�ˆ �Q #ˆÆ	�‰ �Q #ˆÆ	�Š �Q #ˆÆ	�‹ �Q #ˆÆ	�Œ �Q #ˆÆ	�� �Q #ˆÆ	�Ž �Q #ˆÆ	�� �Q #ˆÆ	�� �Q #ˆÆ	�‘ �Q #ˆÆ	�’ �Q #ˆÆ	�“ �Q #ˆÆ	�” �Q #ˆÆ	�• �Q #ˆÆ	�– �Q #ˆÆ	�— �Q #ˆÆ	�˜ �Q #ˆÆ	�™ �Q #ˆÆ	�š �Q #ˆÆ	�› �Q #ˆÆ	�œ �Q #ˆÆ	�� �Q #ˆÆ	�ž �Q #ˆÆ	�Ÿ �Q #ˆÆ	�  �Q #ˆÆ	�¡ �Q #ˆÆ	�¢ �Q #ˆÆ	�£ �Q #ˆÆ	�¤ �Q #ˆÆ	�¥ �Q #ˆÆ	�¦ �Q #ˆÆ	�§ �Q #ˆÆ	�¨ �Q #ˆÆ	�© �Q #ˆÆ	�ª �Q #ˆÆ	�« �Q #ˆÆ	�¬ �Q #ˆÆ	�­ �Q #ˆÆ	�® �Q #ˆÆ	�¯ �Q #)‡" [empty-keymap symbol-mode-map t nil make-keymap suppress-keymap define-key "" sym-delete-backward-char "" sym-position-start "" sym-backward-char "" sym-delete-char "" sym-position-end "" sym-forward-char "" sym-abort-recursive-edit "	" sym-expand-last-id "
" exit-recursive-edit "" sym-kill-line "" "" sym-illegal-command "" "" "" "" sym-transpose-chars "" "" "" "	" "" "" "" "" "g" "i" "k" "" "" sym-backward-word "" "" sym-forward-word "" "" "" "" "" "" " " "%" "(" ")" ";" "<" ">" "^" "b" "d" sym-kill-word "f" "g" "i" "j" "k" "q" "t" "y" "z" "" sym-backward-kill-word " " sym-self-insert-command "!" "\"" "#" "$" "%" "&" "'" "(" ")" "*" "+" "," "-" "." "/" "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" ":" ";" "<" "=" ">" "?" "@" "A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M" "N" "O" "P" "Q" "R" "S" "T" "U" "V" "W" "X" "Y" "Z" "[" "\\" "]" "^" "_" "`" "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n" "o" "p" "q" "r" "s" "t" "u" "v" "w" "x" "y" "z" "{" "|" "}" "~"] 157))

(defun sym-transpose-chars nil "\
Interchange characters arond point, moving forward one character.
    If at end of symbol line, the previous two characters are exchanged." (interactive) (byte-code "ÃˆÃÄ ˆ`	Vƒ< `Å
!Wƒ ÆÇ!‚9 `	TVƒ7 Å
!‰ˆÈÇ!ˆÆÇ!ˆÉ
\"‚9 Ê ‚> Ê )‡" [save-position sym-start sym-end-marker nil sym-reposition-point marker-position transpose-chars 1 backward-char set-marker ding] 10))
