mirror of git://gcc.gnu.org/git/gcc.git
				
				
				
			
		
			
				
	
	
		
			72 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			VimL
		
	
	
	
			
		
		
	
	
			72 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			VimL
		
	
	
	
| " 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"
 |