2018-08-19 00:09:53 +05:30

133 lines
4.6 KiB
VimL
Executable File

" Vim syntax file
" Language: gcc rtl
" Maintainer: Igor Petushkov <piv-tula@mail.ru>
" Last Change: May 12 17:28:14 MSD 2010
" For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded
if version < 600
syntax clear
elseif exists("b:current_syntax")
finish
endif
" Integer number, or floating point number without a dot.
syn match rtlNumber "\<\d\+\>" contained
" file path
syn match rtlPath "[A-Za-z0-9.\/\-_]*\.\(c\|cpp\|h\|hpp\|CC\|f\|f95\)\:\d*"
" String and Character contstants
syn region rtlString start=+"+ end=+"+ contained
" Comments
syn region rtlComment start="^[ \t]*;;" end="$"
" A bunch of useful rtl keywords
syn keyword rtlInsn insn jump_insn call_insn code_label contained
syn keyword rtlInsn barrier note contained
" Modes for regs, expressions
syn keyword rtlModes BI QI HI PSI SI PDI DI TI OI QF HF contained
syn keyword rtlModes TQF SF DF XF SD DD TD TF QQ HQ SQ contained
syn keyword rtlModes DQ TQ UQQ UHQ USQ UDQ HA SA DA TA contained
syn keyword rtlModes UHA USA UDA UTA CC BLK VOID QC HC contained
syn keyword rtlModes SC DC XC TC CHI CSI CDI CTI COI contained
" Comparision operations
syn keyword rtlComparision eq ne gt gtu lt ltu ge geu le leu contained
syn keyword rtlComparision if_then_else cond contained
" Constants
syn keyword rtlConstant const_int const_double const_fixed contained
syn keyword rtlConstant const_vector const_string symbol_ref contained
syn keyword rtlConstant label_ref const high contained
" Registers
syn keyword rtlRegisterMem reg subreg scratch cc0 pc mem contained
syn keyword rtlRegisterMem concatm concatnm contained
" Arithmetic functions
syn keyword rtlArithmetic plus ss_plus us_plus lo_sum minus contained
syn keyword rtlArithmetic ss_minus us_minus compare neg ss_neg contained
syn keyword rtlArithmetic us_neg mult ss_mult us_mult div contained
syn keyword rtlArithmetic ss_div udiv us_div mod umod smin contained
syn keyword rtlArithmetic smax umin umax not and ior xor contained
syn keyword rtlArithmetic ashift ss_ashift us_ashift lshiftrt contained
syn keyword rtlArithmetic ashiftrt rotate rotatert abs sqrt contained
syn keyword rtlArithmetic ffs clz ctz popcount parity bswap contained
" Bit field functions
syn keyword rtlBitField sign_extract zero_extract contained
" Vector operations
syn keyword rtlVector vec_merge vec_select vec_concat contained
syn keyword rtlVector vec_duplicate contained
" Conversions
syn keyword rtlConversion sign_extend zero_extend float_extend contained
syn keyword rtlConversion truncate ss_truncate us_truncate contained
syn keyword rtlConversion float_truncate float unsigned_float contained
syn keyword rtlConversion fix unsigned_fix fract_convert contained
syn keyword rtlConversion sat_fract unsigned_fract_convert contained
syn keyword rtlConversion unsigned_sat_fract contained
" Side effects
syn keyword rtlSideEffect set return call clobber use parallel contained
syn keyword rtlSideEffect cond_exec sequence asm_input unspec contained
syn keyword rtlSideEffect unspec_volatile addr_vec contained
syn keyword rtlSideEffect addr_diff_vec prefetch contained
" Embedded side effects on addresses
syn keyword rtlSideEffect pre_dec pre_inc post_dec post_inc contained
syn keyword rtlSideEffect post_modify pre_modify contained
" Operations
syn region rtlExpression start="(" end=")" contains=ALLBUT,rtlError1
syn region rtlExpression2 start="\[" end="\]" contains=ALL,rtlError2
syn region rtlSpecOperation start="{" end="}" contains=ALLBUT,rtlError3
syn match rtlError1 display ")"
syn match rtlError2 display "]"
syn match rtlError3 display "}"
syn sync minlines=50
" Define the default highlighting.
" For version 5.7 and earlier: only when not done already
" For version 5.8 and later: only when an item doesn't have highlighting yet
if version >= 508 || !exists("did_rtl_syntax_inits")
if version < 508
let did_rtl_syntax_inits = 1
command -nargs=+ HiLink hi link <args>
else
command -nargs=+ HiLink hi def link <args>
endif
HiLink rtlNumber Number
HiLink rtlPath Comment
HiLink rtlString Character
HiLink rtlComment Comment
HiLink rtlModes Type
HiLink rtlComparision Conditional
HiLink rtlInsn Operator
HiLink rtlConstant Constant
HiLink rtlRegisterMem Identifier
HiLink rtlArithmetic Operator
HiLink rtlBitField Operator
HiLink rtlVector Function
HiLink rtlConversion Function
HiLink rtlSideEffect Staement
HiLink rtlExpression Statement
HiLink rtlExpression2 Statement
HiLink rtlSpecOperation Function
HiLink rtlError1 Error
HiLink rtlError2 Error
HiLink rtlError3 Error
delcommand HiLink
endif
let b:current_syntax = "rtl"
" vim: ts=4