xref: /vim-8.2.3635/runtime/syntax/jess.vim (revision f37506f6)
1071d4279SBram Moolenaar" Vim syntax file
2071d4279SBram Moolenaar" Language:	Jess
3071d4279SBram Moolenaar" Maintainer:	Paul Baleme <[email protected]>
4071d4279SBram Moolenaar" Last change:	September 14, 2000
5071d4279SBram Moolenaar" Based on lisp.vim by : Dr. Charles E. Campbell, Jr.
6071d4279SBram Moolenaar
789bcfda6SBram Moolenaar" quit when a syntax file was already loaded
889bcfda6SBram Moolenaarif exists("b:current_syntax")
9071d4279SBram Moolenaar  finish
10071d4279SBram Moolenaarendif
11071d4279SBram Moolenaar
12071d4279SBram Moolenaarsetlocal iskeyword=42,43,45,47-58,60-62,64-90,97-122,_
13071d4279SBram Moolenaar
14071d4279SBram Moolenaar" Lists
15071d4279SBram Moolenaarsyn match	jessSymbol	![^()'`,"; \t]\+!	contained
16071d4279SBram Moolenaarsyn match	jessBarSymbol	!|..\{-}|!		contained
17071d4279SBram Moolenaarsyn region	jessList matchgroup=Delimiter start="(" skip="|.\{-}|" matchgroup=Delimiter end=")" contains=jessAtom,jessBQList,jessConcat,jessDeclaration,jessList,jessNumber,jessSymbol,jessSpecial,jessFunc,jessKey,jessAtomMark,jessString,jessComment,jessBarSymbol,jessAtomBarSymbol,jessVar
18071d4279SBram Moolenaarsyn region	jessBQList	matchgroup=PreProc   start="`("	skip="|.\{-}|" matchgroup=PreProc   end=")" contains=jessAtom,jessBQList,jessConcat,jessDeclaration,jessList,jessNumber,jessSpecial,jessSymbol,jessFunc,jessKey,jessVar,jessAtomMark,jessString,jessComment,jessBarSymbol,jessAtomBarSymbol
19071d4279SBram Moolenaar
20071d4279SBram Moolenaar" Atoms
21071d4279SBram Moolenaarsyn match	jessAtomMark	"'"
22071d4279SBram Moolenaarsyn match	jessAtom	"'("me=e-1	contains=jessAtomMark	nextgroup=jessAtomList
23071d4279SBram Moolenaarsyn match	jessAtom	"'[^ \t()]\+"	contains=jessAtomMark
24071d4279SBram Moolenaarsyn match	jessAtomBarSymbol	!'|..\{-}|!	contains=jessAtomMark
25071d4279SBram Moolenaarsyn region	jessAtom	start=+'"+	skip=+\\"+ end=+"+
26071d4279SBram Moolenaarsyn region	jessAtomList	matchgroup=Special start="("	skip="|.\{-}|" matchgroup=Special end=")"	contained contains=jessAtomList,jessAtomNmbr0,jessString,jessComment,jessAtomBarSymbol
27071d4279SBram Moolenaarsyn match	jessAtomNmbr	"\<[0-9]\+"			contained
28071d4279SBram Moolenaar
29071d4279SBram Moolenaar" Standard jess Functions and Macros
30071d4279SBram Moolenaarsyn keyword jessFunc    *   +   **	-   /   <   >   <=  >=  <>  =
31071d4279SBram Moolenaarsyn keyword jessFunc    long	    longp
32071d4279SBram Moolenaarsyn keyword jessFunc    abs	    agenda	      and
33071d4279SBram Moolenaarsyn keyword jessFunc    assert	    assert-string       bag
34071d4279SBram Moolenaarsyn keyword jessFunc    batch	    bind	      bit-and
35071d4279SBram Moolenaarsyn keyword jessFunc    bit-not	    bit-or	      bload
36071d4279SBram Moolenaarsyn keyword jessFunc    bsave	    build	      call
37071d4279SBram Moolenaarsyn keyword jessFunc    clear	    clear-storage       close
38071d4279SBram Moolenaarsyn keyword jessFunc    complement$     context	      count-query-results
39071d4279SBram Moolenaarsyn keyword jessFunc    create$
40071d4279SBram Moolenaarsyn keyword jessFunc    delete$	    div
41071d4279SBram Moolenaarsyn keyword jessFunc    do-backward-chaining	      e
42071d4279SBram Moolenaarsyn keyword jessFunc    engine	    eq	      eq*
43071d4279SBram Moolenaarsyn keyword jessFunc    eval	    evenp	      exit
44071d4279SBram Moolenaarsyn keyword jessFunc    exp	    explode$	      external-addressp
45071d4279SBram Moolenaarsyn keyword jessFunc    fact-slot-value facts	      fetch
46071d4279SBram Moolenaarsyn keyword jessFunc    first$	    float	      floatp
47071d4279SBram Moolenaarsyn keyword jessFunc    foreach	    format	      gensym*
48071d4279SBram Moolenaarsyn keyword jessFunc    get	    get-fact-duplication
49071d4279SBram Moolenaarsyn keyword jessFunc    get-member	    get-multithreaded-io
50071d4279SBram Moolenaarsyn keyword jessFunc    get-reset-globals	      get-salience-evaluation
51071d4279SBram Moolenaarsyn keyword jessFunc    halt	    if	      implode$
52071d4279SBram Moolenaarsyn keyword jessFunc    import	    insert$	      integer
53071d4279SBram Moolenaarsyn keyword jessFunc    integerp	    intersection$       jess-version-number
54071d4279SBram Moolenaarsyn keyword jessFunc    jess-version-string	      length$
55071d4279SBram Moolenaarsyn keyword jessFunc    lexemep	    list-function$      load-facts
56071d4279SBram Moolenaarsyn keyword jessFunc    load-function   load-package	      log
57071d4279SBram Moolenaarsyn keyword jessFunc    log10	    lowcase	      matches
58071d4279SBram Moolenaarsyn keyword jessFunc    max	    member$	      min
59071d4279SBram Moolenaarsyn keyword jessFunc    mod	    modify	      multifieldp
60071d4279SBram Moolenaarsyn keyword jessFunc    neq	    new	      not
61071d4279SBram Moolenaarsyn keyword jessFunc    nth$	    numberp	      oddp
62071d4279SBram Moolenaarsyn keyword jessFunc    open	    or	      pi
63071d4279SBram Moolenaarsyn keyword jessFunc    ppdeffunction   ppdefglobal	      ddpefrule
64071d4279SBram Moolenaarsyn keyword jessFunc    printout	    random	      read
65071d4279SBram Moolenaarsyn keyword jessFunc    readline	    replace$	      reset
66071d4279SBram Moolenaarsyn keyword jessFunc    rest$	    retract	      retract-string
67071d4279SBram Moolenaarsyn keyword jessFunc    return	    round	      rules
68071d4279SBram Moolenaarsyn keyword jessFunc    run	    run-query	      run-until-halt
69071d4279SBram Moolenaarsyn keyword jessFunc    save-facts	    set	      set-fact-duplication
70071d4279SBram Moolenaarsyn keyword jessFunc    set-factory     set-member	      set-multithreaded-io
71071d4279SBram Moolenaarsyn keyword jessFunc    set-node-index-hash	      set-reset-globals
72071d4279SBram Moolenaarsyn keyword jessFunc    set-salience-evaluation	      set-strategy
73071d4279SBram Moolenaarsyn keyword jessFunc    setgen	    show-deffacts       show-deftemplates
74071d4279SBram Moolenaarsyn keyword jessFunc    show-jess-listeners	      socket
75071d4279SBram Moolenaarsyn keyword jessFunc    sqrt	    store	      str-cat
76071d4279SBram Moolenaarsyn keyword jessFunc    str-compare     str-index	      str-length
77071d4279SBram Moolenaarsyn keyword jessFunc    stringp	    sub-string	      subseq$
78071d4279SBram Moolenaarsyn keyword jessFunc    subsetp	    sym-cat	      symbolp
79071d4279SBram Moolenaarsyn keyword jessFunc    system	    throw	      time
80071d4279SBram Moolenaarsyn keyword jessFunc    try	    undefadvice	      undefinstance
81071d4279SBram Moolenaarsyn keyword jessFunc    undefrule	    union$	      unwatch
82071d4279SBram Moolenaarsyn keyword jessFunc    upcase	    view	      watch
83071d4279SBram Moolenaarsyn keyword jessFunc    while
84071d4279SBram Moolenaarsyn match   jessFunc	"\<c[ad]\+r\>"
85071d4279SBram Moolenaar
86071d4279SBram Moolenaar" jess Keywords (modifiers)
87071d4279SBram Moolenaarsyn keyword jessKey	    defglobal	  deffunction	    defrule
88071d4279SBram Moolenaarsyn keyword jessKey	    deffacts
89071d4279SBram Moolenaarsyn keyword jessKey	    defadvice	  defclass	    definstance
90071d4279SBram Moolenaar
91071d4279SBram Moolenaar" Standard jess Variables
92071d4279SBram Moolenaarsyn region	jessVar	start="?"	end="[^a-zA-Z0-9]"me=e-1
93071d4279SBram Moolenaar
94071d4279SBram Moolenaar" Strings
95071d4279SBram Moolenaarsyn region	jessString	start=+"+	skip=+\\"+ end=+"+
96071d4279SBram Moolenaar
97071d4279SBram Moolenaar" Shared with Declarations, Macros, Functions
98071d4279SBram Moolenaar"syn keyword	jessDeclaration
99071d4279SBram Moolenaar
100071d4279SBram Moolenaarsyn match	jessNumber	"[0-9]\+"
101071d4279SBram Moolenaar
102071d4279SBram Moolenaarsyn match	jessSpecial	"\*[a-zA-Z_][a-zA-Z_0-9-]*\*"
103071d4279SBram Moolenaarsyn match	jessSpecial	!#|[^()'`,"; \t]\+|#!
104071d4279SBram Moolenaarsyn match	jessSpecial	!#x[0-9a-fA-F]\+!
105071d4279SBram Moolenaarsyn match	jessSpecial	!#o[0-7]\+!
106071d4279SBram Moolenaarsyn match	jessSpecial	!#b[01]\+!
107071d4279SBram Moolenaarsyn match	jessSpecial	!#\\[ -\~]!
108071d4279SBram Moolenaarsyn match	jessSpecial	!#[':][^()'`,"; \t]\+!
109071d4279SBram Moolenaarsyn match	jessSpecial	!#([^()'`,"; \t]\+)!
110071d4279SBram Moolenaar
111071d4279SBram Moolenaarsyn match	jessConcat	"\s\.\s"
112071d4279SBram Moolenaarsyntax match	jessParenError	")"
113071d4279SBram Moolenaar
114071d4279SBram Moolenaar" Comments
115071d4279SBram Moolenaarsyn match	jessComment	";.*$"
116071d4279SBram Moolenaar
117071d4279SBram Moolenaar" synchronization
118071d4279SBram Moolenaarsyn sync lines=100
119071d4279SBram Moolenaar
120071d4279SBram Moolenaar" Define the default highlighting.
12189bcfda6SBram Moolenaar" Only when an item doesn't have highlighting yet
122071d4279SBram Moolenaar
123*f37506f6SBram Moolenaarhi def link jessAtomNmbr	jessNumber
124*f37506f6SBram Moolenaarhi def link jessAtomMark	jessMark
125071d4279SBram Moolenaar
126*f37506f6SBram Moolenaarhi def link jessAtom		Identifier
127*f37506f6SBram Moolenaarhi def link jessAtomBarSymbol	Special
128*f37506f6SBram Moolenaarhi def link jessBarSymbol	Special
129*f37506f6SBram Moolenaarhi def link jessComment	Comment
130*f37506f6SBram Moolenaarhi def link jessConcat	Statement
131*f37506f6SBram Moolenaarhi def link jessDeclaration	Statement
132*f37506f6SBram Moolenaarhi def link jessFunc		Statement
133*f37506f6SBram Moolenaarhi def link jessKey		Type
134*f37506f6SBram Moolenaarhi def link jessMark		Delimiter
135*f37506f6SBram Moolenaarhi def link jessNumber	Number
136*f37506f6SBram Moolenaarhi def link jessParenError	Error
137*f37506f6SBram Moolenaarhi def link jessSpecial	Type
138*f37506f6SBram Moolenaarhi def link jessString	String
139*f37506f6SBram Moolenaarhi def link jessVar		Identifier
140071d4279SBram Moolenaar
141071d4279SBram Moolenaar
142071d4279SBram Moolenaarlet b:current_syntax = "jess"
143071d4279SBram Moolenaar
144071d4279SBram Moolenaar" vim: ts=18
145