2018-02-26 18:55:36 -05:00
|
|
|
|
scriptencoding utf-8
|
|
|
|
|
|
2017-11-05 11:41:12 -05:00
|
|
|
|
if !exists('main_syntax')
|
|
|
|
|
if exists('b:current_syntax')
|
2009-06-26 20:00:00 -04:00
|
|
|
|
finish
|
|
|
|
|
endif
|
|
|
|
|
let main_syntax = 'ats'
|
|
|
|
|
endif
|
|
|
|
|
|
2018-02-26 18:11:07 -05:00
|
|
|
|
syn keyword atsTodo TODO FIXME contained
|
2018-02-26 18:27:42 -05:00
|
|
|
|
syn match atsIdentifier "\v[a-zA-Z][a-zA-Z_0-9]*"
|
2009-06-26 20:00:00 -04:00
|
|
|
|
|
2018-02-26 18:27:42 -05:00
|
|
|
|
syn match atsInt "\v[0-9]+"
|
2018-03-05 09:14:08 -05:00
|
|
|
|
syn match atsUint "\v[0-9]+u"
|
2018-05-13 21:56:05 -04:00
|
|
|
|
syn match atsHex "\v0x[0-9a-fA-F]+"
|
2018-02-26 18:27:42 -05:00
|
|
|
|
|
2018-04-06 06:30:34 -04:00
|
|
|
|
syn match atsSpecial +\v\\["nt\\]+
|
2018-02-26 18:40:25 -05:00
|
|
|
|
syn match atsSpecial -\v\\[0-9]+-
|
2018-02-26 18:27:42 -05:00
|
|
|
|
|
|
|
|
|
syn region atsString start=+"+ end=+"+ contains=atsSpecial
|
2018-02-26 20:46:25 -05:00
|
|
|
|
syn keyword atsKeyword staload dynload overload with fun symintr include fn fnx and prfun prfn praxi castfn sortdef
|
2018-05-15 22:55:30 -04:00
|
|
|
|
syn keyword atsKeyword as lam llam fix raise of var val prval if then else addr let in begin end when where local
|
2018-04-06 04:17:42 -04:00
|
|
|
|
syn keyword atsKeywordTwo case ifcase
|
2018-04-02 15:33:04 -04:00
|
|
|
|
syn keyword atsKeyword stadef sta stacst assume macdef
|
2018-02-26 18:27:42 -05:00
|
|
|
|
|
2018-02-26 18:53:22 -05:00
|
|
|
|
syn match atsKeyword "\v[\%\+\-\<\>\=!\:\~]+"
|
2018-02-26 18:27:42 -05:00
|
|
|
|
|
|
|
|
|
syn keyword atsFixity infixr infixl prefix postfix
|
|
|
|
|
|
2018-02-26 18:40:25 -05:00
|
|
|
|
syn keyword arrowContents cloref1 cloptr1 lincloptr cloref cloptr
|
2018-03-23 15:07:27 -04:00
|
|
|
|
syn match atsArrow '=/=>'
|
2018-02-26 18:40:25 -05:00
|
|
|
|
|
|
|
|
|
syn region atsArrow start="=<" end=">" contains=arrowContents
|
2018-02-26 20:46:25 -05:00
|
|
|
|
syn region atsArrow start="-<" end=">"
|
2018-02-26 18:40:25 -05:00
|
|
|
|
|
2018-06-28 17:44:39 -04:00
|
|
|
|
syn keyword atsType void bool string char int uint uint8 uint32 uint16 int8 int32 int16 charNZ strnptr Strptr0 Strptr1 nat lint ulint double float size_t
|
2018-06-18 21:42:18 -04:00
|
|
|
|
syn keyword atsType datavtype datatype vtypedef dataviewtype viewtypdef typedef view viewdef dataview abstype absvtype absviewtype absview datasort dataprop type viewtype vtype
|
2018-06-09 20:34:41 -04:00
|
|
|
|
syn keyword atsType absimpl
|
2018-02-26 18:27:42 -05:00
|
|
|
|
syn keyword atsType implement primplmnt extern
|
|
|
|
|
|
2018-02-26 18:40:25 -05:00
|
|
|
|
syn match atsParens "[()]"
|
|
|
|
|
|
2018-02-26 23:59:50 -05:00
|
|
|
|
syn match atsOperator "\v[\@\'\#]"
|
2018-02-26 18:27:42 -05:00
|
|
|
|
|
2018-02-26 23:57:57 -05:00
|
|
|
|
syn region atsMacro start="\v^#" end="\v$" contains=atsString
|
2018-02-26 18:27:42 -05:00
|
|
|
|
|
2018-02-26 18:53:22 -05:00
|
|
|
|
syn keyword atsBool true false
|
|
|
|
|
|
2018-02-28 15:40:02 -05:00
|
|
|
|
syn match atsComment "\v\/\/.*$" contains=atsTodo,@Spell
|
2018-02-28 20:50:06 -05:00
|
|
|
|
syn region atsNestComment start="/\*" end="\*/" contains=atsNestComment,atsTodo,@Spell
|
|
|
|
|
syn region atsNestParenComment start="(\*" end="\*)" contains=atsTodo,@Spell,atsNestParenComment
|
2018-02-26 19:07:18 -05:00
|
|
|
|
|
2018-02-26 19:09:03 -05:00
|
|
|
|
syntax match logicalAnd '&&' conceal cchar=∧
|
|
|
|
|
syntax match leq '<=' conceal cchar=≤
|
|
|
|
|
syntax match geq '>=' conceal cchar=≥
|
|
|
|
|
syntax match neq '!=' conceal cchar=≠
|
2018-06-18 03:42:46 -04:00
|
|
|
|
syntax match seq '==' conceal cchar=≡
|
2018-02-26 19:09:03 -05:00
|
|
|
|
syntax match logicalOr '||' conceal cchar=∨
|
|
|
|
|
|
2018-03-03 16:53:30 -05:00
|
|
|
|
syn match atsChar "\v'.'"
|
|
|
|
|
syn match atsChar "\v'.*'" contains=atsSpecial
|
2018-04-27 00:09:28 -04:00
|
|
|
|
syn match atsPattern "\v'\("
|
2018-03-03 16:53:30 -05:00
|
|
|
|
|
2018-02-26 19:09:03 -05:00
|
|
|
|
syn include @c syntax/c.vim
|
2018-04-09 21:59:39 -04:00
|
|
|
|
syn region cBlock matchgroup=atsCBlock start="%{\|%{^\|%{#" end="%}" contains=@c
|
2018-02-26 19:09:03 -05:00
|
|
|
|
|
|
|
|
|
highlight link Conceal Keyword
|
2018-02-26 18:53:22 -05:00
|
|
|
|
highlight link atsBool Boolean
|
2018-02-26 18:48:54 -05:00
|
|
|
|
highlight link atsKeywordTwo Include
|
2018-02-26 18:40:25 -05:00
|
|
|
|
highlight link atsArrow Special
|
2018-02-26 18:27:42 -05:00
|
|
|
|
highlight link atsFixity Underlined
|
2018-02-26 18:40:25 -05:00
|
|
|
|
highlight link atsOperator Special
|
2018-02-26 18:27:42 -05:00
|
|
|
|
highlight link atsSpecial Special
|
|
|
|
|
highlight link atsString String
|
|
|
|
|
highlight link atsUint Number
|
|
|
|
|
highlight link atsInt Number
|
2018-05-13 21:52:33 -04:00
|
|
|
|
highlight link atsHex Number
|
2018-02-26 18:27:42 -05:00
|
|
|
|
highlight link atsChar Character
|
2018-02-26 18:11:07 -05:00
|
|
|
|
highlight link atsComment Comment
|
|
|
|
|
highlight link atsNestComment Comment
|
2018-02-28 20:50:06 -05:00
|
|
|
|
highlight link atsNestParenComment Comment
|
2018-02-26 18:11:07 -05:00
|
|
|
|
highlight link atsKeyword Keyword
|
|
|
|
|
highlight link atsType Type
|
2018-02-26 18:27:42 -05:00
|
|
|
|
highlight link atsIdentifier Identifier
|
2009-06-26 20:00:00 -04:00
|
|
|
|
|
2018-02-26 18:55:36 -05:00
|
|
|
|
hi def link atsCBlock Special
|
|
|
|
|
|
|
|
|
|
setlocal conceallevel=1
|
|
|
|
|
|
2017-11-05 11:41:12 -05:00
|
|
|
|
let b:current_syntax = 'ats'
|
2009-06-26 20:00:00 -04:00
|
|
|
|
|
2017-11-05 11:41:12 -05:00
|
|
|
|
if main_syntax ==# 'ats'
|
2009-06-26 20:00:00 -04:00
|
|
|
|
unlet main_syntax
|
|
|
|
|
endif
|
|
|
|
|
|