diff contrib/vim-gcc-dev/syntax/gcc-match.vim @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/contrib/vim-gcc-dev/syntax/gcc-match.vim	Thu Oct 25 07:37:49 2018 +0900
@@ -0,0 +1,71 @@
+" Vim syntax highlighting rules for GCC match-and-simplify language.
+"
+" Copyright (C) 2018 Free Software Foundation, Inc.
+"
+" This script is free software; you can redistribute it and/or modify
+" it under the terms of the GNU General Public License as published by
+" the Free Software Foundation; either version 3, or (at your option)
+" any later version
+
+if exists("b:current_syntax")
+    finish
+endif
+
+" Some keywords have a question mark, e.g. 'convert?'
+setl isk=@,48-57,_,?
+
+syn keyword pdTodo contained TODO FIXME XXX
+
+syn keyword pdCtrl match simplify
+syn keyword pdCtrl define_predicates define_operator_list
+syn keyword pdCtrl if switch for with
+
+syn keyword pdType type
+
+syn keyword pdOp view_convert view_convert?
+               \ convert convert? convert1 convert2 convert1? convert2?
+               \ realpart imagpart
+               \ cond vec_cond vec_perm
+               \ pointer_plus pointer_diff
+               \ plus minus mult mult_highpart
+               \ trunc_div ceil_div floor_div round_div
+               \ trunc_mod ceil_mod floor_mod round_mod
+               \ rdiv exact_div
+               \ fix_trunc float negate min max abs absu
+               \ lshift rshift lrotate rrotate
+               \ bit_ior bit_xor bit_and bit_not
+               \ truth_andif truth_orif truth_and
+               \ truth_or truth_xor truth_not
+               \ lt le gt ge eq ne unordered ordered
+               \ unlt unle ungt unge uneq ltgt
+               \ addr_space_convert fixed_convert
+               \ bit_insert complex conj
+               \ reduc_max reduc_min reduc_plus
+               \ dot_prod widen_sum sad fma
+               \ widen_mult widen_mult_plus widen_mult_minus widen_lshift
+               \ vec_widen_mult_hi vec_widen_mult_lo
+               \ vec_widen_mult_even vec_widen_mult_odd
+               \ vec_unpack_hi vec_unpack_lo
+               \ vec_unpack_float_hi vec_unpack_float_lo
+               \ vec_pack_trunc vec_pack_sat vec_pack_fix_trunc
+               \ vec_widen_lshift_hi vec_widen_lshift_lo
+
+" Match commutative/single-use specifiers: :C, :c, :s, :cs, etc.
+syn match pdOpSpec  ":[CcSs]\+\>"
+
+syn match pdCapture "@@\?[a-zA-Z0-9_]\+"
+
+syn region pdComment start="/\*" end="\*/" contains=pdTodo
+
+syn region pdPreProc start="^\s*#" skip="\\$" end="$" keepend
+
+hi def link pdCtrl    Statement
+hi def link pdType    Identifier
+hi def link pdOp      Constant
+hi def link pdOpSpec  Operator
+hi def link pdCapture Special
+hi def link pdComment Comment
+hi def link pdTodo    Todo
+hi def link pdPreProc PreProc
+
+let b:current_syntax = "gcc-match"