home *** CD-ROM | disk | FTP | other *** search
/ Chip 2000 February / OpenLinux 2.3 CD.iso / live / usr / share / vim / syntax / lisp.vim < prev    next >
Encoding:
Text File  |  1999-08-10  |  14.6 KB  |  259 lines

  1. " Vim syntax file
  2. " Language:    Lisp
  3. " Maintainer:    Dr. Charles E. Campbell, Jr. <Charles.Campbell@gsfc.nasa.gov>
  4. " Last change:    Aug 27, 1997
  5.  
  6. " remove any old syntax stuff hanging around
  7. syn clear
  8. set iskeyword=42,43,45,47-58,60-62,64-90,97-122,_
  9.  
  10. " Lists
  11. syn match    lispSymbol    ![^()'`,"; \t]\+!    contained
  12. syn match    lispBarSymbol    !|..\{-}|!        contained
  13. syn region    lispList matchgroup=Delimiter start="(" skip="|.\{-}|" matchgroup=Delimiter end=")" contains=lispAtom,lispBQList,lispConcat,lispDeclaration,lispList,lispNumber,lispSymbol,lispSpecial,lispFunc,lispKey,lispVar,lispAtomMark,lispString,lispComment,lispBarSymbol,lispAtomBarSymbol
  14. syn region    lispBQList    matchgroup=PreProc   start="`("    skip="|.\{-}|" matchgroup=PreProc   end=")" contains=lispAtom,lispBQList,lispConcat,lispDeclaration,lispList,lispNumber,lispSpecial,lispSymbol,lispFunc,lispKey,lispVar,lispAtomMark,lispString,lispComment,lispBarSymbol,lispAtomBarSymbol
  15.  
  16. " Atoms
  17. syn match    lispAtomMark    "'"
  18. syn match    lispAtom    "'("me=e-1    contains=lispAtomMark    nextgroup=lispAtomList
  19. syn match    lispAtom    "'[^ \t()]\+"    contains=lispAtomMark
  20. syn match    lispAtomBarSymbol    !'|..\{-}|!    contains=lispAtomMark
  21. syn region    lispAtom    start=+'"+    skip=+\\"+ end=+"+
  22. syn region    lispAtomList    matchgroup=Special start="("    skip="|.\{-}|" matchgroup=Special end=")"    contained contains=lispAtomList,lispAtomNmbr0,lispString,lispComment,lispAtomBarSymbol
  23. syn match    lispAtomNmbr    "\<\d\+"            contained
  24.  
  25. " Standard Lisp Functions and Macros
  26. syn keyword lispFunc    abs    copy-list    gethash    nreconc    setf
  27. syn keyword lispFunc    access    copy-readtable    go    nreverse    setq
  28. syn keyword lispFunc    acons    copy-seq    graphic-char-p    nset-difference    seventh
  29. syn keyword lispFunc    acos    copy-symbol    hash-table-p    nstring-upcase    shadow
  30. syn keyword lispFunc    acosh    copy-tree    host-namestring    nsublis    shiftf
  31. syn keyword lispFunc    adjoin    cos    identity    nsubst    short-site-name
  32. syn keyword lispFunc    adjust-array    cosh    if    nsubst-if    signed-byte
  33. syn keyword lispFunc    alpha-char-p    count    if-exists    nsubst-if-not    signum
  34. syn keyword lispFunc    alphanumericp    count-if    ignore    nsubstitute    simple-string-p
  35. syn keyword lispFunc    and    count-if-not    imagpart    nsubstitute-if    simple-vector-p
  36. syn keyword lispFunc    append    ctypecase    import    nth    sin
  37. syn keyword lispFunc    apply    decf    in-package    nthcdr    sinh
  38. syn keyword lispFunc    applyhook    declaration    in-package    null    sixth
  39. syn keyword lispFunc    apropos    declare    incf    numberp    sleep
  40. syn keyword lispFunc    apropos-list    decode-float    inline    numerator    software-type
  41. syn keyword lispFunc    aref    defconstant    input-stream-p    nunion    some
  42. syn keyword lispFunc    array-dimension        inspect    oddp    sort
  43. syn keyword lispFunc    array-rank    defparameter    int-char    open    special
  44. syn keyword lispFunc    array-rank-limit        integer-length    optimize    special-form-p
  45. syn keyword lispFunc    arrayp    defstruct    integerp    or    sqrt
  46. syn keyword lispFunc    ash        intern    output-stream-p    stable-sort
  47. syn keyword lispFunc    asin        intersection    package-name    standard-char-p
  48. syn keyword lispFunc    asinh    defvar    isqrt    packagep    step
  49. syn keyword lispFunc    assert    delete    keyword    pairlis    streamup
  50. syn keyword lispFunc    assoc    delete-file        parse-integer    string
  51. syn keyword lispFunc    assoc-if    delete-if    last    pathname    string-char
  52. syn keyword lispFunc    assoc-if-not    delete-if-not    lcm    pathname-device    string-char-p
  53. syn keyword lispFunc    atan    denominator    ldb    pathname-host    string-downcase
  54. syn keyword lispFunc    atanh    deposit-field    ldb-test    pathname-name    string-equal
  55. syn keyword lispFunc    bit    describe    ldiff    pathname-type    string-greaterp
  56. syn keyword lispFunc    bit-and    digit-char    length    pathnamep    string-lessp
  57. syn keyword lispFunc    bit-andc1    digit-char-p        peek-char    string-trim
  58. syn keyword lispFunc    bit-andc2    directory    let*    phase    string-upcase
  59. syn keyword lispFunc    bit-eqv    disassemble    lisp    pi    string/=
  60. syn keyword lispFunc    bit-ior    do    list    plusp    string<
  61. syn keyword lispFunc    bit-nand    do*    list*    pop    string<=
  62. syn keyword lispFunc    bit-nor    do-all-symbols    list-length    position    string=
  63. syn keyword lispFunc    bit-not    do-symbols    listen    position-if    string>
  64. syn keyword lispFunc    bit-orc1    documentation    listp    position-if-not    string>=
  65. syn keyword lispFunc    bit-orc2    dolistdotimes    load    pprint    stringp
  66. syn keyword lispFunc    bit-vector-p    dpb        prin1    sublim
  67. syn keyword lispFunc    bit-xor    dribble    log    prin1-to-string    subseq
  68. syn keyword lispFunc    block    ecase    logand    princ    subsetp
  69. syn keyword lispFunc    boole    ed    logandc1    princ-to-string    subst
  70. syn keyword lispFunc    both-case-p    eighth    logandc2    print    subst-if
  71. syn keyword lispFunc    boundp    elt    logcount    probe-file    subst-if-not
  72. syn keyword lispFunc    break    endp    logeqv    proclaim    subtypep
  73. syn keyword lispFunc    butlast    eq    logior    prog    svref
  74. syn keyword lispFunc    byte    eql    lognand    prog*    sxhash
  75. syn keyword lispFunc    byte-poision    equal    lognor    prog1    symbol-function
  76. syn keyword lispFunc    byte-size    equalp    lognot    prog2    symbol-name
  77. syn keyword lispFunc    car    error    logorc1    progn    symbol-package
  78. syn keyword lispFunc    catch    etypecase    logorc2    progv    symbol-plist
  79. syn keyword lispFunc    ccase    eval    logtest    provide    symbol-value
  80. syn keyword lispFunc    cdr    eval-when    logxor    psetf    symbolp
  81. syn keyword lispFunc    ceiling    evalhook    long-site-name    psetq    sys
  82. syn keyword lispFunc    cerror    evenp    loop    push    system
  83. syn keyword lispFunc    char    every    lower-case-p    pushnew    t
  84. syn keyword lispFunc    char-bit    exp    machine-type    putprop    tagbody
  85. syn keyword lispFunc    char-bits    export    machine-version    quote    tailp
  86. syn keyword lispFunc    char-bits-limit    expt    macro-function    random    tan
  87. syn keyword lispFunc    char-code    fboundp    macroexpand    random-state-p    tanh
  88. syn keyword lispFunc    char-code-limit    fceiling    macroexpand-l    rassoc    tenth
  89. syn keyword lispFunc    char-downcase    ffloor        rassoc-if    terpri
  90. syn keyword lispFunc    char-equal    fifth    make-array    rassoc-if-not    the
  91. syn keyword lispFunc    char-font    file-author    make-array    rational    third
  92. syn keyword lispFunc    char-font-limit    file-length    make-char    rationalize    throw
  93. syn keyword lispFunc    char-greaterp    file-namestring    make-hash-table    rationalp    time
  94. syn keyword lispFunc    char-hyper-bit    file-position    make-list    read    trace
  95. syn keyword lispFunc    char-int    file-write-date    make-package    read-byte    tree-equal
  96. syn keyword lispFunc    char-lessp    fill    make-pathname    read-char    truename
  97. syn keyword lispFunc    char-meta-bit    fill-pointer    make-sequence    read-eval-print    truncase
  98. syn keyword lispFunc    char-name    find    make-string    read-line    type
  99. syn keyword lispFunc    char-not-equal    find-if    make-symbol    readtablep    type-of
  100. syn keyword lispFunc    char-not-lessp    find-if-not    makunbound    realpart    typecase
  101. syn keyword lispFunc    char-super-bit    find-package    map    reduce    typep
  102. syn keyword lispFunc    char-upcase    find-symbol    mapc    rem    unexport
  103. syn keyword lispFunc    char/=    finish-output    mapcan    remf    unintern
  104. syn keyword lispFunc    char<    first    mapcar    remhash    union
  105. syn keyword lispFunc    char<=        mapcon    remove    unless
  106. syn keyword lispFunc    char=    float    maphash    remove-if    unread
  107. syn keyword lispFunc    char>    float-digits    mapl    remove-if-not    unsigned-byte
  108. syn keyword lispFunc    char>=    float-precision    maplist    remprop    untrace
  109. syn keyword lispFunc    character    float-radix    mask-field    rename-file    unuse-package
  110. syn keyword lispFunc    characterp    float-sign    max    rename-package    unwind-protect
  111. syn keyword lispFunc    check-type    floatp    member    replace    upper-case-p
  112. syn keyword lispFunc    cis    floor    member-if    require    use-package
  113. syn keyword lispFunc    clear-input    fmakunbound    member-if-not    rest    user
  114. syn keyword lispFunc    clear-output    force-output    merge    return    values
  115. syn keyword lispFunc    close    fourth    merge-pathname    return-from    values-list
  116. syn keyword lispFunc    clrhash    fresh-line    min    revappend    vector
  117. syn keyword lispFunc    code-char    fround    minusp    reverse    vector-pop
  118. syn keyword lispFunc    coerce    ftruncate    mismatch    room    vector-push
  119. syn keyword lispFunc    commonp    ftype    mod    rotatef    vectorp
  120. syn keyword lispFunc    compile    funcall    name-char    round    warn
  121. syn keyword lispFunc    compile-file    function    namestring    rplaca    when
  122. syn keyword lispFunc    compiler-let    functionp    nbutlast    rplacd    with-open-file
  123. syn keyword lispFunc    complex    gbitp    nconc    sbit    write
  124. syn keyword lispFunc    complexp    gcd    nil    scale-float    write-byte
  125. syn keyword lispFunc    concatenate    gensym    nintersection    schar    write-char
  126. syn keyword lispFunc    cond    gentemp    ninth    search    write-line
  127. syn keyword lispFunc    conjugate    get    not    second    write-string
  128. syn keyword lispFunc    cons    get-properties    notany    set    write-to-string
  129. syn keyword lispFunc    consp    get-setf-method    notevery    set-char-bit    y-or-n-p
  130. syn keyword lispFunc    constantp    getf    notinline    set-difference    yes-or-no-p
  131. syn keyword lispFunc    copy-alist    <    >    =    -
  132. syn keyword lispFunc    +    *    /
  133. syn match   lispFunc    "\<c[ad]\+r\>"
  134.  
  135. syn keyword lispFunc    adjustable-array-p    least-negative-short-float    nstring-capitalize
  136. syn keyword lispFunc    array-dimension-limit    least-negative-single-float    nstring-downcase
  137. syn keyword lispFunc    array-dimensions        least-positive-double-float    nsubstitute-if-not
  138. syn keyword lispFunc    array-element-type    least-positive-long-float    package-nicknames
  139. syn keyword lispFunc    array-has-fill-pointer-p    least-positive-short-float    package-shadowing-symbols
  140. syn keyword lispFunc    array-in-bounds-p    least-positive-single-float    package-use-list
  141. syn keyword lispFunc    array-row-major-index    lisp-implementation-type    package-used-by-list
  142. syn keyword lispFunc    array-total-size        lisp-implementation-version    parse-namestring
  143. syn keyword lispFunc    array-total-size-limit    list-all-packages    pathname-directory
  144. syn keyword lispFunc    call-arguments-limit    long-float-epsilon    pathname-version
  145. syn keyword lispFunc    char-control-bit        long-float-negative-epsilon    read-char-no-hang
  146. syn keyword lispFunc    char-not-greaterp    machine-instance        read-delimited-list
  147. syn keyword lispFunc    compiled-function-p    make-broadcast-stream    read-from-string
  148. syn keyword lispFunc    decode-universal-time    make-concatenated-stream    read-preserving-whitespace
  149. syn keyword lispFunc    define-modify-macro    make-dispatch-macro-character    remove-duplicates
  150. syn keyword lispFunc    define-setf-method    make-echo-stream        set-dispatch-macro-character
  151. syn keyword lispFunc    delete-duplicates    make-random-state    set-exclusive-or
  152. syn keyword lispFunc    directory-namestring    make-string-input-stream    set-macro-character
  153. syn keyword lispFunc    do-exeternal-symbols    make-string-output-stream    set-syntax-from-char
  154. syn keyword lispFunc    double-float-epsilon    make-synonym-stream    shadowing-import
  155. syn keyword lispFunc    double-float-negative-epsilon    make-two-way-stream    short-float-epsilon
  156. syn keyword lispFunc    encode-universal-time    most-negative-double-float    simple-bit-vector-p
  157. syn keyword lispFunc    enough-namestring    most-negative-fixnum    single-flaot-epsilon
  158. syn keyword lispFunc    find-all-symbols        most-negative-long-float    single-float-negative-epsilon
  159. syn keyword lispFunc    get-decoded-time        most-negative-short-float    software-version
  160. syn keyword lispFunc    get-dispatch-macro-character    most-negative-single-float    stream-element-type
  161. syn keyword lispFunc    get-internal-real-time    most-positive-double-float    string-capitalize
  162. syn keyword lispFunc    get-internal-run-time    most-positive-fixnum    string-left-trim
  163. syn keyword lispFunc    get-macro-character    most-positive-long-float    string-not-equal
  164. syn keyword lispFunc    get-output-stream-string    most-positive-short-float    string-not-greaterp
  165. syn keyword lispFunc    get-universal-time    most-positive-single-float    string-not-lessp
  166. syn keyword lispFunc    hash-table-count        multiple-value-bind    string-right-strim
  167. syn keyword lispFunc    integer-decode-float    multiple-value-call    user-homedir-pathname
  168. syn keyword lispFunc    internal-time-units-per-second    multiple-value-list    vector-push-extend
  169. syn keyword lispFunc    lambda-list-keywords    multiple-value-prog1    with-input-from-string
  170. syn keyword lispFunc    lambda-parameters-limit    multiple-value-seteq    with-open-stream
  171. syn keyword lispFunc    least-negative-double-float    multiple-values-limit    with-output-to-string
  172. syn keyword lispFunc    least-negative-long-float    nset-exclusive-or
  173.  
  174. " Lisp Keywords (modifiers)
  175. syn keyword lispKey    :abort    :element-type    :internal    :probe
  176. syn keyword lispKey    :adjustable    :end    :io    :radix
  177. syn keyword lispKey    :append    :end1    :junk-allowed    :read-only
  178. syn keyword lispKey    :array    :end2    :key    :rehash-size
  179. syn keyword lispKey    :base    :error    :length    :rename
  180. syn keyword lispKey    :case    :escape    :level    :size
  181. syn keyword lispKey    :circle    :external    :name    :start
  182. syn keyword lispKey    :conc-name    :from-end    :named    :start1
  183. syn keyword lispKey    :constructor    :gensym    :new-version    :start2
  184. syn keyword lispKey    :copier    :host    :nicknames    :stream
  185. syn keyword lispKey    :count    :if-exists    :output    :supersede
  186. syn keyword lispKey    :create    :include    :output-file    :test
  187. syn keyword lispKey    :default    :index    :overwrite    :test-not
  188. syn keyword lispKey    :defaults    :inherited    :predicate    :type
  189. syn keyword lispKey    :device    :initial-element    :pretty    :use
  190. syn keyword lispKey    :direction    :initial-offset    :print    :verbose
  191. syn keyword lispKey    :directory    :initial-value    :print-function    :version
  192. syn keyword lispKey    :displaced-to    :input
  193.  
  194. syn keyword lispKey    :displaced-index-offset    :initial-contents    :rehash-threshold
  195. syn keyword lispKey    :if-does-not-exist    :preserve-whitespace    :rename-and-delete
  196.  
  197. " Standard Lisp Variables
  198. syn keyword lispVar    *applyhook*    *modules*    *print-circle*    *print-pretty*    *read-suppress*
  199. syn keyword lispVar    *debug-io*    *package*    *print-escape*    *print-radix*    *readtable*
  200. syn keyword lispVar    *error-output*    *print-array*    *print-gensym*    *query-io*    *standard-input*
  201. syn keyword lispVar    *evalhook*    *print-base*    *print-length*    *random-state*    *terminal-io*
  202. syn keyword lispVar    *features*    *print-case*    *print-level*    *read-base*    *trace-output*
  203. syn keyword lispVar    *load-verbose*
  204.  
  205. syn keyword lispVar    *break-on-warnings*    *macroexpand-hook*    *standard-output*
  206. syn keyword lispVar    *default-pathname-defaults*    *read-default-float-format*
  207.  
  208. " Strings
  209. syn region    lispString    start=+"+    skip=+\\"+ end=+"+
  210.  
  211. " Shared with Xlisp, Declarations, Macros, Functions
  212. syn keyword    lispDeclaration    defmacro defsetf deftype defun dotimes flet labels let locally macrolet
  213. syn keyword    lispDeclaration    do* do-all-symbols do-external-symbols do-symbols multiple-value-bind
  214.  
  215. syn match    lispNumber    "\d\+"
  216.  
  217. syn match    lispSpecial    "\*[a-zA-Z_][a-zA-Z_0-9-]*\*"
  218. syn match    lispSpecial    !#|[^()'`,"; \t]\+|#!
  219. syn match    lispSpecial    !#x[0-9a-fA-F]\+!
  220. syn match    lispSpecial    !#o[0-7]\+!
  221. syn match    lispSpecial    !#b[01]\+!
  222. syn match    lispSpecial    !#\\[ -\~]!
  223. syn match    lispSpecial    !#[':][^()'`,"; \t]\+!
  224. syn match    lispSpecial    !#([^()'`,"; \t]\+)!
  225.  
  226. syn match    lispConcat    "\s\.\s"
  227. syntax match    lispParenError    ")"
  228.  
  229. " Comments
  230. syn match    lispComment    ";.*$"
  231.  
  232. " synchronization
  233. syn sync lines=100
  234.  
  235. if !exists("did_lisp_syntax_inits")
  236.   let did_lisp_syntax_inits= 1
  237.   hi link lispAtomNmbr    lispNumber
  238.   hi link lispAtomMark    lispMark
  239.  
  240.   hi link lispAtom    Identifier
  241.   hi link lispAtomBarSymbol    Special
  242.   hi link lispBarSymbol    Special
  243.   hi link lispComment    Comment
  244.   hi link lispConcat    Statement
  245.   hi link lispDeclaration    Statement
  246.   hi link lispFunc    Statement
  247.   hi link lispKey        Type
  248.   hi link lispMark    Delimiter
  249.   hi link lispNumber    Number
  250.   hi link lispParenError    Error
  251.   hi link lispSpecial    Type
  252.   hi link lispString    String
  253.   hi link lispVar    Statement
  254.   endif
  255.  
  256. let b:current_syntax = "lisp"
  257.  
  258. " vim: ts=18
  259.