diff runtime/syntax/gp.vim @ 0:76efa0be13f1

Initial revision
author atsuki
date Sat, 10 Nov 2007 15:07:22 +0900
parents
children e170173ecb68
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/runtime/syntax/gp.vim	Sat Nov 10 15:07:22 2007 +0900
@@ -0,0 +1,82 @@
+" Vim syntax file
+" Language:	gp (version 2.2)
+" Maintainer:	Karim Belabas <Karim.Belabas@math.u-bordeaux.fr>
+" Last change:	2006 Apr 12
+" URL:		http://pari.math.u-bordeaux.fr
+
+if version < 600
+  syntax clear
+elseif exists("b:current_syntax")
+  finish
+endif
+
+" control statements
+syntax keyword gpStatement	break return next
+syntax keyword gpConditional	if
+syntax keyword gpRepeat		until while for fordiv forprime forstep forvec
+" storage class
+syntax keyword gpScope		local global
+" defaults
+syntax keyword gpInterfaceKey	colors compatible datadir debug debugfiles
+syntax keyword gpInterfaceKey	debugmem echo factor_add_primes format help
+syntax keyword gpInterfaceKey	histsize lines log logfile new_galois_format
+syntax keyword gpInterfaceKey	output parisize path prettyprinter primelimit
+syntax keyword gpInterfaceKey	prompt prompt_cont psfile realprecision secure
+syntax keyword gpInterfaceKey	seriesprecision simplify strictmatch 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"
+" vim: ts=8