blob: 2e898dad5d56e4327baf844cbae9b63d441d1ca7 [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 Moolenaar89bcfda2016-08-30 23:26:57 +020061command -nargs=+ HiLink hi def link <args>
Bram Moolenaar071d4272004-06-13 20:20:40 +000062
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020063HiLink gpConditional Conditional
64HiLink gpRepeat Repeat
65HiLink gpError Error
66HiLink gpParenError gpError
67HiLink gpInParen gpError
68HiLink gpStatement Statement
69HiLink gpString String
70HiLink gpComment Comment
71HiLink gpInterface Type
72HiLink gpInput Type
73HiLink gpInterfaceKey Statement
74HiLink gpFunction Function
75HiLink gpScope Type
76" contained ones
77HiLink gpSpecial Special
78HiLink gpTodo Todo
79HiLink gpArgs Type
80delcommand HiLink
Bram Moolenaar071d4272004-06-13 20:20:40 +000081
82let b:current_syntax = "gp"
Bram Moolenaar6be7f872012-01-20 21:08:56 +010083let &cpo = s:cpo_save
84unlet s:cpo_save
Bram Moolenaar071d4272004-06-13 20:20:40 +000085" vim: ts=8