blob: aecf7df48b1db3787765ec4ecb2dd21be24ad28e [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001" Vim syntax file
Bram Moolenaar6be7f872012-01-20 21:08:56 +01002" Language: gp (version 2.5)
Bram Moolenaar18144c82006-04-12 21:52:12 +00003" Maintainer: Karim Belabas <Karim.Belabas@math.u-bordeaux.fr>
Bram Moolenaar6be7f872012-01-20 21:08:56 +01004" Last change: 2012 Jan 08
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
17syntax keyword gpConditional if
Bram Moolenaar6be7f872012-01-20 21:08:56 +010018syntax keyword gpRepeat until while for fordiv forell forprime
19syntax keyword gpRepeat forsubgroup forstep forvec
Bram Moolenaar18144c82006-04-12 21:52:12 +000020" storage class
Bram Moolenaara7241f52008-06-24 20:39:31 +000021syntax keyword gpScope my local global
Bram Moolenaar18144c82006-04-12 21:52:12 +000022" defaults
Bram Moolenaar6be7f872012-01-20 21:08:56 +010023syntax keyword gpInterfaceKey breakloop colors compatible
24syntax keyword gpInterfaceKey datadir debug debugfiles debugmem
25syntax keyword gpInterfaceKey echo factor_add_primes factor_proven format
26syntax keyword gpInterfaceKey graphcolormap graphcolors
27syntax keyword gpInterfaceKey help histfile histsize
28syntax keyword gpInterfaceKey lines linewrap log logfile new_galois_format
Bram Moolenaar18144c82006-04-12 21:52:12 +000029syntax keyword gpInterfaceKey output parisize path prettyprinter primelimit
Bram Moolenaar6be7f872012-01-20 21:08:56 +010030syntax keyword gpInterfaceKey prompt prompt_cont psfile
31syntax keyword gpInterfaceKey readline realprecision recover
32syntax keyword gpInterfaceKey secure seriesprecision simplify strictmatch
33syntax keyword gpInterfaceKey TeXstyle timer
Bram Moolenaar071d4272004-06-13 20:20:40 +000034
Bram Moolenaar6be7f872012-01-20 21:08:56 +010035syntax match gpInterface "^\s*\\[a-z].*"
Bram Moolenaar071d4272004-06-13 20:20:40 +000036syntax keyword gpInterface default
37syntax keyword gpInput read input
38
39" functions
40syntax match gpFunRegion "^\s*[a-zA-Z][_a-zA-Z0-9]*(.*)\s*=\s*[^ \t=]"me=e-1 contains=gpFunction,gpArgs
41syntax match gpFunRegion "^\s*[a-zA-Z][_a-zA-Z0-9]*(.*)\s*=\s*$" contains=gpFunction,gpArgs
42syntax match gpArgs contained "[a-zA-Z][_a-zA-Z0-9]*"
43syntax match gpFunction contained "^\s*[a-zA-Z][_a-zA-Z0-9]*("me=e-1
44
45" String and Character constants
46" Highlight special (backslash'ed) characters differently
47syntax match gpSpecial contained "\\[ent\\]"
48syntax region gpString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=gpSpecial
49
50"comments
51syntax region gpComment start="/\*" end="\*/" contains=gpTodo
52syntax match gpComment "\\\\.*" contains=gpTodo
53syntax keyword gpTodo contained TODO
54syntax sync ccomment gpComment minlines=10
55
56"catch errors caused by wrong parenthesis
57syntax region gpParen transparent start='(' end=')' contains=ALLBUT,gpParenError,gpTodo,gpFunction,gpArgs,gpSpecial
58syntax match gpParenError ")"
59syntax match gpInParen contained "[{}]"
60
Bram Moolenaar071d4272004-06-13 20:20:40 +000061
Bram Moolenaarf37506f2016-08-31 22:22:10 +020062hi def link gpConditional Conditional
63hi def link gpRepeat Repeat
64hi def link gpError Error
65hi def link gpParenError gpError
66hi def link gpInParen gpError
67hi def link gpStatement Statement
68hi def link gpString String
69hi def link gpComment Comment
70hi def link gpInterface Type
71hi def link gpInput Type
72hi def link gpInterfaceKey Statement
73hi def link gpFunction Function
74hi def link gpScope Type
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020075" contained ones
Bram Moolenaarf37506f2016-08-31 22:22:10 +020076hi def link gpSpecial Special
77hi def link gpTodo Todo
78hi def link gpArgs Type
Bram Moolenaar071d4272004-06-13 20:20:40 +000079
80let b:current_syntax = "gp"
Bram Moolenaar6be7f872012-01-20 21:08:56 +010081let &cpo = s:cpo_save
82unlet s:cpo_save
Bram Moolenaar071d4272004-06-13 20:20:40 +000083" vim: ts=8