1071d4279SBram Moolenaar" Vim syntax file 2071d4279SBram Moolenaar" Language: LambdaProlog (Teyjus) 3071d4279SBram Moolenaar" Filenames: *.mod *.sig 48b6144bdSBram Moolenaar" Maintainer: Markus Mottl <[email protected]> 58b6144bdSBram Moolenaar" URL: http://www.ocaml.info/vim/syntax/lprolog.vim 68b6144bdSBram Moolenaar" Last Change: 2006 Feb 05 7071d4279SBram Moolenaar" 2001 Apr 26 - Upgraded for new Vim version 8071d4279SBram Moolenaar" 2000 Jun 5 - Initial release 9071d4279SBram Moolenaar 1089bcfda6SBram Moolenaar" quit when a syntax file was already loaded 1189bcfda6SBram Moolenaarif exists("b:current_syntax") 12071d4279SBram Moolenaar finish 13071d4279SBram Moolenaarendif 14071d4279SBram Moolenaar 15071d4279SBram Moolenaar" Lambda Prolog is case sensitive. 16071d4279SBram Moolenaarsyn case match 17071d4279SBram Moolenaar 18071d4279SBram Moolenaarsyn match lprologBrackErr "\]" 19071d4279SBram Moolenaarsyn match lprologParenErr ")" 20071d4279SBram Moolenaar 21071d4279SBram Moolenaarsyn cluster lprologContained contains=lprologTodo,lprologModuleName,lprologTypeNames,lprologTypeName 22071d4279SBram Moolenaar 23071d4279SBram Moolenaar" Enclosing delimiters 24071d4279SBram Moolenaarsyn region lprologEncl transparent matchgroup=lprologKeyword start="(" matchgroup=lprologKeyword end=")" contains=ALLBUT,@lprologContained,lprologParenErr 25071d4279SBram Moolenaarsyn region lprologEncl transparent matchgroup=lprologKeyword start="\[" matchgroup=lprologKeyword end="\]" contains=ALLBUT,@lprologContained,lprologBrackErr 26071d4279SBram Moolenaar 27071d4279SBram Moolenaar" General identifiers 28071d4279SBram Moolenaarsyn match lprologIdentifier "\<\(\w\|[-+*/\\^<>=`'~?@#$&!_]\)*\>" 29071d4279SBram Moolenaarsyn match lprologVariable "\<\(\u\|_\)\(\w\|[-+*/\\^<>=`'~?@#$&!]\)*\>" 30071d4279SBram Moolenaar 31071d4279SBram Moolenaarsyn match lprologOperator "/" 32071d4279SBram Moolenaar 33071d4279SBram Moolenaar" Comments 34071d4279SBram Moolenaarsyn region lprologComment start="/\*" end="\*/" contains=lprologComment,lprologTodo 35071d4279SBram Moolenaarsyn region lprologComment start="%" end="$" contains=lprologTodo 36071d4279SBram Moolenaarsyn keyword lprologTodo contained TODO FIXME XXX 37071d4279SBram Moolenaar 38071d4279SBram Moolenaarsyn match lprologInteger "\<\d\+\>" 39071d4279SBram Moolenaarsyn match lprologReal "\<\(\d\+\)\=\.\d+\>" 40071d4279SBram Moolenaarsyn region lprologString start=+"+ skip=+\\\\\|\\"+ end=+"+ 41071d4279SBram Moolenaar 42071d4279SBram Moolenaar" Clause definitions 43071d4279SBram Moolenaarsyn region lprologClause start="^\w\+" end=":-\|\." 44071d4279SBram Moolenaar 45071d4279SBram Moolenaar" Modules 46071d4279SBram Moolenaarsyn region lprologModule matchgroup=lprologKeyword start="^\<module\>" matchgroup=lprologKeyword end="\." 47071d4279SBram Moolenaar 48071d4279SBram Moolenaar" Types 49071d4279SBram Moolenaarsyn match lprologKeyword "^\<type\>" skipwhite nextgroup=lprologTypeNames 50071d4279SBram Moolenaarsyn region lprologTypeNames matchgroup=lprologBraceErr start="\<\w\+\>" matchgroup=lprologKeyword end="\." contained contains=lprologTypeName,lprologOperator 51071d4279SBram Moolenaarsyn match lprologTypeName "\<\w\+\>" contained 52071d4279SBram Moolenaar 53071d4279SBram Moolenaar" Keywords 54071d4279SBram Moolenaarsyn keyword lprologKeyword end import accumulate accum_sig 55071d4279SBram Moolenaarsyn keyword lprologKeyword local localkind closed sig 56071d4279SBram Moolenaarsyn keyword lprologKeyword kind exportdef useonly 57071d4279SBram Moolenaarsyn keyword lprologKeyword infixl infixr infix prefix 58071d4279SBram Moolenaarsyn keyword lprologKeyword prefixr postfix postfixl 59071d4279SBram Moolenaar 60071d4279SBram Moolenaarsyn keyword lprologSpecial pi sigma is true fail halt stop not 61071d4279SBram Moolenaar 62071d4279SBram Moolenaar" Operators 63071d4279SBram Moolenaarsyn match lprologSpecial ":-" 64071d4279SBram Moolenaarsyn match lprologSpecial "->" 65071d4279SBram Moolenaarsyn match lprologSpecial "=>" 66071d4279SBram Moolenaarsyn match lprologSpecial "\\" 67071d4279SBram Moolenaarsyn match lprologSpecial "!" 68071d4279SBram Moolenaar 69071d4279SBram Moolenaarsyn match lprologSpecial "," 70071d4279SBram Moolenaarsyn match lprologSpecial ";" 71071d4279SBram Moolenaarsyn match lprologSpecial "&" 72071d4279SBram Moolenaar 73071d4279SBram Moolenaarsyn match lprologOperator "+" 74071d4279SBram Moolenaarsyn match lprologOperator "-" 75071d4279SBram Moolenaarsyn match lprologOperator "*" 76071d4279SBram Moolenaarsyn match lprologOperator "\~" 77071d4279SBram Moolenaarsyn match lprologOperator "\^" 78071d4279SBram Moolenaarsyn match lprologOperator "<" 79071d4279SBram Moolenaarsyn match lprologOperator ">" 80071d4279SBram Moolenaarsyn match lprologOperator "=<" 81071d4279SBram Moolenaarsyn match lprologOperator ">=" 82071d4279SBram Moolenaarsyn match lprologOperator "::" 83071d4279SBram Moolenaarsyn match lprologOperator "=" 84071d4279SBram Moolenaar 85071d4279SBram Moolenaarsyn match lprologOperator "\." 86071d4279SBram Moolenaarsyn match lprologOperator ":" 87071d4279SBram Moolenaarsyn match lprologOperator "|" 88071d4279SBram Moolenaar 89071d4279SBram Moolenaarsyn match lprologCommentErr "\*/" 90071d4279SBram Moolenaar 91071d4279SBram Moolenaarsyn sync minlines=50 92071d4279SBram Moolenaarsyn sync maxlines=500 93071d4279SBram Moolenaar 94071d4279SBram Moolenaar 95071d4279SBram Moolenaar" Define the default highlighting. 9689bcfda6SBram Moolenaar" Only when an item doesn't have highlighting yet 97071d4279SBram Moolenaar 98*f37506f6SBram Moolenaarhi def link lprologComment Comment 99*f37506f6SBram Moolenaarhi def link lprologTodo Todo 100071d4279SBram Moolenaar 101*f37506f6SBram Moolenaarhi def link lprologKeyword Keyword 102*f37506f6SBram Moolenaarhi def link lprologSpecial Special 103*f37506f6SBram Moolenaarhi def link lprologOperator Operator 104*f37506f6SBram Moolenaarhi def link lprologIdentifier Normal 105071d4279SBram Moolenaar 106*f37506f6SBram Moolenaarhi def link lprologInteger Number 107*f37506f6SBram Moolenaarhi def link lprologReal Number 108*f37506f6SBram Moolenaarhi def link lprologString String 109071d4279SBram Moolenaar 110*f37506f6SBram Moolenaarhi def link lprologCommentErr Error 111*f37506f6SBram Moolenaarhi def link lprologBrackErr Error 112*f37506f6SBram Moolenaarhi def link lprologParenErr Error 113071d4279SBram Moolenaar 114*f37506f6SBram Moolenaarhi def link lprologModuleName Special 115*f37506f6SBram Moolenaarhi def link lprologTypeName Identifier 116071d4279SBram Moolenaar 117*f37506f6SBram Moolenaarhi def link lprologVariable Keyword 118*f37506f6SBram Moolenaarhi def link lprologAtom Normal 119*f37506f6SBram Moolenaarhi def link lprologClause Type 120071d4279SBram Moolenaar 121071d4279SBram Moolenaar 122071d4279SBram Moolenaarlet b:current_syntax = "lprolog" 123071d4279SBram Moolenaar 124071d4279SBram Moolenaar" vim: ts=8 125