1*627f7eb2Smrg" Vim syntax highlighting rules for GCC match-and-simplify language. 2*627f7eb2Smrg" 3*627f7eb2Smrg" Copyright (C) 2018 Free Software Foundation, Inc. 4*627f7eb2Smrg" 5*627f7eb2Smrg" This script is free software; you can redistribute it and/or modify 6*627f7eb2Smrg" it under the terms of the GNU General Public License as published by 7*627f7eb2Smrg" the Free Software Foundation; either version 3, or (at your option) 8*627f7eb2Smrg" any later version 9*627f7eb2Smrg 10*627f7eb2Smrgif exists("b:current_syntax") 11*627f7eb2Smrg finish 12*627f7eb2Smrgendif 13*627f7eb2Smrg 14*627f7eb2Smrg" Some keywords have a question mark, e.g. 'convert?' 15*627f7eb2Smrgsetl isk=@,48-57,_,? 16*627f7eb2Smrg 17*627f7eb2Smrgsyn keyword pdTodo contained TODO FIXME XXX 18*627f7eb2Smrg 19*627f7eb2Smrgsyn keyword pdCtrl match simplify 20*627f7eb2Smrgsyn keyword pdCtrl define_predicates define_operator_list 21*627f7eb2Smrgsyn keyword pdCtrl if switch for with 22*627f7eb2Smrg 23*627f7eb2Smrgsyn keyword pdType type 24*627f7eb2Smrg 25*627f7eb2Smrgsyn keyword pdOp view_convert view_convert? 26*627f7eb2Smrg \ convert convert? convert1 convert2 convert1? convert2? 27*627f7eb2Smrg \ realpart imagpart 28*627f7eb2Smrg \ cond vec_cond vec_perm 29*627f7eb2Smrg \ pointer_plus pointer_diff 30*627f7eb2Smrg \ plus minus mult mult_highpart 31*627f7eb2Smrg \ trunc_div ceil_div floor_div round_div 32*627f7eb2Smrg \ trunc_mod ceil_mod floor_mod round_mod 33*627f7eb2Smrg \ rdiv exact_div 34*627f7eb2Smrg \ fix_trunc float negate min max abs absu 35*627f7eb2Smrg \ lshift rshift lrotate rrotate 36*627f7eb2Smrg \ bit_ior bit_xor bit_and bit_not 37*627f7eb2Smrg \ truth_andif truth_orif truth_and 38*627f7eb2Smrg \ truth_or truth_xor truth_not 39*627f7eb2Smrg \ lt le gt ge eq ne unordered ordered 40*627f7eb2Smrg \ unlt unle ungt unge uneq ltgt 41*627f7eb2Smrg \ addr_space_convert fixed_convert 42*627f7eb2Smrg \ bit_insert complex conj 43*627f7eb2Smrg \ reduc_max reduc_min reduc_plus 44*627f7eb2Smrg \ dot_prod widen_sum sad fma 45*627f7eb2Smrg \ widen_mult widen_mult_plus widen_mult_minus widen_lshift 46*627f7eb2Smrg \ vec_widen_mult_hi vec_widen_mult_lo 47*627f7eb2Smrg \ vec_widen_mult_even vec_widen_mult_odd 48*627f7eb2Smrg \ vec_unpack_hi vec_unpack_lo 49*627f7eb2Smrg \ vec_unpack_float_hi vec_unpack_float_lo 50*627f7eb2Smrg \ vec_pack_trunc vec_pack_sat vec_pack_fix_trunc 51*627f7eb2Smrg \ vec_widen_lshift_hi vec_widen_lshift_lo 52*627f7eb2Smrg 53*627f7eb2Smrg" Match commutative/single-use specifiers: :C, :c, :s, :cs, etc. 54*627f7eb2Smrgsyn match pdOpSpec ":[CcSs]\+\>" 55*627f7eb2Smrg 56*627f7eb2Smrgsyn match pdCapture "@@\?[a-zA-Z0-9_]\+" 57*627f7eb2Smrg 58*627f7eb2Smrgsyn region pdComment start="/\*" end="\*/" contains=pdTodo 59*627f7eb2Smrg 60*627f7eb2Smrgsyn region pdPreProc start="^\s*#" skip="\\$" end="$" keepend 61*627f7eb2Smrg 62*627f7eb2Smrghi def link pdCtrl Statement 63*627f7eb2Smrghi def link pdType Identifier 64*627f7eb2Smrghi def link pdOp Constant 65*627f7eb2Smrghi def link pdOpSpec Operator 66*627f7eb2Smrghi def link pdCapture Special 67*627f7eb2Smrghi def link pdComment Comment 68*627f7eb2Smrghi def link pdTodo Todo 69*627f7eb2Smrghi def link pdPreProc PreProc 70*627f7eb2Smrg 71*627f7eb2Smrglet b:current_syntax = "gcc-match" 72