;ELC ;;; Compiled ;;; in Emacs version 28.0.50 ;;; with all optimizations. (byte-code "\301\302!\210\301\303!\210\301\304!\210\305\306\307\310#\210\306\236\204\311\312C\"\305\313\307\310#\210\313\236\2040\311\314C\"\301\207" [minor-mode-alist require ess-mode ess-custom ess-sas-a put ess-transcript-minor-mode permanent-local t append (ess-transcript-minor-mode " ESStr") ess-listing-minor-mode (ess-listing-minor-mode " ESSlst")] 4) #@188 Toggle Ess-Transcript minor mode. With arg, turn Ess-Transcript minor mode on if arg is positive, off otherwise. See the command `ess-transcript-mode' for more information on this mode. (defalias 'ess-transcript-minor-mode #[(&optional arg) "\204 ?\202\303!\304V\305 \210\306\211\207" [arg ess-transcript-minor-mode mode-line-process prefix-numeric-value 0 force-mode-line-update (" [" ess-local-process-name "]")] 2 (#$ . 457) "P"]) #@181 Toggle Ess-Listing minor mode. With arg, turn Ess-Listing minor mode on if arg is positive, off otherwise. Ess-Listing mode is used solely to place an indicator on the mode line. (defalias 'ess-listing-minor-mode #[(&optional arg) "\204 ?\202\303!\304V\305 \210\306\211\207" [arg ess-listing-minor-mode mode-line-process prefix-numeric-value 0 force-mode-line-update (" [" ess-local-process-name "]")] 2 (#$ . 907) "P"]) #@75 Automatically turn on `SAS-log-mode' and `SAS-listing-mode' when enabled. (custom-declare-variable 'ess-automatic-sas-log-or-lst-mode t '(#$ . 1343) :type 'boolean :group 'ess-sas) #@163 Return t when when a SAS log file is detected. A SAS log is defined as having: 1. The first line matches "^1[ ]*The SAS System" 2. The file name ends in .log.  (defalias 'ess-SAS-log-mode-p #[nil "\205\212eb\210\301\302!)\205\303 \203\304\305\303 \"\207\306\207" [ess-automatic-sas-log-or-lst-mode looking-at "1[ ]*The SAS System" buffer-file-name string-match ".log$" t] 3 (#$ . 1531)]) #@177 Return t when SAS listing file is detected. A .lst file is a SAS listing file when: 1. The file name ends in .lst 2. The corresponding log file exists and is a SAS log file.  (defalias 'ess-SAS-listing-mode-p #[nil "\205E\305 \211\205 \306 \307\310\311#)\266\203\205 \312\306\313 #\211\205D\314 !\205D\315\316\310\"r\fq\210\317\216\320 \307\321\322$\210eb\210\323\324!+*\207" [ess-automatic-sas-log-or-lst-mode bfn inhibit-changing-match-data log #1=#:temp-buffer buffer-file-name "\\.lst$" nil t string-match replace-regexp-in-string ".log" file-exists-p generate-new-buffer " *temp*" #[nil "\301!\205 \302!\207" [#1# buffer-name kill-buffer] 2] insert-file-contents 0 200 looking-at "1[ ]*The SAS System"] 8 (#$ . 1936)]) (byte-code "\300\301\302\"\210\300\301\303\"\207" [add-to-list magic-mode-alist (ess-SAS-log-mode-p . SAS-log-mode) (ess-SAS-listing-mode-p . SAS-listing-mode)] 3) #@32 `ess-transcript-mode' for SAS. (defalias 'SAS-log-mode #[nil "\302 \210\303\304\305!\210\306\307 \207" [mode-name buffer-read-only SAS-mode "ESS[LOG]" ess-transcript-minor-mode 1 t buffer-disable-undo] 2 (#$ . 2848) nil]) #@40 contains modified local keymap for SAS (defvar sas-mode-local-map nil (#$ . 3078)) #@63 Fundamental mode with `ess-listing-minor-mode' and read-only. (defalias 'SAS-listing-mode #[nil "\303 \210\304\305\306!\210\307 !\210\310\311 \207" [mode-name sas-mode-local-map buffer-read-only fundamental-mode "ESS[LST]" ess-listing-minor-mode 1 use-local-map t buffer-disable-undo] 2 (#$ . 3167) nil]) (byte-code "\300\301M\210\302\301M\210\303\301M\210\304\305M\210\306\307M\210\310\311\312\313\314\315\316\317&\210\310\320\321\322\314\315\316\323&\210\310\324\325\326\314\315\316\327&\210\310\330\331\332\314\315\316\333&\210\310\334\325\335\314\315\316\327&\210\310\336\325\337\314\315\316\327&\210\310\340\331\341\314\315\316\342&\210\310\343\331\344\316\345\314\315&\210\310\346\347\350\314\315\316\317&\210\310\351\331\352\314\315\316\327&\210\310\353\354\355\314\315\316\323&\210\310\356\331\357\314\315\316\360&\210\310\361\362\363\314\315\316\323&\210\310\364\365\366\314\315\316\323&\210\310\367\325\370\314\315\316\327&\207" [sas-log-mode SAS-log-mode SAS-transcript-mode sas-transcript-mode sas-mode SAS-mode sas-listing-mode SAS-listing-mode custom-declare-variable sas-indent-width 4 "*Amount to indent sas statements." :group ess-sas :type integer sas-indent-ignore-comment "*" "*Comments that start with this string are ignored in indentation." string sas-require-confirmation t "*Require confirmation when revisiting a modified sas-output file." boolean sas-pre-run-hook nil "Hook to execute prior to running SAS via `submit-sas'." hook sas-notify "*Beep and display message when job is done." sas-error-notify "*If `sas-notify' t, indicate errors in log file upon completion." sas-get-options "Options to be passed to SAS in sas-get-dataset." (choice (const nil) string) sas-get-options-history "History list of Options passed to SAS in sas-get-dataset." (choice (const nil) (string)) sas-page-number-max-line 3 "*Number of lines from the page break, to search for the page\nnumber." sas-notify-popup "*If this and sas-notify are t), popup a window when SAS job ends." sas-tmp-libname "_tmp_" "*Libname to use for sas-get-dataset." sas-file-name "*The name of the current sas file." (choice (const nil) file) sas-white-chars " \n\f" "This does NOT escape blanks (RMH, 2000/03/20)." sas-comment-chars (concat sas-white-chars ";") "Doc?" ess-sas-run-regexp-opt "If you do not want to run regexp-opt, then set to nil."] 8) (defvar sas-buffer-name nil) (defvar sas-file-root nil) (defvar sas-submitable nil) (defvar sas-dataset nil) #@28 Syntax table for SAS code. (defvar SAS-syntax-table nil (#$ . 5641)) (byte-code "\204m\301 \302\303\304#\210\302\305\304#\210\302\306\304#\210\302\307\304#\210\302\310\311#\210\302\312\304#\210\302\313\304#\210\302\314\311#\210\302\315\304#\210\302\316\317#\210\302\320\321#\210\302\322\304#\210\302\323\311#\210\302\312\304#\210\302\313\304#\210\302\324\325#\210\302\326\311#\210\327\330!\207" [SAS-syntax-table make-syntax-table modify-syntax-entry 92 "." 43 45 61 37 "w" 60 62 38 124 39 "\"" 42 ". 23" 59 95 47 ". 14" 46 require font-lock] 4) #@27 Font Lock regexs for SAS. (defvar SAS-mode-font-lock-defaults (byte-code "\203\343\305 B\306 B\307 B\310 B\311 B\312 B\313 B\314 B\315 B\316 B\317 B\320 B\321 B\322 B\323 B\324 B\325 B\326 B\327 B\330 B\331 B\332 B\333 B\334 B\335 B\336 B\337 B\340 B\341 B\342 B\343 B\344 B\345 B\346 B\347 B\350\nB\351\nB\352\nB\353\nB\354\nB\355\nB\356\nB\357\nB\360 B\361 B\354 B\362 B\363 B\364 B\365 B\366\nB\367 B\370 B\371 B\372 B\373 B\374 B\375 B\376 B\377\fB\201@\fB\201A\nB\201B\nB\201C\fB\201D\nB\201E\nB\201F B\201G B\257D\207\306\fB\201H\nB\201I B\201J B\201K\fB\201L\fB\201M\fB\201N\fB\201O\fB\201P\fB\201Q\nB\201R\nB\201S\nB\201T\nB\201U\nB\201V B\201W B\201X B\257\207" [ess-sas-run-regexp-opt font-lock-comment-face font-lock-keyword-face font-lock-function-name-face font-lock-constant-face "^NOTE [0-9]+-[0-9]+: Line generated by the invoked macro" "^NOTE: .*$" "^ [^ @].*[.]$" "^ [a-z].*[a-z][ ]?$" "^ Engine:[ ]+V.+$" "^ Physical Name:[ ]+.+$" "^ \\(cpu\\|real\\) time[ ]+[0-9].*$" "^ decimal may be shifted by the" "^NOTE: The infile " "^NOTE: 1 record was read from the infile " "^NOTE: [1-9][0-9]* records were read from the infile " "^ Filename=.*,$" "^ File Name=.*,$" "^ File $" "^ Name=.*,$" "^ File List=(" "^ List=(" "^ Owner Name=.*,$" "^ Access Permission=.*,$" "^ Last Modified=.*,?$" "^ File Size (bytes)=[0-9]+$" "^ Pipe command=" "^NOTE: The file " "^NOTE: 1 record was written to the file " "^NOTE: [1-9][0-9]* records were written to the file " "^NOTE: PROC LOGISTIC is modeling the probability that" "^NOTE: PROC GENMOD is modeling the probability that" "^1[ ]+The SAS System.*$" "^\f.*$" "[*][*][*] ANNOTATE macros are now available [*][*][*]" "For further information on ANNOTATE macros, enter," "\\(or \\)?%HELPANO.*$" "^Local Variables:$" "^End:$" "^MPRINT([_A-Z0-9]+)" "^ERROR\\( [0-9]+-[0-9]+\\)?: .*$" "^ [^ @].*\\([.][ ]?[ ]?\\|[,a-z][ ]\\)$" "^ [^ @].*\\([.][ ]?[ ]?\\|[,a-z][ ]\\)$" "^ [^ @].*\\([.][ ]?[ ]?\\|[,a-z][ ]\\)$" "^ [^ @].*\\([.][ ]?[ ]?\\|[,a-z][ ]\\)$" "^ a format name." "^ where a numeric operand is required. The condition was: " "[ ][_]+$" "^WARNING\\( [0-9]+-[0-9]+\\)?: .*$" "^ [^ @].*\\([.][ ]?[ ]?\\|[,a-z][ ]\\)$" "^ [^ @].*\\([.][ ]?[ ]?\\|[,a-z][ ]\\)$" "^ [^ @].*\\([.][ ]?[ ]?\\|[,a-z][ ]\\)$" "\\(^[0-9]*\\|[:;!]\\)[ ]*%?\\*[^;/][^;]*;" "\\" "\\<\\(?:\\(?:cards4?\\|datalines4?\\|endsas\\|finish\\|lines4?\\|quit\\|run\\);\\)" "\\<\\(?:\\(?:end\\|l\\(?:ist\\|ostcard\\)\\|page\\|stop\\);\\)" "\\<\\(?:\\(?:compress\\|in\\|out\\|sortedby\\)=\\)" "\\" "\\<\\(a\\(?:bort\\|nd\\|rray\\|ssess\\|ttrib\\)\\|b\\(?:a\\(?:seline\\|yes\\)\\|etween\\|ivar\\|lock\\|ubble2?\\|y\\)\\|c\\(?:h\\(?:ange\\|oro\\)\\|lass\\|ont\\(?:ains\\|rast\\)\\)\\|d\\(?:elete\\|isplay\\|onut\\|rop\\|[mo]\\)\\|e\\(?:lse\\|rror\\|xc\\(?:\\(?:hang\\|lud\\)e\\)\\)\\|f\\(?:cs\\|ile\\(?:name\\)?\\|o\\(?:otnote\\(?:10\\|[1-9]\\)?\\|rmat\\)\\|req\\)\\|g\\(?:o\\(?:ptions\\|to\\)\\|rid\\)\\|h\\(?:azardratio\\|bar\\(?:3d\\)?\\)\\|i\\(?:n\\(?:dex\\|f\\(?:ile\\|ormat\\)\\|put\\)\\|[df]\\)\\|keep\\|l\\(?:abel\\|ength\\|i\\(?:bname\\|ke\\|nk\\)\\|smeans\\)\\|m\\(?:anova\\|e\\(?:ans\\|rge\\)\\|issing\\|od\\(?:el\\|ify\\)\\)\\|n\\(?:ot\\|ull\\)\\|o\\(?:ds\\|ptions\\|therwise\\|utput\\)\\|p\\(?:a\\(?:geby\\|rms\\)\\|ie\\(?:3d\\)?\\|lot2?\\|rism\\|ut\\)\\|r\\(?:andom\\|e\\(?:name\\|peated\\|tain\\)\\)\\|s\\(?:a\\(?:[mv]e\\)\\|catter\\|e\\(?:\\(?:lec\\)?t\\)\\|kip\\|t\\(?:ar\\|rata\\)\\|u\\(?:m\\(?:by\\)?\\|rface\\)\\)\\|t\\(?:ables?\\|est\\|hen\\|i\\(?:me\\|tle\\(?:10\\|[1-9]\\)?\\)\\|o\\)\\|u\\(?:nivar\\|pdate\\)\\|v\\(?:a\\(?:lue\\|r\\)\\|bar\\(?:3d\\)?\\)\\|w\\(?:eight\\|here\\|i\\(?:ndow\\|th\\)\\)\\)\\>" "\\<\\(?:axis\\|legend\\|pattern\\|symbol\\)\\([1-9][0-9]?\\)?\\>" "%[a-z_][a-z_0-9]*[(;]" "\\<\\(a\\(?:bs\\|iry\\|ll\\(?:comb\\|perm\\)?\\|ny\\|pply\\|r\\(?:cos\\|masim\\|sin\\)\\|t\\(?:an\\|tr[cn]\\)\\)\\|b\\(?:and\\|etainv\\|in\\|l\\(?:ankstr\\|ock\\|shift\\)\\|not\\|or\\|r\\(?:anks\\|shift\\)\\|spline\\|tran\\|xor\\|yte\\)\\|c\\(?:all \\(?:execute\\|label\\|modulei?\\|poke\\|r\\(?:an\\(?:bin\\|cau\\|exp\\|gam\\|nor\\|poi\\|t\\(?:bl\\|ri\\)\\|uni\\)\\|x\\(?:change\\|free\\|substr\\)\\)\\|s\\(?:et\\|treaminit\\|y\\(?:mput\\|stem\\)\\)\\)\\|df\\|e\\(?:il\\|xist\\)\\|h\\(?:ar\\|oose\\)\\|inv\\|lose\\|nonct\\|o\\(?:l\\(?:late\\|vec\\)\\|mp\\(?:bl\\|ress\\)\\|n\\(?:cat\\|tents\\|v\\(?:exit\\|xp?\\)\\)\\|rr\\(?:2cov\\)?\\|sh\\|unt\\(?:miss\\|n\\|unique\\)\\|v\\(?:2corr\\|lag\\)\\|[lsv]\\)\\|s\\(?:hape\\|s\\)\\|u\\(?:prod\\|sum\\)\\|v\\(?:exhull\\)?\\)\\|d\\(?:a\\(?:cc\\(?:db\\(?:sl\\)?\\|s\\(?:l\\|yd\\)\\|tab\\)\\|iry\\|t\\(?:asets\\|e\\(?:jul\\|part\\|time\\)?\\)\\|y\\)\\|close\\|e\\(?:p\\(?:db\\(?:sl\\)?\\|s\\(?:l\\|yd\\)\\|tab\\)\\|quote\\|signf?\\|t\\)\\|hms\\|i\\(?:ag\\|gamma\\|mension\\|stance\\|[fm]\\)\\|num\\|o\\(?:pen\\)?\\|read\\|uration\\)\\|e\\(?:chelon\\|igv\\(?:al\\|ec\\)\\|rfc?\\|x\\(?:ist\\|p\\(?:andgrid\\|matrix\\)?\\)\\)\\|f\\(?:close\\|etchobs\\|ftc?\\|i\\(?:leexist\\|n\\(?:fo\\|v\\)\\|p\\(?:namel?\\|state\\)\\)\\|loor\\|nonct\\|o\\(?:pen\\|rward\\)\\|put\\|root\\|u\\(?:ll\\|zz\\)\\|write\\)\\|g\\(?:a\\(?:m\\(?:inv\\|ma\\)\\|setup\\)\\|e\\(?:omean\\|t\\(?:option\\|var[cn]\\)\\)\\|inv\\)\\|h\\(?:a\\(?:damard\\|lf\\|nkel\\|rmean\\)\\|bound\\|dir\\|ermite\\|ms\\|o\\(?:mogen\\|ur\\)\\)\\|i\\(?:bessel\\|fftc?\\|mporttablefromr\\|n\\(?:dex[cw]?\\|put[cn]?\\|sert\\|t\\(?:ck\\|nx\\|rr\\)\\|vupdt\\|[tv]\\)?\\|rr\\|s\\(?:empty\\|skipped\\)\\)\\|j\\(?:bessel\\|root\\|uldate\\)\\|kurtosis\\|l\\(?:a\\(?:g\\|mbertw\\)\\|bound\\|e\\(?:ft\\|ngth\\)\\|gamma\\|i\\(?:b\\(?:name\\|ref\\)\\|st\\(?:get\\(?:allnames\\|item\\|name\\|subitem\\)\\|index\\|len\\)\\)\\|o\\(?:g\\(?:10\\|2\\|absdet\\|[cps]df\\)\\|wcase\\|[cg]\\)\\)\\|m\\(?:a\\(?:gic\\|halanobis\\|[dx]\\)\\|dy\\|ean\\|in\\(?:ute\\)?\\|o\\(?:d\\(?:ulei[cn]\\)?\\|nth\\|rt\\)\\)\\|n\\(?:ame\\|col\\|dx2sub\\|etpv\\|leng\\|miss\\|orm\\(?:al\\)?\\|pv\\|row\\|um\\)\\|o\\(?:p\\(?:en\\|scal\\|t\\(?:[gs]etn\\)\\)\\|r\\(?:\\(?:dina\\|po\\)l\\)\\)\\|p\\(?:a\\(?:\\(?:lett\\|\\(?:rent\\|th\\)nam\\)e\\)\\|df\\|o\\(?:isson\\|lyroot\\)\\|ro\\(?:b\\(?:b\\(?:eta\\|nml\\)\\|chi\\|gam\\|hypr\\|it\\|n\\(?:egb\\|orm\\)\\|[ft]\\)\\|d\\(?:uct\\)?\\)\\|ut[cn]?\\|v\\)\\|q\\(?:tr\\|u\\(?:\\(?:a\\(?:[nr]til\\)\\|ot\\)e\\)\\)\\|r\\(?:a\\(?:n\\(?:bin\\|c\\(?:au\\|omb\\)\\|d\\(?:dirichlet\\|fun\\|m\\(?:ultinomial\\|vt\\)\\|normal\\|wishart\\)\\|exp\\|g\\(?:am\\|e\\)\\|ktie\\|nor\\|p\\(?:er[km]\\|oi\\)\\|t\\(?:bl\\|ri\\)\\|uni\\|[dk]\\)\\|t\\(?:es\\|io\\)\\)\\|e\\(?:move\\|peat\\|\\(?:solv\\|vers\\)e\\)\\|ight\\|o\\(?:ot\\|und\\|w\\(?:catc?\\|vec\\)?\\)\\|substr\\|x\\(?:match\\|parse\\)\\)\\|s\\(?:a\\(?:mple\\|ving\\)\\|can\\|df\\|e\\(?:cond\\|tdif\\)\\|hape\\(?:col\\)?\\|i\\(?:gn\\|nh?\\)\\|kewness\\|o\\(?:lve\\|undex\\)\\|p\\(?:arse\\|linev\\|ot\\)\\|q\\(?:r\\(?:sym\\|t\\|vech\\)\\|uantile\\)\\|sq\\|t\\(?:andard\\|d\\(?:err\\)?\\|fips\\|namel?\\|orage\\)\\|u\\(?:b\\(?:2ndx\\|str\\)\\|m\\)\\|weep\\|y\\(?:m\\(?:get\\|sqr\\)\\|s\\(?:msg\\|prod\\)\\)\\)\\|t\\(?:a\\(?:ble\\(?:create\\(?:fromdataset\\)?\\|getvar\\(?:data\\|format\\|in\\(?:dex\\|format\\)\\|label\\|\\(?:nam\\|typ\\)e\\)\\|is\\(?:existingvar\\|varnumeric\\)\\)\\|nh?\\)\\|f\\(?:hilbert\\|pwv\\|stft\\|window\\)\\|i\\(?:me\\(?:part\\)?\\|nv\\)\\|nonct\\|o\\(?:day\\|eplitz\\)\\|r\\(?:a\\(?:ce\\|n\\(?:slate\\|wrd\\)\\)\\|i\\(?:gamma\\|mn?\\|solv\\)\\|unc\\)\\|ype\\)\\|u\\(?:n\\(?:i\\(?:form\\|on\\|que\\(?:by\\)?\\)\\|til\\)\\|pcase\\|ss\\)\\|v\\(?:a\\(?:lue\\|r\\(?:fmt\\|label\\|num\\|type\\)?\\)\\|e\\(?:c\\(?:diag\\|h\\)\\|rify\\)\\)\\|w\\(?:eekday\\|h\\(?:en\\|ile\\)\\)\\|x\\(?:\\(?:mul\\|sec\\)t\\)\\|y\\(?:ear\\|ield\\|yq\\)\\|zip\\(?:fips\\|namel?\\|state\\)\\|[ijnt]\\)\\>(" "^ERROR: .*$" "^WARNING: .*$" "\\(^[0-9]*\\|;\\)[ ]*\\(%?\\*\\|comment\\).*\\(;\\|$\\)" "\\<%do[ ]*\\(%until\\|%while\\)?\\>" "\\<%\\(end\\|global\\|local\\|m\\(acro\\|end\\)\\)\\>" "\\(^[0-9]*\\|;\\|):\\|%then\\|%else\\)[ ]*\\(data\\|endsas\\|finish\\|quit\\|run\\|start\\)[ \n;]" "\\(^[0-9]*\\|;\\|):\\|%then\\|%else\\)[ ]*proc[ ]+\\(append\\|b\\(genmod\\|lifereg\\|phreg\\)\\|c\\(a\\(lendar\\|talog\\)\\|port\\|o\\(mpare\\|ntents\\|py\\|rr\\)\\)\\|d\\(atasets\\|bcstab\\|isplay\\)\\|ex\\(plode\\|port\\)\\|f\\(orm\\(at\\|s\\)\\|req\\|s\\(browse\\|edit\\|l\\(etter\\|ist\\)\\|view\\)\\)\\|g?\\(chart\\|p\\(lot\\|rint\\)\\)\\|g\\(anno\\|contour\\|device\\|font\\|\\(key\\)?map\\|options\\|project\\|re\\(duce\\|move\\|play\\)\\|slide\\|testit\\|3\\(d\\|grid\\)\\)\\|\\(map\\|[cg]\\)?import\\|i\\(ml\\|nsight\\)\\|means\\|options\\|p\\(menu\\|rintto\\)\\|r\\(ank\\|e\\(gistry\\|port\\)\\)\\|s\\(ort\\|ql\\|tandard\\|ummary\\)\\|t\\(abulate\\|emplate\\|imeplot\\|ran\\(spose\\|tab\\)\\)\\|univariate\\|a\\(ceclus\\|nova\\|rima\\|utoreg\\)\\|boxplot\\|c\\(a\\(lis\\|n\\(corr\\|disc\\)\\|tmod\\)\\|itibase\\|luster\\|o\\(mputab\\|rresp\\)\\)\\|discrim\\|expand\\|f\\(a\\(ctor\\|stclus\\)\\|orecast\\|req\\)\\|g\\(enmod\\|l\\(immix\\|m\\(mod\\|power\\|select\\)?\\)\\)\\|inbreed\\|k\\(de\\|rige2d\\)\\|l\\(attice\\|ife\\(reg\\|test\\)\\|o\\(ess\\|gistic\\)\\)\\|m\\(ds\\|ixed\\|o\\(de\\(clus\\|l\\)\\|rtgage\\)\\|ulttest\\)\\|n\\(ested\\|l\\(in\\|mixed\\)\\|par1way\\)\\|orthoreg\\|p\\(dlreg\\|hreg\\|l\\(an\\|s\\)\\|ower\\|r\\(in\\(comp\\|qual\\)\\|obit\\)\\)\\|r\\(sr\\)?eg\\|s\\(core\\|im\\(2d\\|lin\\)\\|pectra\\|t\\(atespace\\|dize\\|epdisc\\)\\|urvey\\(means\\|reg\\|select\\)\\|yslin\\)\\|t\\(phreg\\|pspline\\|r\\(ansreg\\|ee\\)\\|test\\)\\|var\\(clus\\|comp\\|iogram\\)\\|x11\\)" "\\<%\\(go[ ]*to\\|i\\(f\\|n\\(clude\\|put\\)\\)\\|let\\|put\\|sysexec\\)\\>" "\\<%\\(by\\|else\\|t\\(o\\|hen\\)\\)\\>" "[ (,]\\(attrib\\|by\\|compress\\|d\\(ata\\|rop\\)\\|f\\(irstobs\\|ormat\\)\\|i\\(d\\|f\\|n\\)\\|ke\\(ep\\|y\\)\\|l\\(abel\\|ength\\)\\|o\\(bs\\|rder\\|ut\\)\\|rename\\|s\\(ortedby\\|plit\\)\\|var\\|where\\)[ ]*=" "\\<\\(in\\(:\\|dex[ ]*=\\)?\\|until\\|wh\\(en\\|ile\\)\\)[ ]*(" "\\(^[0-9]*\\|):\\|[;,]\\|then\\|else\\)[ ]*\\(a\\(bort\\|rray\\|ttrib\\)\\|b\\(ayes\\|y\\)\\|c\\(hange\\|lass\\|ontrast\\)\\|d\\(elete\\|isplay\\|m\\|o\\([ ]+\\(data\\|over\\)\\)?\\|rop\\)\\|e\\(rror\\|stimate\\|xc\\(hange\\|lude\\)\\)\\|f\\(ile\\(name\\)?\\|o\\(otnote\\(10?\\|[2-9]\\)?\\|rmat\\)\\|req\\)\\|go\\([ ]*to\\|ptions\\)\\|hazardratio\\|[hv]bar\\(3d\\)?\\|i\\(d\\|f\\|n\\(dex\\|f\\(ile\\|ormat\\)\\|put\\|value\\)\\)\\|keep\\|l\\(abel\\|ength\\|i\\(bname\\|nk\\|st\\)\\|smeans\\)\\|m\\(anova\\|e\\(ans\\|rge\\)\\|issing\\|od\\(el\\|ify\\)\\)\\|note\\|o\\(ds\\|ptions\\|therwise\\|utput\\)\\|p\\(arms\\|lot2?\\|ut\\)\\|r\\(andom\\|e\\(name\\|peated\\|tain\\)\\)\\|s\\(ave\\|e\\(lect\\|t\\)\\|kip\\|trata\\|um\\(by\\)?\\)\\|t\\(ables?\\|i\\(me\\|tle\\(10?\\|[2-9]\\)?\\)\\)\\|update\\|va\\(lue\\|r\\)\\|w\\(eight\\|here\\|i\\(ndow\\|th\\)\\)\\|append\\|c\\(lose\\(file\\)?\\|reate\\)\\|edit\\|f\\(ind\\|orce\\|ree\\)\\|insert\\|load\\|mattrib\\|p\\(a[ru]se\\|rint\\|urge\\)\\|re\\(move\\|peat\\|place\\|set\\|sume\\)\\|s\\(et\\(in\\|out\\)\\|how\\|ort\\|tore\\|ummary\\)\\|use\\)?\\>" "\\(^[0-9]*\\|):\\|[;,]\\|then\\|else\\)[ ]*\\(cards4?\\|datalines\\|end\\|l\\(ostcard\\)\\|page\\|stop\\)?[ ]*;" "\\(^[0-9]*\\|):\\|[;,]\\)[ ]*\\(axis\\|legend\\|pattern\\|symbol\\)\\([1-9][0-9]?\\)?\\>" "%[a-z_][a-z_0-9]*[- ();,+*/=<>]" "\\[ \n ]*\\b%?do\\>\\|\\b%?else\\>[ \n ]*\\b%?do\\>" current-indentation "%?end[ ;\n]\\|%mend[ ;\n]\\|\\*/"] 5 (#$ . 25649)]) #@118 If the current line is inside a /* */ comment, returns column in which the opening /* appears. returns 0 otherwise. (defalias 'sas-comment-start-col #[nil "`\212\301\302e\303\211$\203\304\305\303\211$\203\306 \202\307*\207" [pos search-backward "*/" 1 search-forward "/*" current-indentation 0] 5 (#$ . 26503)]) #@76 Check to see that "run" statements are matched with proc, data statements. (defalias 'sas-check-run-statements #[nil "\303\304\211\212\305 \210 \2039\306\307\303\310#\2033\311\224\203\n\306\307\303\304#\203,`\310\224\211\202 \303d\202\n\303\211\204m) \203J\203J\312\313!\202S\nb\210\314 \210\312\315!+\207" [eob-ok ok pos nil t beginning-of-line re-search-forward "\\(^[ ]*run[ ;]\\)\\|\\(^[ ]*proc \\|^[ ]*data[ ;]\\)" 1 2 message "Run statements match" beep "Missing Run Statement."] 5 (#$ . 26830) nil]) #@168 Remove censored and duplicate observations from life tables generated by Proc Lifetest. Operates on current region. A major space saver if there is heavy censoring. (defalias 'sas-fix-life-tables #[nil "\203\301eb\210\302\303\301\304#\205\305\306\301\211#\210\202 \207" [buffer-read-only nil re-search-forward "^.*[ ]+[.][ ]+[.][ ]+[.][ ]+.*$" t replace-match ""] 4 (#$ . 27368) nil]) #@98 Fix number of current page in sas output files after editing. Add OFFSET to actual page number. (defalias 'sas-fix-page-numbers #[(offset &optional page-num) "\204\306 \204 \307 \212h\310U\204\311\312!\210\313\211\211\211\212y\210`)\314\315 \316#\205[\306\225\306\224Z\306\224\306\225 \n|\210l\203Q\317\320\f\321Q \\\"c\202[\307 \\\322P\306\fOc-\207" [offset page-num mend mstart len end 0 sas-page-number 12 backward-page 1 nil re-search-forward "\\(^[0-9]+[ ]\\)\\|\\([ ][0-9]+$\\)" t format "%" "d" " " sas-page-number-max-line] 4 (#$ . 27768) "P"]) #@123 Fix page numbers in sas output from point to end of file. If START is given this will be the number for the current page. (defalias 'sas-page-fix #[(start) "\303\304 \n\204\305\202\nZm?\205&\306 \"\210T\307\310!\210\202*\207" [pnum offset start nil sas-page-number 0 sas-fix-page-numbers forward-page 1] 3 (#$ . 28357) "P"]) #@39 Fix page breaks in SAS 6 print files. (defalias 'fix-page-breaks #[nil "\212eb\210\300\301!\203\302\303!\210\304\305\306\307#\203\310\311\306\211#\210\202eb\210\304\312\306\307#\2033\310\313\306\211#\210\202\"eb\210\304\314\306\307#\203G\310\315\306\211#\210\2026db\210o?\205_\316u\210\300\317!?\205_\303u\210\320\303!)\207" [looking-at "\f" delete-char 1 re-search-forward "^\\(.+\\)\f" nil t replace-match "\\1\n\f\n" "^\f\\(.+\\)" "\f\n\\1" " \\([^\\$]+\\)" "\n\\1" -1 "\n" open-line] 4 (#$ . 28703) nil]) #@48 Return page number of point in current buffer. (defalias 'sas-page-number #[nil "`\212eb\210\302 \"T*\207" [opoint page-delimiter sas-how-many] 3 (#$ . 29230)]) #@54 Return number of matches for REGEXP following point. (defalias 'sas-how-many #[(regexp &optional end) "\304\305\212m\204%`\306\n \307#\203%`U\203\310u\210\202 T\202 +\207" [opoint count regexp end 0 nil re-search-forward t 1] 4 (#$ . 29399)]) #@58 Move point to beginning of sas proc, macro or data step. (defalias 'beginning-of-sas-proc #[nil "\301\302u\210\303\304!\206\fo?\205\305\306e\307#\210\310\307!\210\202)\207" [case-fold-search t -1 looking-at "data\\|proc\\|%macro" re-search-backward "proc\\|data\\|%macro" 1 beginning-of-sas-statement] 4 (#$ . 29661) nil]) #@43 Move point to beginning of next sas proc. (defalias 'next-sas-proc #[(arg) "\302\303u\210\304\305\306\302 $\203\307\303!\202\310u)\207" [case-fold-search arg t 1 re-search-forward "^[ ]*\\(data[ ;]\\|proc[ ;]\\|endsas[ ;]\\|g?options[ ;]\\|%macro[ ;]\\)" nil beginning-of-sas-statement -1] 5 (#$ . 29996) "P"]) #@42 Stores the name of the current sas file. (defalias 'set-sas-file-name #[nil "\304 \211?\206,\305\306\307O\310\"\203)\311G\312ZO\313 \211\311\nG\312ZO\211\202,\314\315!)\207" [name sas-file-name sas-buffer-name sas-file-root buffer-file-name string-match -4 nil "\\.sas\\|\\.lst\\|\\.log" 0 4 buffer-name message "This file does not have a standard suffix"] 5 (#$ . 30319)]) #@182 Stores the NAME of an alternate sas file. When this file is submitted with `submit-sas', the alternate file will be submitted instead. `sas-submitable' is automatically sets to t. (defalias 'sas-set-alternate-file-name #[(name) "\303\304\305O\306\"\203\307G\310ZO\311\211\207\312\313!\207" [name sas-file-name sas-submitable string-match -4 nil "\\.sas\\|\\.lst\\|\\.log" 0 4 t message "This file does not have a standard suffix"] 4 (#$ . 30710) "f"]) #@63 Switches to sas source file associated with the current file. (defalias 'switch-to-sas-source #[nil "\300\301!\207" [switch-to-sas-file "sas"] 2 (#$ . 31176) nil]) #@63 Switches to sas source file associated with the current file. (defalias 'switch-to-sas-lst #[nil "\300\301!\207" [switch-to-sas-file "lst"] 2 (#$ . 31346) nil]) #@63 Switches to sas source file associated with the current file. (defalias 'switch-to-sas-log #[nil "\300\301!\207" [switch-to-sas-file "log"] 2 (#$ . 31513) nil]) #@63 Switches to sas source file associated with the current file. (defalias 'switch-to-sas-source-other-window #[nil "\300\301!\207" [switch-to-sas-file-other-window "sas"] 2 (#$ . 31680) nil]) #@63 Switches to sas source file associated with the current file. (defalias 'switch-to-sas-lst-other-window #[nil "\300\301!\207" [switch-to-sas-file-other-window "lst"] 2 (#$ . 31876) nil]) #@63 Switches to sas source file associated with the current file. (defalias 'switch-to-sas-log-other-window #[nil "\300\301!\207" [switch-to-sas-file-other-window "log"] 2 (#$ . 32069) nil]) #@63 Switches to sas "SUFF" file associated with the current file. (defalias 'switch-to-sas-file #[(suff) "\301\302!!\207" [suff switch-to-buffer set-sas-file-buffer] 3 (#$ . 32262)]) #@63 Switches to sas "SUFF" file associated with the current file. (defalias 'switch-to-sas-file-other-window #[(suff) "\301\302!!\207" [suff switch-to-buffer-other-window set-sas-file-buffer] 3 (#$ . 32448)]) #@74 Sets current buffer to sas "SUFF" file associated with the current file. (defalias 'set-sas-file-buffer #[(suff &optional revert silent) "\306 \307\nQ!\f\205 ?\211\204\n\310\230\204 \204)\311 \307\nQ!q\210\202@ q\210\312p!\204@\313\314\211\"\210\204@\315\316!\210 +p\207" [sas-file-name sfile suff buf sas-require-confirmation revert get-file-buffer "." "sas" find-file-noselect verify-visited-file-modtime revert-buffer t message "File has changed on disk. Buffer automatically updated." silent] 5 (#$ . 32660)]) #@31 Switch to sas-process-buffer. (defalias 'switch-to-sas-process-buffer #[nil "\303\211\304\nP\305\305Q\306 !*\207" [proc-name buf sas-file-name nil "SAS" "*" switch-to-buffer-other-window] 3 (#$ . 33198) nil]) #@35 Submit SAS file as shell command. (defalias 'submit-sas #[nil "\204\306 \210\307\310\311!!\203\242 \312 \230\204\307\310\313!!\204$\312 \202'\314 \210\n \315\211'(\316 \203C\307\310\317\312 \"!\203C\320 \210\321(P\322 \322Q\323\f!\203g\324 )\325\216\326\f!\210\327 \210\330(!**\331\332!\210\333\334!\210\335 +\315'$\210\324 ,\336\216\326\f!\210(\337\f!\210*\333\340!\210-\203\234\341\342 !\343\"\202\240\344\f\345\",\207\333\346!\207" [sas-submitable sas-buffer-name sas-file-name sas-file-root buf proc-name beep y-or-n-p format "Submission is disabled for this file. Submit it anyway? " buffer-name "The name of this buffer has changed. Submit the new file? " set-sas-file-name nil buffer-modified-p "Buffer %s is modified. Save it? " save-buffer "SAS" "*" get-buffer current-window-configuration #[nil "\301!\207" [#1=#:wconfig set-window-configuration] 2] switch-to-buffer erase-buffer file-name-directory run-hooks sas-pre-run-hook message "---- Submitting SAS job ----" make-comint #[nil "\301!\207" [#2=#:wconfig set-window-configuration] 2] bury-buffer "---- SAS job submitted ---- " set-process-sentinel get-process sas-sentinel display-buffer t "---- File not submitted ----" sas-root sas-file #1# default-directory sas-program #2# sas-notify] 5 (#$ . 33418) nil]) #@35 Notify user that SAS run is done. (defalias 'sas-sentinel #[(proc arg) "\306 \210\212\307\211\211\310\311!\310Q\312\313 \314\315O\203_ q\210\316\317\320\211#eb\210\321 !\322 \323\216\n\203J\324\n!\210\325\326\307\320#\203F\327\202[\330\202[\331 !\210\325\326\307\320#\203Z\327\202[\330*\202`\330# q\210db\210\fc\210\332\333 !!\210\334\f!-\207" [proc sbuf win buf msg arg beep nil "*" process-name format "SAS %s %s" 0 -1 set-sas-file-buffer "log" t get-buffer-window current-window-configuration #[nil "\301!\207" [#1=#:wconfig set-window-configuration] 2] select-window re-search-forward "^ERROR" " (See .log file for errors)" "" switch-to-buffer bury-buffer get-buffer princ sas-error-notify #1#] 7 (#$ . 34742)]) #@45 Switch to log buffer for run-sas-on-region. (defalias 'switch-to-dataset-log-buffer #[nil "\300\301!\207" [switch-to-buffer-other-window "*SAS Log*"] 2 (#$ . 35485) nil]) #@48 Switch to source buffer for run-sas-on-region. (defalias 'switch-to-dataset-source-buffer #[nil "\301\302\303\"!\207" [sas-dataset switch-to-buffer-other-window format " *sas-tmp-%s*"] 4 (#$ . 35662) nil]) #@53 Add local variables code to end of sas source file. (defalias 'sas-insert-local-variables #[nil "\212\300\301\302\303#?\205db\210\304c)\207" [re-search-forward "* *Local Variables: *;" nil t "\n\n** Local Variables: ;\n** End: ;\npage ;\n"] 4 (#$ . 35875) nil]) (defvar sas-dir-mode-map nil) #@48 Name of directory associated with this buffer. (defvar sas-directory-name nil (#$ . 36179)) (make-variable-buffer-local 'sas-directory-name) (defvar sas-dir-buf-end nil) (make-variable-buffer-local 'sas-dir-buf-end) (defvar sas-sorted-by-num nil) (byte-code "\301\302!\210\204\233\303 \304\305\306#\210\304\307\310#\210\304\311\312#\210\304\313\314#\210\304\315\314#\210\304\316\317#\210\304\320\321#\210\304\322\323#\210\304\324\325#\210\304\326\327#\210\304\330\331#\210\304\332\333#\210\304\334\335#\210\304\336\337#\210\304\340\341#\210\304\342\341#\210\304\343\341#\210\304\344\341#\210\304\345\341#\210\304\346\341#\210\304\347\341#\210\304\350\341#\210\304\351\341#\210\304\352\353#\210\301\207" [sas-dir-mode-map make-variable-buffer-local sas-sorted-by-num make-sparse-keymap define-key "p" sas-print "m" sas-mark-item "u" sas-unmark-item " " sas-next-line "" "" sas-prev-line "" sas-prev-line-undo "" sas-backward-page-narrow "" sas-forward-page-narrow " " sas-goto-dataset [mouse-2] sas-mouse-goto-dataset "t" sas-dir-goto-page "q" bury-buffer "g" sas-revert-library "1" digit-argument "2" "3" "4" "5" "6" "7" "8" "9" [menu-bar sas run] ("Submit File " . submit-sas)] 4) #@36 Major mode for managing sas files. (defalias 'sas-dir-mode #[nil "\306 \210\307!\210\310\311\312 !\313\211\207" [sas-dir-mode-map major-mode mode-name default-directory sas-directory-name buffer-read-only kill-all-local-variables use-local-map sas-dir-mode "SAS" expand-file-name 1] 2 (#$ . 37399) nil]) (defalias 'sas-move-to-filename #[(&optional eol) "\204 \301\210`\302 \210\303\304\305#\205\306\225b\207" [eol nil beginning-of-line re-search-forward "\\(^ *[0-9]+ *<*\\)[^:0-9\n]" t 1] 4]) #@21 Move down one line. (defalias 'sas-next-line #[(arg) "y\210\301d!\207" [arg sas-move-to-filename] 2 (#$ . 37912) "p"]) #@19 Move up one line. (defalias 'sas-prev-line #[(arg) "\301 \210\302\303e\304#\210\305!\207" [sas-dir-buf-end beginning-of-line re-search-backward "^ *[0-9]+ *<*[^:0-9\n]" t sas-move-to-filename] 4 (#$ . 38038) "p"]) (defalias 'sas-insert-set-properties #[(beg end) "\212b\210` W\205\302 \203\303`\304`\\\305\306$\210\307y\210\202)\207" [beg end sas-move-to-filename put-text-property 8 mouse-face highlight 1] 5]) #@41 Return name of dataset on current line. (defalias 'sas-get-filename #[nil "\212\301 \302\303O\304\230\203\305 \210\202eb\210\306\307!\210\310`\212\311\312w\210`){\313Q\227!)\207" [sas-directory-name buffer-name 0 8 "*SAS-dir" sas-move-to-filename re-search-forward "Data Set Name: [^.]*\\." expand-file-name "A-Z0-9_" nil ".ssd01"] 5 (#$ . 38464) nil]) #@41 Return name of dataset on current line. (defalias 'sas-get-file-number #[nil "\300 \205\301v\210\302\303!\210\304\305\224\305\225{!\207" [sas-move-to-filename -1 re-search-forward "[0-9]*" string-to-number 0] 3 (#$ . 38828) nil]) #@58 Goto top of page ARG. If no ARG, then goto top of file. (defalias 'sas-goto-page #[(arg) "\303b\210\203\303V\203\304 d\303S$\210\n\305w\210\306\303!\207" [arg page-delimiter sas-white-chars 1 re-search-forward nil recenter] 5 (#$ . 39066) "P"]) #@193 Move forward to page boundary and leave first line at top of window. With arg, repeat, or go back if negative. A page boundary is any line whose beginning matches the regexp `page-delimiter'. (defalias 'forward-page-top-of-window #[(arg) "\301!\210\302\303!\207" [arg forward-page recenter 0] 2 (#$ . 39326) "p"]) #@194 Move backward to page boundary and leave first line at top of window. With arg, repeat, or go back if negative. A page boundary is any line whose beginning matches the regexp `page-delimiter'. (defalias 'backward-page-top-of-window #[(arg) "\301[!\210\302\303!\207" [arg forward-page recenter 0] 2 (#$ . 39648) "p"]) (defalias 'sas-narrow-to-page #[nil "\212edn\204\303 \204\304\n!\203\305u\210\202\306\307!\210`\306\305!\210\303 \210` }+\207" [min max page-delimiter beginning-of-line looking-at 1 forward-page -1] 2]) #@174 Move forward to page boundary and narrow to page. With arg, repeat, or go back if negative. A page boundary is any line whose beginning matches the regexp `page-delimiter'. (defalias 'sas-forward-page-narrow #[(arg) "~\210\301!\210\302 \210eb\207" [arg forward-page sas-narrow-to-page] 2 (#$ . 40189) "p"]) #@175 Move backward to page boundary and narrow to page. With arg, repeat, or go back if negative. A page boundary is any line whose beginning matches the regexp `page-delimiter'. (defalias 'sas-backward-page-narrow #[(arg) "eb\210~\210\301[!\210\302 \207" [arg forward-page sas-narrow-to-page] 2 (#$ . 40504) "p"]) (defalias 'sas-goto-dataset #[(&optional page) "\205! \206\n\302 \211\205 \303\304P!\210~\210\305 !\210\306 \210eb)\207" [sas-directory-name page sas-get-file-number switch-to-buffer-other-window "*SAS-cont-" sas-goto-page sas-narrow-to-page] 4 nil nil]) (defalias 'sas-dir-goto-page #[(page) "~\210\301!\210\302 \207" [page sas-goto-page sas-narrow-to-page] 2 nil "p"]) (defalias 'sas-mark-item #[(&optional next) "\302 \210\303 \210\304\305\306\212\304\210`)\307#\203\310\311!\210) \206!\312\313!\207" [buffer-read-only next sas-move-to-filename beginning-of-line nil re-search-forward "^\\( *[0-9]+ *\\) \\([A-Z][A-Z_0-9]*\\) " t replace-match "\\1<\\2>" sas-next-line 1] 4 nil nil]) (defalias 'sas-unmark-item #[nil "\212\301 \210\302\303\304\212\302\210`)\305#\205\306\307!*\207" [buffer-read-only beginning-of-line nil re-search-forward "^\\( *[0-9]+ *\\)<\\([A-Z][A-Z_0-9]*\\)>" t replace-match "\\1 \\2 "] 4 nil nil]) (defalias 'sas-prev-line-undo #[(arg) "\301!\210\302 \210\303 \207" [arg sas-prev-line sas-unmark-item sas-move-to-filename] 2 nil "p"]) (defalias 'sas-create-var-string #[nil "\301 \302\303O\304\230\205%\305eb\210\306\307\305\310#\203#\311\312\224\312\225{Q\202)\207" [str buffer-name 0 9 "*SAS-cont" nil re-search-forward "^\\( *[0-9]+ *\\)<\\([A-Z][A-Z_0-9]*\\)>" t " " 2] 4]) #@37 SAS language Imenu support for ESS. (defalias 'ess-imenu-SAS #[(&optional arg) "\301\302\303!\207" [imenu-generic-expression ((nil "[ \n=]\\([a-zA-Z_][a-zA-Z_0-9]*[.][a-zA-Z_][a-zA-Z_0-9]*\\)[ ,() \n;]" 1)) imenu-add-to-menubar "SAS Datasets"] 2 (#$ . 42152) nil]) (provide 'ess-sas-l)