if exists('b:current_syntax') finish endif let s:save_cpo = &cpoptions set cpoptions&vim syn keyword ivyirUnspecifiedStatement record data define syn keyword ivyirInstruction \ alloca load store call br cmp \ c.z c.nz c.eq c.ne c.lt c.le c.gt c.ge \ br br.t br.f \ add sub div mul push pop msg syn match ivyirRegister "%[0-9]\>" syn match ivyirRegister "%[1-9][0-9]\+\>" syn match ivyirRegister "%\w\+\>" syn match ivyirIdentifier /@\(\w\+\)\(\.\(\w\+\)\)*\>/ syn match ivyirIdentifier /@\.\(\w\+\)\(\.\(\w\+\)\)*\>/ syn match ivyirLabel /\(\w\+\)\(\.\(\w\+\)\)*\:/ syn keyword ivyirType id ptr str label syn match ivyirType "i[0-9]\>" syn match ivyirType "i[1-9][0-9]\+\>" syn keyword ivyirBlockType iblock class lambda function syn match ivyirFieldIndex /#[0-9]\+:\>/ syn match ivyirFieldIndex /#-[0-9]\+:\>/ syn match ivyirFieldIndex /#0x[:xdigit:]\+:\>/ syn match ivyirFieldIndex /#-0x[:xdigit:]\+:\>/ syn region ivyirString start=+"+ end=+"\%(u8\)\=+ end=+$+ extend syn match ivyirInteger /#[0-9]\+\>/ syn match ivyirInteger /#-[0-9]\+\>/ syn match ivyirInteger /#0x[:xdigit:]\+\>/ syn match ivyirInteger /#-0x[:xdigit:]\+\>/ syn keyword ivyirTodo contained TODO FIXME XXX NOTE HACK TBD syn region ivyirBlockComment start="/\*" end="\*/" contains=ivyirTodo,ivyirBlockComment syn match ivyirLineComment ";.*$" contains=ivyirTodo,ivyirBlockComment syn cluster ivyirComment contains=ivyirLineComment,ivyirBlockComment syn match ivyirBrackets "[[\]]" display syn match ivyirParens "[()]" display syn match ivyPropertySymbol "\$" display " The default highlighting. hi def link ivyirUnspecifiedStatement Statement hi def link ivyPropertySymbol Statement hi def link ivyirInteger Number hi def link ivyirParens Delimiter hi def link ivyirBraces Structure hi def link ivyirPropertyName @property hi def link ivyirFieldName @variable.parameter hi def link ivyirClassName Type hi def link ivyirLambdaName @variable.parameter hi def link ivyirInstruction Function hi def link ivyirIdentifier Identifier hi def link ivyirLabel Tag hi def link ivyirIndexBase @variable.builtin hi def link ivyirRegister Constant hi def link ivyirString String hi def link ivyirType Type hi def link ivyirBlockType @attribute hi def link ivyirComment Comment hi def link ivyirLineComment ivyirComment hi def link ivyirBlockComment ivyirComment hi def link ivyirLineContinuation ivyirComment hi def link ivyirIdent @variable.builtin hi def link ivyirAtom Constant let b:current_syntax = 'ivy-ir' let &cpoptions = s:save_cpo unlet s:save_cpo