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