1" Vim syntax file 2" Language: LambdaProlog (Teyjus) 3" Filenames: *.mod *.sig 4" Maintainer: Markus Mottl <[email protected]> 5" URL: http://www.ocaml.info/vim/syntax/lprolog.vim 6" Last Change: 2006 Feb 05 7" 2001 Apr 26 - Upgraded for new Vim version 8" 2000 Jun 5 - Initial release 9 10" quit when a syntax file was already loaded 11if exists("b:current_syntax") 12 finish 13endif 14 15" Lambda Prolog is case sensitive. 16syn case match 17 18syn match lprologBrackErr "\]" 19syn match lprologParenErr ")" 20 21syn cluster lprologContained contains=lprologTodo,lprologModuleName,lprologTypeNames,lprologTypeName 22 23" Enclosing delimiters 24syn region lprologEncl transparent matchgroup=lprologKeyword start="(" matchgroup=lprologKeyword end=")" contains=ALLBUT,@lprologContained,lprologParenErr 25syn region lprologEncl transparent matchgroup=lprologKeyword start="\[" matchgroup=lprologKeyword end="\]" contains=ALLBUT,@lprologContained,lprologBrackErr 26 27" General identifiers 28syn match lprologIdentifier "\<\(\w\|[-+*/\\^<>=`'~?@#$&!_]\)*\>" 29syn match lprologVariable "\<\(\u\|_\)\(\w\|[-+*/\\^<>=`'~?@#$&!]\)*\>" 30 31syn match lprologOperator "/" 32 33" Comments 34syn region lprologComment start="/\*" end="\*/" contains=lprologComment,lprologTodo 35syn region lprologComment start="%" end="$" contains=lprologTodo 36syn keyword lprologTodo contained TODO FIXME XXX 37 38syn match lprologInteger "\<\d\+\>" 39syn match lprologReal "\<\(\d\+\)\=\.\d+\>" 40syn region lprologString start=+"+ skip=+\\\\\|\\"+ end=+"+ 41 42" Clause definitions 43syn region lprologClause start="^\w\+" end=":-\|\." 44 45" Modules 46syn region lprologModule matchgroup=lprologKeyword start="^\<module\>" matchgroup=lprologKeyword end="\." 47 48" Types 49syn match lprologKeyword "^\<type\>" skipwhite nextgroup=lprologTypeNames 50syn region lprologTypeNames matchgroup=lprologBraceErr start="\<\w\+\>" matchgroup=lprologKeyword end="\." contained contains=lprologTypeName,lprologOperator 51syn match lprologTypeName "\<\w\+\>" contained 52 53" Keywords 54syn keyword lprologKeyword end import accumulate accum_sig 55syn keyword lprologKeyword local localkind closed sig 56syn keyword lprologKeyword kind exportdef useonly 57syn keyword lprologKeyword infixl infixr infix prefix 58syn keyword lprologKeyword prefixr postfix postfixl 59 60syn keyword lprologSpecial pi sigma is true fail halt stop not 61 62" Operators 63syn match lprologSpecial ":-" 64syn match lprologSpecial "->" 65syn match lprologSpecial "=>" 66syn match lprologSpecial "\\" 67syn match lprologSpecial "!" 68 69syn match lprologSpecial "," 70syn match lprologSpecial ";" 71syn match lprologSpecial "&" 72 73syn match lprologOperator "+" 74syn match lprologOperator "-" 75syn match lprologOperator "*" 76syn match lprologOperator "\~" 77syn match lprologOperator "\^" 78syn match lprologOperator "<" 79syn match lprologOperator ">" 80syn match lprologOperator "=<" 81syn match lprologOperator ">=" 82syn match lprologOperator "::" 83syn match lprologOperator "=" 84 85syn match lprologOperator "\." 86syn match lprologOperator ":" 87syn match lprologOperator "|" 88 89syn match lprologCommentErr "\*/" 90 91syn sync minlines=50 92syn sync maxlines=500 93 94 95" Define the default highlighting. 96" Only when an item doesn't have highlighting yet 97command -nargs=+ HiLink hi def link <args> 98 99HiLink lprologComment Comment 100HiLink lprologTodo Todo 101 102HiLink lprologKeyword Keyword 103HiLink lprologSpecial Special 104HiLink lprologOperator Operator 105HiLink lprologIdentifier Normal 106 107HiLink lprologInteger Number 108HiLink lprologReal Number 109HiLink lprologString String 110 111HiLink lprologCommentErr Error 112HiLink lprologBrackErr Error 113HiLink lprologParenErr Error 114 115HiLink lprologModuleName Special 116HiLink lprologTypeName Identifier 117 118HiLink lprologVariable Keyword 119HiLink lprologAtom Normal 120HiLink lprologClause Type 121 122delcommand HiLink 123 124let b:current_syntax = "lprolog" 125 126" vim: ts=8 127