home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Source Code 1993 July / THE_SOURCE_CODE_CD_ROM.iso / msdos / winemacs / lisp / modes / old-cxx-.elc < prev    next >
Encoding:
Text File  |  1993-06-08  |  15.8 KB  |  163 lines

  1. ;;; compiled by @win386 on Sat Mar 13 14:32:29 1993
  2. ;;; from file c:/src/lucid-19.4/lisp/modes/old-cxx-.el
  3. ;;; emacs version 19.3 Lucid.
  4. ;;; bytecomp version 2.08; 27-aug-92.
  5. ;;; optimization is on.
  6. ;;; this file uses opcodes which do not exist in Emacs18.
  7.  
  8. (if (and (boundp 'emacs-version)
  9.      (or (and (boundp 'epoch::version) epoch::version)
  10.          (string-lessp emacs-version "19")))
  11.     (error "This file was compiled for Emacs19."))
  12.  
  13. (defvar c++-mode-abbrev-table nil "\
  14. Abbrev table in use in C++-mode buffers.")
  15. (define-abbrev-table 'c++-mode-abbrev-table nil)
  16. (defvar c++-mode-map nil "\
  17. Keymap used in C++ mode.")
  18. (byte-code "¼▌┴ ┬├─#ê┬┼╞#ê┬╟╞#ê┬╚╔#ê┬╩╦#ê┬╠═#ê┬╬╧#ê┬╨╤#ê┬╥╙#ê┬╘╒#ê┬╓╫#ê┬╪┘#ê┬┌█#ê┬▄▌#ê┬▐▀#ê┴ç" [c++-mode-map make-sparse-keymap define-key "\n" reindent-then-newline-and-indent "{" electric-c++-brace "}" ";" electric-c++-semi "" mark-c++-function "" indent-c++-exp "" backward-delete-char-untabify "    " c++-indent-command "    " c++-insert-header "" c++-macroize-region "" c++-comment-region "" c++-uncomment-region "" c++-beginning-of-defun "" c++-end-of-defun "" c++-indent-defun] 4)
  19. (defvar c++-mode-syntax-table nil "\
  20. Syntax table in use in C++-mode buffers.")
  21. (byte-code "¼û┴\n!├─┼#ê├╞╟#ê├╚╔#ê┴ç" [c++-mode-syntax-table copy-syntax-table c-mode-syntax-table modify-syntax-entry 47 ". 12" 10 ">" 39 "."] 4)
  22. (defvar c++-continued-member-init-offset nil "\
  23. *Extra indent for continuation lines of member inits; NIL means to align
  24. with previous initializations rather than with the colon on the first line.")
  25. (defvar c++-member-init-indent 0 "\
  26. *Indentation level of member initializations in function declarations.")
  27. (defvar c++-friend-offset -4 "\
  28. *Offset of C++ friend class declarations relative to member declarations.")
  29. (defvar c++-electric-colon t "\
  30. *If t, colon is an electric terminator.")
  31. (defvar c++-empty-arglist-indent nil "\
  32. *Indicates how far to indent an line following an empty argument
  33. list.  Nil indicates to just after the paren.")
  34. (fset 'c++-mode #[nil "└ ê┴\n!ê├ !ê┼╞!ê╟╔\n╦╠
  35. ╬╨╥╘┼╪!┘PLê┼█!Lê┼▄!▌Lê┼▐!▌Lê┼▀!αLêßΓ!ê#¡àΣ\nσµ#ç" [kill-all-local-variables use-local-map c++-mode-map set-syntax-table c++-mode-syntax-table make-local-variable indent-line-function c++-mode major-mode "C++" mode-name c++-indent-line "// " comment-start "" comment-end 32 comment-column "/\\*+ *\\|// *" comment-start-skip c++-comment-indent comment-indent-hook c++-mode-abbrev-table local-abbrev-table paragraph-start "^$\\|" page-delimiter paragraph-separate paragraph-ignore-fill-prefix t require-final-newline parse-sexp-ignore-comments nil run-hooks c++-mode-hook c++-electric-colon define-key ":" electric-c++-terminator] 4 "\
  36. Major mode for editing C++ code.  Very much like editing C code.
  37. Expression and list commands understand all C++ brackets.
  38. Tab at left margin indents for C++ code
  39. Comments are delimited with /* ... */ {or with // ... <newline>}
  40. Paragraphs are separated by blank lines only.
  41. Delete converts tabs to spaces as it moves back.
  42. \\{c++-mode-map}
  43. Variables controlling indentation style:
  44.  c-tab-always-indent
  45.     Non-nil means TAB in C mode should always reindent the current line,
  46.     regardless of where in the line point is when the TAB command is used.
  47.     Default is t.
  48.  c-auto-newline
  49.     Non-nil means automatically newline before and after braces,
  50.     and after colons and semicolons, inserted in C code.
  51.  c-indent-level
  52.     Indentation of C statements within surrounding block.
  53.     The surrounding block's indentation is the indentation
  54.     of the line on which the open-brace appears.
  55.  c-continued-statement-offset
  56.     Extra indentation given to a substatement, such as the
  57.     then-clause of an if or body of a while.
  58.  c-continued-brace-offset
  59.     Extra indentation given to a brace that starts a substatement.
  60.     This is in addition to c-continued-statement-offset.
  61.  c-brace-offset
  62.     Extra indentation for line if it starts with an open brace.
  63.  c-brace-imaginary-offset
  64.     An open brace following other text is treated as if it were
  65.     this far to the right of the start of its line.
  66.  c-argdecl-indent
  67.     Indentation level of declarations of C function arguments.
  68.  c-label-offset
  69.     Extra indentation for line that is a label, or case or ``default:'', or
  70.     ``public:'' or ``private:'', or ``protected:''.
  71.  c++-electric-colon
  72.     If non-nil at invocation of c++-mode (t is the default) colon electricly
  73.     indents.
  74.  c++-empty-arglist-indent
  75.     If non-nil, a function declaration or invocation which ends a line with a
  76.     left paren is indented this many extra spaces, instead of flush with the
  77.     left paren.
  78.  c++-friend-offset
  79.     Offset of C++ friend class declarations relative to member declarations.
  80.  c++-member-init-indent
  81.     Indentation level of member initializations in function declarations,
  82.     if they are on a separate line beginning with a colon.
  83.  c++-continued-member-init-offset
  84.     Extra indentation for continuation lines of member initializations; NIL
  85.     means to align with previous initializations rather than with the colon.
  86.  
  87. Settings for K&R, BSD, and Stroustrup indentation styles are
  88.   c-indent-level                5    8    4
  89.   c-continued-statement-offset  5    8    4
  90.   c-continued-brace-offset                0
  91.   c-brace-offset               -5   -8    0
  92.   c-brace-imaginary-offset                0
  93.   c-argdecl-indent              0    8    4
  94.   c-label-offset               -5   -8   -4
  95.   c++-empty-arglist-indent                4
  96.   c++-friend-offset                       0
  97.  
  98. Turning on C++ mode calls the value of the variable c++-mode-hook with
  99. no args,if that value is non-nil." nil])
  100. (fset 'c++-comment-indent #[nil "└┴!½é┬çè├─xêi┬U½â┬¬éiT`╞yê╟
  101. ╔#½ç┬öbêi¬é\n)])ç" [looking-at "^\\(/\\*\\|//\\)" 0 "     " nil cur-pt -1 re-search-forward comment-start-skip t comment-column] 5])
  102. (fset 'electric-c++-brace #[(arg) "└\n¼╢l½│è├└xên)¼ë ½º┼ ê╞ êcê┼ ê ½è╞ ê`╚Z┼ êè    ½ä    Tbê╔╩!ê)    ½îè    bê╦╠\n!!)¬à╦╠\n!!)ç" [nil insertpos arg "     " c-auto-newline c++-indent-line newline last-command-char 2 delete-char -1 self-insert-command prefix-numeric-value] 3 "\
  103. Insert character and correct line's indentation." "P"])
  104. (fset 'electric-c++-semi #[(arg) "½ä┴\n!ç├─\n!!ç" [c-auto-newline electric-c++-terminator arg self-insert-command prefix-numeric-value] 3 "\
  105. Insert character and correct line's indentation." "P"])
  106. (fset 'electric-c++-terminator #[(arg) "└` ¼√l½°è─yê┼└wêg╞U«╜╚=½¥╔╩!¼ÿè╦vê┼└wê`    W)½èè╦ê╔╠!)«Ü═ ê╬`    \"╨8«è╤8«ä╥8))¼½cê╙ ê½ô╒ ¼Å╓ ë`S└ôê╫ ê╪ êè\n½ä\nTbê┘┌!ê)\n½îè\nbê█▄ !!)¬à█▄ !!*ç" [nil end insertpos arg 0 "     " 35 last-command-char 58 looking-at "case[     ]" 1 ":" beginning-of-defun parse-partial-sexp pps 3 4 5 c++-indent-line c-auto-newline c-inside-parens-p make-marker newline c-indent-line delete-char -1 self-insert-command prefix-numeric-value] 4 "\
  107. Insert character and correct line's indentation." "P"])
  108. (fset 'c++-indent-command #[(&optional whole-exp) "½¡┴ ┬ëè½â╟yê`╚╔!ê` bê╔yê`) V¡å╩
  109. ╦$+ç¼îè╠┬xên)¼â═ ç┴ ç" [whole-exp c++-indent-line nil end beg shift-amt c-tab-always-indent 0 forward-sexp 1 indent-code-rigidly "#" "     " insert-tab] 5 "\
  110. Indent current line as C++ code, or in some cases insert a tab character.
  111. If c-tab-always-indent is non-nil (the default), always indent current line.
  112. Otherwise, indent the current line only if point is at the left margin
  113. or in the line's indentation; otherwise insert a tab.
  114.  
  115. A numeric argument, regardless of its value,
  116. means indent rigidly all the lines of the expression starting after point
  117. so that this line becomes properly indented.
  118. The relative indentation among the lines of the expression are preserved." "P"])
  119. (fset 'c++-indent-line #[nil "└┴!┴ëëd`Z╟yê`┴=½ç╚ é▒╔=½ç╩ é▒╦╠!½à╟¬∙═┴wê<½à@╦╬!½ë\\¬▌╦╨!¼É╦╤!½ûè╥╙!ê╦╘!)½ï╙\\]¬╜╦╒!½É╦╓!¼ïè╫ ê╚ )¬¿╦╪!½ë\\¬Üg┌U½ëZ¬îg▄U½ç\\═┴wêiZë╟U½Äd\nZ`V½¢d\nZbê¬ö
  120. `|êjêd\nZ`V½àd\nZbê -ç" [calculate-c++-indent nil pos case-fold-search shift-amt beg indent 0 current-indentation t calculate-c-indent-within-comment looking-at "[     ]*#" "     " "\\(default\\|public\\|private\\|protected\\):" c-label-offset "case\\b" "[A-Za-z]" forward-sexp 1 ":[^:]" "else\\b" "else\\s_" c-backward-to-start-of-if "friend[     ]class[     ]" c++-friend-offset 125 c-indent-level 123 c-brace-offset] 7 "\
  121. Indent current line as C++ code.
  122. Return the amount the indentation changed by."])
  123. (fset 'calculate-c++-indent #[(&optional parse-start) "è└yê`┴ëë½åbê¬â╟ ê`
  124. W½Å`╚`
  125. └#ëA@¬l╔ 8¼à╩ 8½å╩ 8ém\n¼φ
  126. bê╦┴wêg╠U½ä└ém═«üe!êh╬U½û
  127. bê╦┴wêg╧U½àémémh╥U½ä╙╘!êh╒U½ä└ém└yê╦┴wêg╧U½ù½ê╫ \\ém╘uê╦┴wêiém╫ ém\nf╠U¼│½º┘ 8½ïè\nTbê┌█!)¼ù\nbê└yê╦┴wê`\\\nT^bêiém\nTbêiém
  128. bê═\n!êh▄>¼è▌\n!êi\\¬±\nbêè╘uê▀┴wê┌αßΓπR!½⌐gΣU½à╘yê¬i┌σ!½êµτ┴Φ#ê¬\\┌Θ!½à╘yê¬RΩδ┴Φ#ê¬J`
  129. W¡üi)«½n½ì,└U½ç-\\¬é,╦┴xên½â└¬é.h╬=½ä∩≡!ê╫ \\\\-ç" [0 nil containing-sexp state case-fold-search indent-point parse-start beginning-of-defun parse-partial-sexp 3 4 "     " 123 c++-backward-to-noncomment 41 58 c++-member-init-indent c-argdecl-indent 59 backward-char 1 125 c++-continued-member-init-offset current-indentation c++-empty-arglist-indent 2 looking-at "\\( \\|    \\)*[^/\n]" (nil 44 59 125 58 123) c-backward-to-start-of-continued-exp c-continued-statement-offset "     \n" "#\\|/\\*\\|//" "\\|case[     ]" "\\|[a-zA-Z0-9_$]*:[^:]" "\\|friend[     ]class[     ]" 35 "/\\*" search-forward "*/" move "//\\|friend[     ]class[     ]" re-search-forward ":[^:]" c-indent-level c-brace-offset c-brace-imaginary-offset forward-sexp -1] 6 "\
  130. Return appropriate indentation for current line as C++ code.
  131. In usual case returns an integer: the column to indent to.
  132. Returns nil if line starts inside a string, t if in a comment."])
  133. (fset 'c++-backward-to-noncomment #[(lim) "└ë    ?¡╔├ xê`` ┼\\Y½Æè╞uê╟╚!)½ê╔╩ ╦#ê¬]╔╠═  ]╦#½å╬`\n\"½M╧yê╨└wê╟╤!½ç` Xë¬;╥\nbê¬3*ç" [nil stop opoint "     \n
  134. " lim 2 -2 looking-at "\\*/" search-backward "/*" move "//" point-bol within-string-p 0 "     " "#" t] 5])
  135. (fset 'indent-c++-exp #[nil "└C`C└ëëëëëëëëë`┴    \n  
  136. è╨╤!ê)è└ m?à≥ ?à≥\n└¼╬m½å╘ë ¼┼    ╒`└ê`└ë    %ë    @    AA@½É    AA@┴Y½ç    AA@╓8½â╫ ê╪    8½à╤yê¬4╘ë½2\n┴X½â╘  ¼┘    8V½ÆAASë¬g\nU¼â└\nW½ö└B└BTë¬h@¼æ    A@«çè╨┌!ê`)áê╤yê█└wêlä2@½╘@┴Y½═@f▄U¼ç@¬╒è▌▐!g▄U▀ !êhα>¼ùß@!ê\"i ½ä#¬ü┴\\\\¬Æ
  137. ½èΣ !êσ ¬à@)¬ùµ@¡ä@[!''ëáê)▌Φ!½ç)Z▌Ω!¼É▌δ!½öè╨╤!ê▌∞!)½ë╤-\\]▌ε!½ç/\\g≡U½ç)Zg▄U½ç1\\iU¼Ég≥U¼ï`┴yê`|êjê▌3!ä2⌠3è└ê`)╘#â2⌡ ê┴yêé2.ç" [nil 0 next-depth opoint at-brace at-else last-sexp this-indent ostate state inner-loop-done outer-loop-done restart case-fold-search contain-stack indent-stack forward-sexp 1 last-depth innerloop-done t parse-partial-sexp 4 c++-indent-line 3 6 -1 "     " 123 looking-at "else\\W" c++-backward-to-noncomment (nil 44 59 125 58 123) c-backward-to-start-of-continued-exp c-continued-statement-offset c-continued-brace-offset c-backward-to-start-of-if current-indentation calculate-c++-indent val "\\(public\\|private\\|protected\\):" c-indent-level "case[     ]" "[A-Za-z]" ":[^:]" c-label-offset "friend[     ]class[     ]" c++-friend-offset 125 c-brace-offset 35 comment-start-skip re-search-forward indent-for-comment] 15 "\
  138. Indent each line of the C++ grouping following point." nil])
  139. (fset 'fill-C-comment #[nil "è┬yêè├ è┼ê`)╞#ê┬òbê╟ ê)╚!½å╔╩!ê¬u╦╩!ê╠═!ê╬┼!ê╧╨!ê    ë*ç" [fill-prefix save 0 re-search-forward comment-start-skip nil t set-fill-prefix looking-at previous-line 1 next-line insert-string "\n" fill-paragraph delete-char -1] 4 nil nil])
  140. (fset 'point-bol #[nil "è└yê`)ç" [0] 1 "\
  141. Returns the value of the point at the beginning of the current
  142. line."])
  143. (fset 'c++-insert-header #[nil "èebê└┴┬├▒)ç" ["// " "This may look like C code, but it is really " "-*- C++ -*-" "\n\n"] 4 "\
  144. Insert header denoting C++ code at top of buffer." nil])
  145. (fset 'within-string-p #[(point1 point2) "    {├─\n\"┼ª╞U)?ç" [point1 point2 s count-char-in-string 34 2 0] 3 "\
  146. Returns true if number of double quotes between two points is odd."])
  147. (fset 'count-char-in-string #[(c s) "└ë     GW½ö\n     H U½â┼¬ü└\\    Të¬g\n*ç" [0 pos count s c 1] 4])
  148. (defvar c++-default-macroize-column 78 "\
  149. Place to insert backslashes.")
  150. (fset 'c++-macroize-region #[(from to arg) "èbê┴yê┬e`\"è bê┬e`\")ë W¡æ╞┴V!ê╚╔!ê
  151. Të¬k+ç" [from 0 count-lines to to-line line backslashify-current-line arg next-line 1] 5 "\
  152. Insert backslashes at end of every line in region.  Useful for defining cpp
  153. macros.  If called with negative argument, will remove trailing backslashes,
  154. so that indentation will work right." "r\np"])
  155. (fset 'backslashify-current-line #[(doit) "└ê    ½┤è┬uê├─!)?¡╖i
  156. Y½â╞cçi
  157. X½ê╟cê╚ê¬s╔┬!êi
  158. W½ê╩cê╚ê¬s╦cç┬uê├─!¡å╠╚xê═ ç" [1 doit -1 looking-at "\\\\" c++-default-macroize-column " \\" "    " nil delete-char " " "\\" "     " kill-line] 2])
  159. (fset 'c++-comment-region #[nil "└ ┴=½à┬├!¬é└ ` W½â`¬ü ` V½â`¬ü ╟!è
  160. bê`╔!W¡É╩yê cê╩yê╠═!ê¬h-ç" [mark nil error "Mark is not set!" m start end copy-marker mymark marker-position 0 comment-start next-line 1] 3 "\
  161. Comment out all lines in a region between mark and current point by
  162. inserting \"// \" (comment-start)in front of each line." nil])
  163. (fset 'c++-uncomment-region #[nil "└ ┴=½à┬├!¬é└ ` W½â`¬ü ` V½â`¬ü ╟!    G\n╦    ! è
  164. bê`═!W¡Ö╬yê╧╨    P!½à╤\n!ê╬yê╥╙!ê¬_.ç" [mark nil error "Mark is not set!" m start end copy-marker mymark comment-start len string-to-char char marker-position 0 looking-at " *" delete-char next-line 1] 3 "\
  165. Uncomment all lines in region between mark and current point by deleting
  166. the leading \"// \" from each line, if any." nil])
  167. (defvar c++-match-header-strongly nil "\
  168. *If NIL, use c++-defun-header-weak to identify beginning of definitions,
  169. if nonNIL, use c++-defun-header-strong")
  170. (defvar c++-defun-header-strong-struct-equivs "\\(class\\|struct\\|enum\\)" "\
  171. Regexp to match names of structure declaration blocks in C++")
  172. (defconst c++-defun-header-strong (byte-code "└┬─╞ ╟
  173. ╚░    ╩ ╠ ═Q╧╚Që╤P╙P╞╒╞    ╟    ╚ë░\n╫╞╟    ┘    ╟    ╚░    █╞    ▄▌▐    ▀α╟ß░\"╞#Σ    ░%µΣ╞%╟%τ╟%Φ╚░)Ω+╞+∞Rë-)\"░.█∩    ╚░0#    0±α░2≤.╟2╚░.ç" ["\\(\\w\\|_\\)+" id "[---+*/%^&|~!=<>]\\|[---+*/%^&|<>=!]=\\|<<=?\\|>>=?" op-sym1 "&&\\|||\\|\\+\\+\\|--\\|()\\|\\[\\]" op-sym2 "\\(" "\\|" "\\)" op-sym "[^\\*]*\\(\\*+[^/\\*][^\\*]*\\)*" middle "/\\*" "\\*+/" c-comment "\\(\\s \\|\n\\|//.*$\\|" wh "*" wh-opt "+" wh-nec "operator" oper "([^():]*)" dcl-list "::" func-name "\\(:" "(.*\\()" "," "\\)\\)*" "(.*)" "{" "{\\)" inits c++-defun-header-strong-struct-equivs "\\)?" type-name "\\(const" "\\*+" "&" type "\\(inline\\|virtual\\|overload\\|auto\\|static\\)" modifier "\\)*" modifiers func-header "\\(public\\|private\\)?" inherit "?" cs-header "^\\("] 17) "\
  174. Strongly-defined regexp to match beginning of structure or
  175. function definition.")
  176. (defconst c++-defun-header-weak "^{\\|^[_a-zA-Z].*{" "\
  177. Weakly-defined regexp to match beginning of structure or function definition.")
  178. (byte-code "└┴Mê┬├Mç" [c++-beginning-of-defun #[(arg) "½â    ¬ü\n ┼U¼ê ┼V½åo½â╞¬Φ╟ !¼┬`╚╔╞╩#¡ü`╦ ╞╩#¡é┼ö 
  179. 
  180. ½₧ ½Ü W½ô
  181. V½î bê ╧U¡ê╨¬àbê╞+«í╟ !½Äo¼ï ┼W½â╧¬ü╤uê╦ ╞╩ «ü╧$¡â┼öb)ç" [c++-match-header-strongly c++-defun-header-strong c++-defun-header-weak c++-defun-header arg 0 nil looking-at search-forward "{" move re-search-backward beg-pos open-pos curr-pos 1 t -1] 6 nil "p"] c++-end-of-defun #[(arg) "½â    ¬ü\nm¡â ┼V?¡╨ ┼V½ê╞ !½â╟uê`╔ ┼W½î m½â┼¬ü╟Z[¬ü !ê ┼W½âo¼í╩ ╦╠#½ë═uê╬ ê╟yê`U½ï╩ ╦╠#½ä╧╟!ê)╨)ç" [c++-match-header-strongly c++-defun-header-strong c++-defun-header-weak c++-defun-header arg 0 looking-at 1 pos c++-beginning-of-defun re-search-forward nil move -1 forward-sexp c++-end-of-defun t] 4 nil "p"]] 2)
  182. (fset 'c++-indent-defun #[nil "`┴┬!ê├yê`┼┬!ê` X½î╞ ê╟┬!ê├yê¬o)b)ç" [restore c++-end-of-defun 1 0 end c++-beginning-of-defun c++-indent-line next-line] 2 "\
  183. Indents the current function def, struct or class decl." nil])
  184. (fset 'mark-c++-function #[nil "└`!ê┴┬!ê└`!ê├┬!ê─ ê┼ ç" [push-mark c++-end-of-defun 1 c++-beginning-of-defun backward-paragraph zmacs-activate-region] 2 "\
  185. Put mark at end of C function, point at beginning." nil])
  186.