1071d4279SBram Moolenaar" Vim syntax file 26be7f873SBram Moolenaar" Language: gp (version 2.5) 318144c84SBram Moolenaar" Maintainer: Karim Belabas <[email protected]> 46be7f873SBram Moolenaar" Last change: 2012 Jan 08 518144c84SBram Moolenaar" URL: http://pari.math.u-bordeaux.fr 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 126be7f873SBram Moolenaarlet s:cpo_save = &cpo 136be7f873SBram Moolenaarset cpo&vim 146be7f873SBram Moolenaar 1518144c84SBram Moolenaar" control statements 16071d4279SBram Moolenaarsyntax keyword gpStatement break return next 17071d4279SBram Moolenaarsyntax keyword gpConditional if 186be7f873SBram Moolenaarsyntax keyword gpRepeat until while for fordiv forell forprime 196be7f873SBram Moolenaarsyntax keyword gpRepeat forsubgroup forstep forvec 2018144c84SBram Moolenaar" storage class 21a7241f5fSBram Moolenaarsyntax keyword gpScope my local global 2218144c84SBram Moolenaar" defaults 236be7f873SBram Moolenaarsyntax keyword gpInterfaceKey breakloop colors compatible 246be7f873SBram Moolenaarsyntax keyword gpInterfaceKey datadir debug debugfiles debugmem 256be7f873SBram Moolenaarsyntax keyword gpInterfaceKey echo factor_add_primes factor_proven format 266be7f873SBram Moolenaarsyntax keyword gpInterfaceKey graphcolormap graphcolors 276be7f873SBram Moolenaarsyntax keyword gpInterfaceKey help histfile histsize 286be7f873SBram Moolenaarsyntax keyword gpInterfaceKey lines linewrap log logfile new_galois_format 2918144c84SBram Moolenaarsyntax keyword gpInterfaceKey output parisize path prettyprinter primelimit 306be7f873SBram Moolenaarsyntax keyword gpInterfaceKey prompt prompt_cont psfile 316be7f873SBram Moolenaarsyntax keyword gpInterfaceKey readline realprecision recover 326be7f873SBram Moolenaarsyntax keyword gpInterfaceKey secure seriesprecision simplify strictmatch 336be7f873SBram Moolenaarsyntax keyword gpInterfaceKey TeXstyle timer 34071d4279SBram Moolenaar 35071d4279SBram Moolenaarsyntax match gpInterface "^\s*\\[a-z].*" 36071d4279SBram Moolenaarsyntax keyword gpInterface default 37071d4279SBram Moolenaarsyntax keyword gpInput read input 38071d4279SBram Moolenaar 39071d4279SBram Moolenaar" functions 40071d4279SBram Moolenaarsyntax match gpFunRegion "^\s*[a-zA-Z][_a-zA-Z0-9]*(.*)\s*=\s*[^ \t=]"me=e-1 contains=gpFunction,gpArgs 41071d4279SBram Moolenaarsyntax match gpFunRegion "^\s*[a-zA-Z][_a-zA-Z0-9]*(.*)\s*=\s*$" contains=gpFunction,gpArgs 42071d4279SBram Moolenaarsyntax match gpArgs contained "[a-zA-Z][_a-zA-Z0-9]*" 43071d4279SBram Moolenaarsyntax match gpFunction contained "^\s*[a-zA-Z][_a-zA-Z0-9]*("me=e-1 44071d4279SBram Moolenaar 45071d4279SBram Moolenaar" String and Character constants 46071d4279SBram Moolenaar" Highlight special (backslash'ed) characters differently 47071d4279SBram Moolenaarsyntax match gpSpecial contained "\\[ent\\]" 48071d4279SBram Moolenaarsyntax region gpString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=gpSpecial 49071d4279SBram Moolenaar 50071d4279SBram Moolenaar"comments 51071d4279SBram Moolenaarsyntax region gpComment start="/\*" end="\*/" contains=gpTodo 52071d4279SBram Moolenaarsyntax match gpComment "\\\\.*" contains=gpTodo 53071d4279SBram Moolenaarsyntax keyword gpTodo contained TODO 54071d4279SBram Moolenaarsyntax sync ccomment gpComment minlines=10 55071d4279SBram Moolenaar 56071d4279SBram Moolenaar"catch errors caused by wrong parenthesis 57071d4279SBram Moolenaarsyntax region gpParen transparent start='(' end=')' contains=ALLBUT,gpParenError,gpTodo,gpFunction,gpArgs,gpSpecial 58071d4279SBram Moolenaarsyntax match gpParenError ")" 59071d4279SBram Moolenaarsyntax match gpInParen contained "[{}]" 60071d4279SBram Moolenaar 61071d4279SBram Moolenaar 62*f37506f6SBram Moolenaarhi def link gpConditional Conditional 63*f37506f6SBram Moolenaarhi def link gpRepeat Repeat 64*f37506f6SBram Moolenaarhi def link gpError Error 65*f37506f6SBram Moolenaarhi def link gpParenError gpError 66*f37506f6SBram Moolenaarhi def link gpInParen gpError 67*f37506f6SBram Moolenaarhi def link gpStatement Statement 68*f37506f6SBram Moolenaarhi def link gpString String 69*f37506f6SBram Moolenaarhi def link gpComment Comment 70*f37506f6SBram Moolenaarhi def link gpInterface Type 71*f37506f6SBram Moolenaarhi def link gpInput Type 72*f37506f6SBram Moolenaarhi def link gpInterfaceKey Statement 73*f37506f6SBram Moolenaarhi def link gpFunction Function 74*f37506f6SBram Moolenaarhi def link gpScope Type 75071d4279SBram Moolenaar" contained ones 76*f37506f6SBram Moolenaarhi def link gpSpecial Special 77*f37506f6SBram Moolenaarhi def link gpTodo Todo 78*f37506f6SBram Moolenaarhi def link gpArgs Type 79071d4279SBram Moolenaar 80071d4279SBram Moolenaarlet b:current_syntax = "gp" 816be7f873SBram Moolenaarlet &cpo = s:cpo_save 826be7f873SBram Moolenaarunlet s:cpo_save 83071d4279SBram Moolenaar" vim: ts=8 84