msgstr ""
"Project-Id-Version: PSPP 0.3.1\n"
"Report-Msgid-Bugs-To: pspp-dev@gnu.org\n"
-"POT-Creation-Date: 2005-04-27 07:45+0800\n"
+"POT-Creation-Date: 2005-05-01 15:18+0800\n"
"PO-Revision-Date: 2004-01-23 13:04+0800\n"
"Last-Translator: John Darrington <john@darrington.wattle.id.au>\n"
"Language-Team: John Darrington <john@darrington.wattle.id.au>\n"
msgstr ""
#: src/data-list.c:795 src/data-list.c:923 src/descript.c:880 src/print.c:796
-#: src/sysfile-info.c:134 src/sysfile-info.c:367 src/vfm.c:807
+#: src/sysfile-info.c:134 src/sysfile-info.c:367 src/vfm.c:809
msgid "Variable"
msgstr ""
msgid "Documents in the active file:"
msgstr ""
-#: src/sysfile-info.c:374 src/sysfile-info.c:532 src/vfm.c:809
+#: src/sysfile-info.c:374 src/sysfile-info.c:532 src/vfm.c:811
msgid "Label"
msgstr ""
msgid "Missing Values: "
msgstr ""
-#: src/sysfile-info.c:531 src/vfm.c:808 src/crosstabs.q:1099
+#: src/sysfile-info.c:531 src/vfm.c:810 src/crosstabs.q:1099
#: src/crosstabs.q:1126 src/crosstabs.q:1146 src/crosstabs.q:1168
#: src/examine.q:1129 src/frequencies.q:1138 src/frequencies.q:1259
msgid "Value"
"commands."
msgstr ""
-#: src/title.c:57
+#: src/title.c:56
#, c-format
msgid "%s before: %s\n"
msgstr ""
-#: src/title.c:57
+#: src/title.c:56
msgid "<none>"
msgstr ""
-#: src/title.c:69
+#: src/title.c:68
#, c-format
msgid "%s: `.' expected after string."
msgstr ""
-#: src/title.c:85
+#: src/title.c:84
#, c-format
msgid "%s after: %s\n"
msgstr ""
-#: src/title.c:141
+#: src/title.c:140
#, c-format
msgid "Document entered %s %02d:%02d:%02d by %s (%s):"
msgstr ""
msgid "Truncating variable label to 255 characters."
msgstr ""
-#: src/vars-atr.c:249
+#: src/vars-atr.c:259
msgid "Variable names must be at least 1 character long."
msgstr ""
-#: src/vars-atr.c:255
+#: src/vars-atr.c:265
#, c-format
msgid "Variable name %s exceeds %d-character limit."
msgstr ""
-#: src/vars-atr.c:264
+#: src/vars-atr.c:274
#, c-format
msgid "Character `%c' (in %s) may not appear in a variable name."
msgstr ""
-#: src/vars-atr.c:273
+#: src/vars-atr.c:283
#, c-format
msgid ""
"Character `%c' (in %s), may not appear as the first character in a variable "
"name."
msgstr ""
-#: src/vars-atr.c:281
+#: src/vars-atr.c:291
#, c-format
msgid "%s may not be used as a variable name because it is a reserved word."
msgstr ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: pspp-dev@gnu.org\n"
-"POT-Creation-Date: 2005-04-27 07:45+0800\n"
+"POT-Creation-Date: 2005-05-01 15:18+0800\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
#: src/data-list.c:795 src/data-list.c:923 src/descript.c:880 src/print.c:796
-#: src/sysfile-info.c:134 src/sysfile-info.c:367 src/vfm.c:807
+#: src/sysfile-info.c:134 src/sysfile-info.c:367 src/vfm.c:809
msgid "Variable"
msgstr ""
msgid "Documents in the active file:"
msgstr ""
-#: src/sysfile-info.c:374 src/sysfile-info.c:532 src/vfm.c:809
+#: src/sysfile-info.c:374 src/sysfile-info.c:532 src/vfm.c:811
msgid "Label"
msgstr ""
msgid "Missing Values: "
msgstr ""
-#: src/sysfile-info.c:531 src/vfm.c:808 src/crosstabs.q:1099
+#: src/sysfile-info.c:531 src/vfm.c:810 src/crosstabs.q:1099
#: src/crosstabs.q:1126 src/crosstabs.q:1146 src/crosstabs.q:1168
#: src/examine.q:1129 src/frequencies.q:1138 src/frequencies.q:1259
msgid "Value"
"commands."
msgstr ""
-#: src/title.c:57
+#: src/title.c:56
#, c-format
msgid "%s before: %s\n"
msgstr ""
-#: src/title.c:57
+#: src/title.c:56
msgid "<none>"
msgstr ""
-#: src/title.c:69
+#: src/title.c:68
#, c-format
msgid "%s: `.' expected after string."
msgstr ""
-#: src/title.c:85
+#: src/title.c:84
#, c-format
msgid "%s after: %s\n"
msgstr ""
-#: src/title.c:141
+#: src/title.c:140
#, c-format
msgid "Document entered %s %02d:%02d:%02d by %s (%s):"
msgstr ""
msgid "Truncating variable label to 255 characters."
msgstr ""
-#: src/vars-atr.c:249
+#: src/vars-atr.c:259
msgid "Variable names must be at least 1 character long."
msgstr ""
-#: src/vars-atr.c:255
+#: src/vars-atr.c:265
#, c-format
msgid "Variable name %s exceeds %d-character limit."
msgstr ""
-#: src/vars-atr.c:264
+#: src/vars-atr.c:274
#, c-format
msgid "Character `%c' (in %s) may not appear in a variable name."
msgstr ""
-#: src/vars-atr.c:273
+#: src/vars-atr.c:283
#, c-format
msgid ""
"Character `%c' (in %s), may not appear as the first character in a variable "
"name."
msgstr ""
-#: src/vars-atr.c:281
+#: src/vars-atr.c:291
#, c-format
msgid "%s may not be used as a variable name because it is a reserved word."
msgstr ""
;;; pspp-mode-el -- Major mode for editing PSPP files
-
+;; Copyright (C) 2005 Free Software Foundation
;; Author: John Darrington <john@darrington.wattle.id.au>
;; Created: 05 March 2005
;; Keywords: PSPP major-mode
-;; Copyright (C) 2005 John Darrington
-;;
+
+
;; Based on the example wpdl-mode.el by Scott Borton
;; Author: Scott Andrew Borton <scott@pp.htv.fi>
(add-to-list 'auto-mode-alist '("\\.sps\\'" . pspp-mode))
-(defun pspp-data-block ()
+(defun pspp-data-block-p ()
"Returns t if current line is inside a data block."
- (interactive)
-
- (let (
- (end-data-found nil)
- (begin-data-found nil)
- (inside-block nil)
+ (save-excursion
+ (let (
+ (pspp-end-of-block-found nil)
+ (pspp-start-of-block-found nil)
+ )
+ (beginning-of-line)
+ (while (not (or
+ (or (bobp) pspp-end-of-block-found )
+ pspp-start-of-block-found
+ )
+ )
+ (set 'pspp-end-of-block-found (looking-at "^[ \t]*END[\t ]+DATA\."))
+ (set 'pspp-start-of-block-found (looking-at "^[ \t]*BEGIN[\t ]+DATA"))
+ (forward-line -1)
)
+
+ (and pspp-start-of-block-found (not pspp-end-of-block-found))
+ )
+ )
+ )
- (save-excursion
- (beginning-of-line)
- (while (not (or (bobp) end-data-found) )
+(defconst pspp-indent-width
+ 2
+ "size of indent"
+)
- (if (looking-at "^[ \t]*END +DATA\.")
- (setq end-data-found t)
- )
- (forward-line -1)
+(defconst pspp-indenters
+ (concat "^[\t ]*"
+ (regexp-opt '("DO"
+ "BEGIN"
+ "LOOP"
+ "INPUT") t)
+ "[\t ]+")
+ "constructs which cause indentation"
+)
- (if (looking-at "^[ \t]*BEGIN +DATA\.")
- (setq begin-data-found t)
- )
-
- )
- )
- (setq inside-block (and begin-data-found (not end-data-found)))
+(defconst pspp-unindenters
+ (concat "^[\t ]*END[\t ]+"
+ (regexp-opt '("IF"
+ "DATA"
+ "LOOP"
+ "REPEAT"
+ "INPUT") t)
+ "[\t ]*")
- inside-block
- )
-
- )
+ ;; Note that "END CASE" and "END FILE" do not unindent.
+
+ "constructs which cause end of indentation"
+)
+
(defun pspp-indent-line ()
"Indent current line as PSPP code."
- (interactive)
+
(beginning-of-line)
(let (
(verbatim nil)
(the-indent 0) ; Default indent to column 0
+ (case-fold-search t)
)
(if (bobp)
(while (and blank-line (not (bobp)))
(forward-line -1)
- (if (and (not (pspp-data-block)) (not (looking-at "^[ \t]*$")))
+ (if (and (not (pspp-data-block-p)) (not (looking-at "^[ \t]*$")))
(progn
- (setq blank-line nil)
+ (setq blank-line nil)
- (if (not (looking-at ".*\\.[ \t]*$"))
- (setq within-command t)
- )
- )
+ (if (not (looking-at ".*\\.[ \t]*$"))
+ (setq within-command t)
+ )
+ )
+ )
)
+ )
+
+
+ ;; If we're not at the start of a new command, then add an indent.
+ (if within-command
+ (set 'the-indent (+ 1 the-indent))
+ )
+ )
+
+
+ ;; Set the indentation according to the DO - END blocks
+ (save-excursion
+ (beginning-of-line)
+ (while (not (bobp))
+ (beginning-of-line)
+ (if (not (pspp-comment-p))
+ (cond
+ (
+ (save-excursion
+ (forward-line -1)
+ (looking-at pspp-indenters)
+ )
+ (set 'the-indent (+ the-indent 1) )
+ )
+
+ ( (looking-at pspp-unindenters)
+ (set 'the-indent (- the-indent 1) )
+ )
+ )
)
-
- (if within-command (setq the-indent 8) )
+ (forward-line -1)
+ )
)
-
+
+ (save-excursion
+ (beginning-of-line)
+ (if (looking-at "^[\t ]*ELSE")
+ (set 'the-indent (- the-indent 1)))
+ )
+
+ ;; Stuff in the data-blocks should be untouched
+ (if (not (pspp-data-block-p)) (indent-line-to (* pspp-indent-width the-indent)))
+ )
+)
+
+
+(defun pspp-comment-start-line-p ()
+ "Returns t if the current line is the first line of a comment, nil otherwise"
+ (beginning-of-line)
+ (or (looking-at "^\*")
+ (looking-at "^[\t ]*COMMENT[\t ]")
)
+ )
+
+
+(defun pspp-comment-end-line-p ()
+ "Returns t if the current line is the candidate for the last line of a comment, nil otherwise"
+ (beginning-of-line)
+ (looking-at ".*\\.[\t ]*$")
+ )
+
- (if (not (pspp-data-block)) (indent-line-to the-indent))
-))
+(defun pspp-comment-p ()
+ "Returns t if point is in a comment. Nil otherwise."
+ (if (pspp-data-block-p)
+ nil
+ (let (
+ (pspp-comment-start-found nil)
+ (pspp-comment-end-found nil)
+ (pspp-single-line-comment nil)
+ (lines 1)
+ )
+ (save-excursion
+ (end-of-line)
+ (while (and (>= lines 0)
+ (not pspp-comment-start-found)
+ (not pspp-comment-end-found)
+ )
+ (beginning-of-line)
+ (if (pspp-comment-start-line-p) (set 'pspp-comment-start-found t))
+ (if (bobp)
+ (set 'pspp-comment-end-found nil)
+ (save-excursion
+ (forward-line -1)
+ (if (pspp-comment-end-line-p) (set 'pspp-comment-end-found t))
+ )
+ )
+ (set 'lines (forward-line -1))
+ )
+ )
+
+ (save-excursion
+ (set 'pspp-single-line-comment (and
+ (pspp-comment-start-line-p)
+ (pspp-comment-end-line-p)))
+ )
+
+ (or pspp-single-line-comment
+ (and pspp-comment-start-found (not pspp-comment-end-found)))
+ )
+ )
+ )
(defvar pspp-mode-syntax-table
(let (
(x-pspp-mode-syntax-table (make-syntax-table))
)
- (modify-syntax-entry ?_ "w" x-pspp-mode-syntax-table)
- (modify-syntax-entry ?. "w" x-pspp-mode-syntax-table)
- (modify-syntax-entry ?\" "|" x-pspp-mode-syntax-table)
- (modify-syntax-entry ?\' "|" x-pspp-mode-syntax-table)
-
- ;; Comment definitions
- (modify-syntax-entry ?* "<\n" x-pspp-mode-syntax-table)
-
-;; (modify-syntax-entry ?\n "- 1" x-pspp-mode-syntax-table)
-;; (modify-syntax-entry ?* ". 2" x-pspp-mode-syntax-table)
-
- (modify-syntax-entry ?\n ">*" x-pspp-mode-syntax-table)
-
+ ;; Special chars allowed in variables
+ (modify-syntax-entry ?# "w" x-pspp-mode-syntax-table)
+ (modify-syntax-entry ?@ "w" x-pspp-mode-syntax-table)
+ (modify-syntax-entry ?$ "w" x-pspp-mode-syntax-table)
+
+ ;; Comment syntax
+ ;; This is incomplete, because:
+ ;; a) Comments can also be given by COMMENT
+ ;; b) The sequence .\n* is interpreted incorrectly.
+
+ (modify-syntax-entry ?* ". 2" x-pspp-mode-syntax-table)
+ (modify-syntax-entry ?. ". 3" x-pspp-mode-syntax-table)
+ (modify-syntax-entry ?\n "- 41" x-pspp-mode-syntax-table)
+
+
+ ;; String delimiters
+ (modify-syntax-entry ?' "\"" x-pspp-mode-syntax-table)
+ (modify-syntax-entry ?" "\"" x-pspp-mode-syntax-table)
+
x-pspp-mode-syntax-table)
"Syntax table for pspp-mode")
+
+(defconst pspp-font-lock-keywords
+ (list
+
+ (cons (concat "\\<"
+ (regexp-opt '(
+ "END DATA"
+ "ACF"
+ "ADD FILES"
+ "ADD VALUE LABELS"
+ "AGGREGATE"
+ "ANOVA"
+ "APPLY DICTIONARY"
+ "AREG"
+ "ARIMA"
+ "AUTORECODE"
+ "BEGIN DATA"
+ "BREAK"
+ "CASEPLOT"
+ "CASESTOVARS"
+ "CCF"
+ "CLEAR TRANSFORMATIONS"
+ "CLUSTER"
+ "COMPUTE"
+ "CONJOINT"
+ "CORRELATIONS"
+ "COXREG"
+ "COUNT"
+ "CREATE"
+ "CROSSTABS"
+ "CURVEFIT"
+ "DATA LIST"
+ "DATE"
+ "DEBUG CASEFILE"
+ "DEBUG EVALUATE"
+ "DEBUG MOMENTS"
+ "DEBUG POOL"
+ "DELETE VARIABLES"
+ "DESCRIPTIVES"
+ "DISCRIMINANT"
+ "DISPLAY"
+ "DOCUMENT"
+ "DO IF"
+ "DO REPEAT"
+ "DROP DOCUMENTS"
+ "ECHO"
+ "EDIT"
+ "ELSE"
+ "ELSE IF"
+ "END CASE"
+ "END FILE"
+ "END FILE TYPE"
+ "END IF"
+ "END INPUT PROGRAM"
+ "END LOOP"
+ "END REPEAT"
+ "ERASE"
+ "EXAMINE"
+ "EXECUTE"
+ "EXIT"
+ "EXPORT"
+ "FACTOR"
+ "FILE HANDLE"
+ "FILE LABEL"
+ "FILE TYPE"
+ "FILTER"
+ "FINISH"
+ "FIT"
+ "FLIP"
+ "FORMATS"
+ "FREQUENCIES"
+ "GENLOG"
+ "GET"
+ "GET TRANSLATE"
+ "GLM"
+ "GRAPH"
+ "HILOGLINEAR"
+ "HOST"
+ "IF"
+ "IGRAPH"
+ "IMPORT"
+ "INCLUDE"
+ "INFO"
+ "INPUT MATRIX"
+ "INPUT PROGRAM"
+ "KEYED DATA LIST"
+ "LEAVE"
+ "LIST"
+ "LOGLINEAR"
+ "LOGISITIC REGRESSION"
+ "LOOP"
+ "MATCH FILES"
+ "MATRIX DATA"
+ "MCONVERT"
+ "MEANS"
+ "MISSING VALUES"
+ "MODIFY VARS"
+ "MULT RESPONSE"
+ "MVA"
+ "NEW FILE"
+ "N"
+ "N OF CASES"
+ "NLR"
+ "NONPAR CORR"
+ "NPAR TESTS"
+ "NUMBERED"
+ "NUMERIC"
+ "OLAP CUBES"
+ "OMS"
+ "ONEWAY"
+ "ORTHOPLAN"
+ "PACF"
+ "PARTIAL CORR"
+ "PEARSON CORRELATIONS"
+ "PERMISSIONS"
+ "PLOT"
+ "POINT"
+ "PPLOT"
+ "PREDICT"
+ "PRESERVE"
+ "PRINT EJECT"
+ "PRINT"
+ "PRINT FORMATS"
+ "PRINT SPACE"
+ "PROCEDURE OUTPUT"
+ "PROCESS IF"
+ "PROXIMITIES"
+ "Q"
+ "QUICK CLUSTER"
+ "QUIT"
+ "RANK"
+ "RECODE"
+ "RECORD TYPE"
+ "REFORMAT"
+ "REGRESSION"
+ "RENAME VARIABLES"
+ "REPEATING DATA"
+ "REPORT"
+ "REREAD"
+ "RESTORE"
+ "RMV"
+ "SAMPLE"
+ "SAVE"
+ "SAVE TRANSLATE"
+ "SCRIPT"
+ "SELECT IF"
+ "SET"
+ "SHOW"
+ "SORT CASES"
+ "SORT"
+ "SPCHART"
+ "SPLIT FILE"
+ "STRING"
+ "SUBTITLE"
+ "SUMMARIZE"
+ "SURVIVAL"
+ "SYSFILE INFO"
+ "TEMPORARY"
+ "TITLE"
+ "TSET"
+ "TSHOW"
+ "TSPLOT"
+ "T-TEST"
+ "UNIANOVA"
+ "UNNUMBERED"
+ "UPDATE"
+ "USE"
+ "VALUE LABELS"
+ "VARIABLE ALIGNMENT"
+ "VARIABLE LABELS"
+ "VARIABLE LEVEL"
+ "VARIABLE WIDTH"
+ "VARSTOCASES"
+ "VECTOR"
+ "VERIFY"
+ "WEIGHT"
+ "WRITE"
+ "WRITE FORMATS"
+ "XSAVE") t) "\\>" )
+ 'font-lock-builtin-face)
+
+ (cons
+ (concat "\\<" (regexp-opt '(
+ "ALL" "AND" "BY" "EQ" "GE" "GT" "LE" "LT"
+ "NE" "NOT" "OR" "TO" "WITH"
+ ) t ) "\\>") 'font-lock-keyword-face)
+
+
+ (cons
+ (concat "\\<"
+ (regexp-opt '(
+ "ABS"
+ "ACOS"
+ "ANY"
+ "ANY"
+ "ARCOS"
+ "ARSIN"
+ "ARTAN"
+ "ASIN"
+ "ATAN"
+ "CDF.BERNOULLI"
+ "CDF.BETA"
+ "CDF.BINOM"
+ "CDF.BVNOR"
+ "CDF.CAUCHY"
+ "CDF.CHISQ"
+ "CDF.EXP"
+ "CDF.F"
+ "CDF.GAMMA"
+ "CDF.GEOM"
+ "CDF.HALFNRM"
+ "CDF.HYPER"
+ "CDF.IGAUSS"
+ "CDF.LAPLACE"
+ "CDF.LNORMAL"
+ "CDF.LOGISTIC"
+ "CDF.NEGBIN"
+ "CDF.NORMAL"
+ "CDF.PARETO"
+ "CDF.POISSON"
+ "CDF.RAYLEIGH"
+ "CDF.SMOD"
+ "CDF.SRANGE"
+ "CDF.T"
+ "CDF.T1G"
+ "CDF.T2G"
+ "CDF.UNIFORM"
+ "CDF.WEIBULL"
+ "CDFNORM"
+ "CFVAR"
+ "CONCAT"
+ "COS"
+ "CTIME.DAYS"
+ "CTIME.HOURS"
+ "CTIME.MINUTES"
+ "CTIME.SECONDS"
+ "DATE.DMY"
+ "DATE.MDY"
+ "DATE.MOYR"
+ "DATE.QYR"
+ "DATE.WKYR"
+ "DATE.YRDAY"
+ "EXP"
+ "IDF.BETA"
+ "IDF.CAUCHY"
+ "IDF.CHISQ"
+ "IDF.EXP"
+ "IDF.F"
+ "IDF.GAMMA"
+ "IDF.HALFNRM"
+ "IDF.IGAUSS"
+ "IDF.LAPLACE"
+ "IDF.LNORMAL"
+ "IDF.LOGISTIC"
+ "IDF.NORMAL"
+ "IDF.PARETO"
+ "IDF.RAYLEIGH"
+ "IDF.SMOD"
+ "IDF.SRANGE"
+ "IDF.T"
+ "IDF.T1G"
+ "IDF.T2G"
+ "IDF.UNIFORM"
+ "IDF.WEIBULL"
+ "INDEX"
+ "INDEX"
+ "LAG"
+ "LAG"
+ "LAG"
+ "LAG"
+ "LENGTH"
+ "LG10"
+ "LN"
+ "LNGAMMA"
+ "LOWER"
+ "LPAD"
+ "LPAD"
+ "LTRIM"
+ "LTRIM"
+ "MAX"
+ "MAX"
+ "MBLEN.BYTE"
+ "MEAN"
+ "MIN"
+ "MIN"
+ "MISSING"
+ "MOD"
+ "MOD10"
+ "NCDF.BETA"
+ "NCDF.CHISQ"
+ "NCDF.F"
+ "NCDF.T"
+ "NMISS"
+ "NORMAL"
+ "NPDF.BETA"
+ "NPDF.CHISQ"
+ "NPDF.F"
+ "NPDF.T"
+ "NUMBER"
+ "NVALID"
+ "PDF.BERNOULLI"
+ "PDF.BETA"
+ "PDF.BINOM"
+ "PDF.BVNOR"
+ "PDF.CAUCHY"
+ "PDF.CHISQ"
+ "PDF.EXP"
+ "PDF.F"
+ "PDF.GAMMA"
+ "PDF.GEOM"
+ "PDF.HALFNRM"
+ "PDF.HYPER"
+ "PDF.IGAUSS"
+ "PDF.LANDAU"
+ "PDF.LAPLACE"
+ "PDF.LNORMAL"
+ "PDF.LOG"
+ "PDF.LOGISTIC"
+ "PDF.NEGBIN"
+ "PDF.NORMAL"
+ "PDF.NTAIL"
+ "PDF.PARETO"
+ "PDF.POISSON"
+ "PDF.RAYLEIGH"
+ "PDF.RTAIL"
+ "PDF.T"
+ "PDF.T1G"
+ "PDF.T2G"
+ "PDF.UNIFORM"
+ "PDF.WEIBULL"
+ "PDF.XPOWER"
+ "PROBIT"
+ "RANGE"
+ "RANGE"
+ "RINDEX"
+ "RINDEX"
+ "RND"
+ "RPAD"
+ "RPAD"
+ "RTRIM"
+ "RTRIM"
+ "RV.BERNOULLI"
+ "RV.BETA"
+ "RV.BINOM"
+ "RV.CAUCHY"
+ "RV.CHISQ"
+ "RV.EXP"
+ "RV.F"
+ "RV.GAMMA"
+ "RV.GEOM"
+ "RV.HALFNRM"
+ "RV.HYPER"
+ "RV.IGAUSS"
+ "RV.LANDAU"
+ "RV.LAPLACE"
+ "RV.LEVY"
+ "RV.LNORMAL"
+ "RV.LOG"
+ "RV.LOGISTIC"
+ "RV.LVSKEW"
+ "RV.NEGBIN"
+ "RV.NORMAL"
+ "RV.NTAIL"
+ "RV.PARETO"
+ "RV.POISSON"
+ "RV.RAYLEIGH"
+ "RV.RTAIL"
+ "RV.T"
+ "RV.T1G"
+ "RV.T2G"
+ "RV.UNIFORM"
+ "RV.WEIBULL"
+ "RV.XPOWER"
+ "SD"
+ "SIG.CHISQ"
+ "SIG.F"
+ "SIN"
+ "SQRT"
+ "STRING"
+ "SUBSTR"
+ "SUBSTR"
+ "SUM"
+ "SYSMIS"
+ "SYSMIS"
+ "TAN"
+ "TIME.DAYS"
+ "TIME.HMS"
+ "TRUNC"
+ "UNIFORM"
+ "UPCASE"
+ "VALUE"
+ "VARIANCE"
+ "XDATE.DATE"
+ "XDATE.HOUR"
+ "XDATE.JDAY"
+ "XDATE.MDAY"
+ "XDATE.MINUTE"
+ "XDATE.MONTH"
+ "XDATE.QUARTER"
+ "XDATE.SECOND"
+ "XDATE.TDAY"
+ "XDATE.TIME"
+ "XDATE.WEEK"
+ "XDATE.WKDAY"
+ "XDATE.YEAR"
+ "YRMODA" )
+ t) "\\>" ) 'font-lock-function-name-face)
+
+ '( "\\<[#$@a-zA-Z][a-zA-Z0-9_]*\\>" . font-lock-variable-name-face)
+
+
+
+ )
+"Highlighting expressions for PSPP mode.")
+
+
(defun pspp-mode ()
(interactive)
(kill-all-local-variables)
(use-local-map pspp-mode-map)
(set-syntax-table pspp-mode-syntax-table)
- (setq comment-start "* ")
+
+ (set (make-local-variable 'font-lock-keywords-case-fold-search) t)
+ (set (make-local-variable 'font-lock-defaults) '(pspp-font-lock-keywords))
+
;; Register our indentation function
+
(set (make-local-variable 'indent-line-function) 'pspp-indent-line)
+
+ (set (make-local-variable 'compile-command)
+ (concat "pspp "
+ buffer-file-name
+ ))
+
(setq major-mode 'pspp-mode)
(setq mode-name "PSPP")
(run-hooks 'pspp-mode-hook))