diff options
Diffstat (limited to 'runtime/syntax/gp.vim')
-rw-r--r-- | runtime/syntax/gp.vim | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/runtime/syntax/gp.vim b/runtime/syntax/gp.vim new file mode 100644 index 0000000000..f46a465215 --- /dev/null +++ b/runtime/syntax/gp.vim @@ -0,0 +1,93 @@ +" Vim syntax file +" Language: gp (version 2.5) +" Maintainer: Karim Belabas <Karim.Belabas@math.u-bordeaux.fr> +" Last change: 2012 Jan 08 +" URL: http://pari.math.u-bordeaux.fr + +if version < 600 + syntax clear +elseif exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +" control statements +syntax keyword gpStatement break return next +syntax keyword gpConditional if +syntax keyword gpRepeat until while for fordiv forell forprime +syntax keyword gpRepeat forsubgroup forstep forvec +" storage class +syntax keyword gpScope my local global +" defaults +syntax keyword gpInterfaceKey breakloop colors compatible +syntax keyword gpInterfaceKey datadir debug debugfiles debugmem +syntax keyword gpInterfaceKey echo factor_add_primes factor_proven format +syntax keyword gpInterfaceKey graphcolormap graphcolors +syntax keyword gpInterfaceKey help histfile histsize +syntax keyword gpInterfaceKey lines linewrap log logfile new_galois_format +syntax keyword gpInterfaceKey output parisize path prettyprinter primelimit +syntax keyword gpInterfaceKey prompt prompt_cont psfile +syntax keyword gpInterfaceKey readline realprecision recover +syntax keyword gpInterfaceKey secure seriesprecision simplify strictmatch +syntax keyword gpInterfaceKey TeXstyle timer + +syntax match gpInterface "^\s*\\[a-z].*" +syntax keyword gpInterface default +syntax keyword gpInput read input + +" functions +syntax match gpFunRegion "^\s*[a-zA-Z][_a-zA-Z0-9]*(.*)\s*=\s*[^ \t=]"me=e-1 contains=gpFunction,gpArgs +syntax match gpFunRegion "^\s*[a-zA-Z][_a-zA-Z0-9]*(.*)\s*=\s*$" contains=gpFunction,gpArgs +syntax match gpArgs contained "[a-zA-Z][_a-zA-Z0-9]*" +syntax match gpFunction contained "^\s*[a-zA-Z][_a-zA-Z0-9]*("me=e-1 + +" String and Character constants +" Highlight special (backslash'ed) characters differently +syntax match gpSpecial contained "\\[ent\\]" +syntax region gpString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=gpSpecial + +"comments +syntax region gpComment start="/\*" end="\*/" contains=gpTodo +syntax match gpComment "\\\\.*" contains=gpTodo +syntax keyword gpTodo contained TODO +syntax sync ccomment gpComment minlines=10 + +"catch errors caused by wrong parenthesis +syntax region gpParen transparent start='(' end=')' contains=ALLBUT,gpParenError,gpTodo,gpFunction,gpArgs,gpSpecial +syntax match gpParenError ")" +syntax match gpInParen contained "[{}]" + +if version >= 508 || !exists("did_gp_syn_inits") + if version < 508 + let did_gp_syn_inits = 1 + command -nargs=+ HiLink hi link <args> + else + command -nargs=+ HiLink hi def link <args> + endif + + HiLink gpConditional Conditional + HiLink gpRepeat Repeat + HiLink gpError Error + HiLink gpParenError gpError + HiLink gpInParen gpError + HiLink gpStatement Statement + HiLink gpString String + HiLink gpComment Comment + HiLink gpInterface Type + HiLink gpInput Type + HiLink gpInterfaceKey Statement + HiLink gpFunction Function + HiLink gpScope Type + " contained ones + HiLink gpSpecial Special + HiLink gpTodo Todo + HiLink gpArgs Type + delcommand HiLink +endif + +let b:current_syntax = "gp" +let &cpo = s:cpo_save +unlet s:cpo_save +" vim: ts=8 |