blob: 89f2d3f0ff455fafb1a9ce770da6f101628cf538 [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001" Vim syntax file
Karim Belabasc6d533b2023-08-22 20:25:06 +02002" Language: gp (version 2.15)
Bram Moolenaar18144c82006-04-12 21:52:12 +00003" Maintainer: Karim Belabas <Karim.Belabas@math.u-bordeaux.fr>
Karim Belabasc6d533b2023-08-22 20:25:06 +02004" Last change: 2023 Aug 22
Bram Moolenaar18144c82006-04-12 21:52:12 +00005" URL: http://pari.math.u-bordeaux.fr
Bram Moolenaar071d4272004-06-13 20:20:40 +00006
Bram Moolenaar89bcfda2016-08-30 23:26:57 +02007" quit when a syntax file was already loaded
8if exists("b:current_syntax")
Bram Moolenaar071d4272004-06-13 20:20:40 +00009 finish
10endif
11
Bram Moolenaar6be7f872012-01-20 21:08:56 +010012let s:cpo_save = &cpo
13set cpo&vim
14
Bram Moolenaar18144c82006-04-12 21:52:12 +000015" control statements
Bram Moolenaar071d4272004-06-13 20:20:40 +000016syntax keyword gpStatement break return next
Karim Belabasc6d533b2023-08-22 20:25:06 +020017syntax keyword gpConditional if iferr
18syntax keyword gpRepeat until while for forcomposite fordiv
19syntax keyword gpRepeat fordivfactored foreach forell forfactored
20syntax keyword gpRepeat forpart forperm forprime forprimestep forqfvec
21syntax keyword gpRepeat forsquarefree forstep forsubgroup forsubset
22syntax keyword gpRepeat forvec
23syntax keyword gpRepeat parfor parforeach parforprime parforprimestep
24syntax keyword gpRepeat parforvec
Bram Moolenaar18144c82006-04-12 21:52:12 +000025" storage class
Karim Belabasc6d533b2023-08-22 20:25:06 +020026syntax keyword gpScope my local global export exportall
Bram Moolenaar18144c82006-04-12 21:52:12 +000027" defaults
Bram Moolenaar6be7f872012-01-20 21:08:56 +010028syntax keyword gpInterfaceKey breakloop colors compatible
Karim Belabasc6d533b2023-08-22 20:25:06 +020029syntax keyword gpInterfaceKey datadir debug debugfiles debugmem
30syntax keyword gpInterfaceKey echo factor_add_primes factor_proven format
Bram Moolenaar6be7f872012-01-20 21:08:56 +010031syntax keyword gpInterfaceKey graphcolormap graphcolors
Karim Belabasc6d533b2023-08-22 20:25:06 +020032syntax keyword gpInterfaceKey help histfile histsize
33syntax keyword gpInterfaceKey lines linewrap log logfile nbthreads
34syntax keyword gpInterfaceKey new_galois_format output parisize parisizemax
35syntax keyword gpInterfaceKey path plothsizes prettyprinter primelimit prompt
36syntax keyword gpInterfaceKey prompt_cont psfile readline realbitprecision
37syntax keyword gpInterfaceKey realprecision recover secure seriesprecision
38syntax keyword gpInterfaceKey simplify sopath strictmatch TeXstyle
39syntax keyword gpInterfaceKey threadsize threadsizemax timer
Bram Moolenaar071d4272004-06-13 20:20:40 +000040
Bram Moolenaar6be7f872012-01-20 21:08:56 +010041syntax match gpInterface "^\s*\\[a-z].*"
Bram Moolenaar071d4272004-06-13 20:20:40 +000042syntax keyword gpInterface default
43syntax keyword gpInput read input
44
45" functions
46syntax match gpFunRegion "^\s*[a-zA-Z][_a-zA-Z0-9]*(.*)\s*=\s*[^ \t=]"me=e-1 contains=gpFunction,gpArgs
47syntax match gpFunRegion "^\s*[a-zA-Z][_a-zA-Z0-9]*(.*)\s*=\s*$" contains=gpFunction,gpArgs
48syntax match gpArgs contained "[a-zA-Z][_a-zA-Z0-9]*"
49syntax match gpFunction contained "^\s*[a-zA-Z][_a-zA-Z0-9]*("me=e-1
50
51" String and Character constants
52" Highlight special (backslash'ed) characters differently
53syntax match gpSpecial contained "\\[ent\\]"
54syntax region gpString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=gpSpecial
55
56"comments
57syntax region gpComment start="/\*" end="\*/" contains=gpTodo
58syntax match gpComment "\\\\.*" contains=gpTodo
59syntax keyword gpTodo contained TODO
60syntax sync ccomment gpComment minlines=10
61
62"catch errors caused by wrong parenthesis
63syntax region gpParen transparent start='(' end=')' contains=ALLBUT,gpParenError,gpTodo,gpFunction,gpArgs,gpSpecial
64syntax match gpParenError ")"
65syntax match gpInParen contained "[{}]"
66
Karim Belabasc6d533b2023-08-22 20:25:06 +020067hi def link gpConditional Conditional
Bram Moolenaarf37506f2016-08-31 22:22:10 +020068hi def link gpRepeat Repeat
69hi def link gpError Error
Karim Belabasc6d533b2023-08-22 20:25:06 +020070hi def link gpParenError gpError
Bram Moolenaarf37506f2016-08-31 22:22:10 +020071hi def link gpInParen gpError
72hi def link gpStatement Statement
73hi def link gpString String
74hi def link gpComment Comment
75hi def link gpInterface Type
76hi def link gpInput Type
Karim Belabasc6d533b2023-08-22 20:25:06 +020077hi def link gpInterfaceKey Statement
Bram Moolenaarf37506f2016-08-31 22:22:10 +020078hi def link gpFunction Function
79hi def link gpScope Type
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020080" contained ones
Bram Moolenaarf37506f2016-08-31 22:22:10 +020081hi def link gpSpecial Special
Karim Belabasc6d533b2023-08-22 20:25:06 +020082hi def link gpTodo Todo
83hi def link gpArgs Type
Bram Moolenaar071d4272004-06-13 20:20:40 +000084
85let b:current_syntax = "gp"
Bram Moolenaar6be7f872012-01-20 21:08:56 +010086let &cpo = s:cpo_save
87unlet s:cpo_save
Bram Moolenaar071d4272004-06-13 20:20:40 +000088" vim: ts=8