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