package publish
This commit is contained in:
parent
578e4fa52c
commit
acbf438de8
1 changed files with 9 additions and 147 deletions
156
syntax/ats.vim
156
syntax/ats.vim
|
@ -5,156 +5,18 @@ if !exists('main_syntax')
|
|||
let main_syntax = 'ats'
|
||||
endif
|
||||
|
||||
" comment highlighting
|
||||
syn keyword atsTodo TODO FIXME NOTE contained
|
||||
syn match atscCommentError display "\*/"
|
||||
syn match atscCommentStartError display "/\*"me=e-1 contained
|
||||
syn region atscComment matchgroup=atscCommentStart start="/\*" end="\*/" contains=atsTodo,@Spell,atscCommentStartError
|
||||
syn match atsNestedCommentError display "\*)"
|
||||
" mercilessly ripped from d.vim
|
||||
syn region atsNestedComment start="(\*" end="\*)" contains=atsNestedComment,atsTodo,@Spell
|
||||
syn match atsComment "//.*" contains=atsTodo
|
||||
syn keyword atsTodo TODO FIXME contained
|
||||
syn match atsComment "\v\/\/.*$"
|
||||
syn region atsNestComment start="(\*" end="\*)" contains=atsNestComment,atsTodo,@Spell
|
||||
|
||||
"
|
||||
" denotation highlighting
|
||||
"
|
||||
syn keyword atsKeyword staload overload with fun
|
||||
|
||||
" special characters
|
||||
syn match atsSpecial display contained "\\\(x\x\+\|\o\{1,3}\|.\|$\)"
|
||||
syn match atsSpecial display contained "\\\(u\x\{4}\|U\x\{8}\)"
|
||||
syn match atsSpecial '\\n'
|
||||
syn match atsSpecial '@'
|
||||
" syn match atsSpecial '#'
|
||||
syn match atsFormat display "%\(\d\+\$\)\=[-+' #0*]*\(\d*\|\*\|\*\d\+\$\)\(\.\(\d*\|\*\|\*\d\+\$\)\)\=\([hlL]\|ll\)\=\([bdiuoxXDOUfeEgGcCsSpn]\|\[\^\=.[^]]*\]\)" contained
|
||||
syn region atsStringDenot start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=atsSpecial,atsFormat,atsSpecial,@Spell
|
||||
syn match atsCharDenot "'[^\\]'"
|
||||
syn match atsCharDenot "'[^']*'" contains=atsSpecial
|
||||
syn keyword atsType void bool string char int uint charNZ strnptr Strptr0 Strptr1
|
||||
|
||||
syn keyword atsBoolDenot true false
|
||||
syn case ignore
|
||||
syn match atsNumbers display transparent "\<\d\|\.\d" contains=atsNumber,atsFloat,atsOctalError,atsOctal
|
||||
syn match atsNumber display contained "\d\+\(u\=l\{0,2}\|ll\=u\)\>"
|
||||
syn match atsNumber display contained "0x\x\+\(u\=l\{0,2}\ll\=\u\)\>"
|
||||
" flag the first zero of an octal number as something special
|
||||
syn match atsOctal display contained "0\o\+\(u\=l\{0,2}\|ll\=u\)\>" contains=atsOctalZero
|
||||
syn match atsFloat display contained "\d\+\.\d*\(e[-+]\=\d\+\)\="
|
||||
syn match atsFloat display contained "\.\d\+\(e[-+]\=\d\+\)\>"
|
||||
syn match atsFloat display contained "\d\+e[-+]\=\d\+\>"
|
||||
|
||||
" flag an octal number with wrong digits
|
||||
syn match atsOctalError display contained "0\o*[89]\d*"
|
||||
syn case match
|
||||
|
||||
syn region atsIncludes oneline start='#include' end='"' contains=atsStringDenot
|
||||
syn match atsIdent "[A-Za-z_][0-9A-Za-z_\']*"
|
||||
|
||||
" embedded C
|
||||
" %{^ %} %{ %} %{$ %} %{# %}
|
||||
if main_syntax !=# 'c' || exists('c')
|
||||
syn include @atsC syntax/c.vim
|
||||
unlet b:current_syntax
|
||||
syn region embC start=+%{[^#$]\=+ keepend end=+%}+ contains=@atsC
|
||||
endif
|
||||
|
||||
"
|
||||
" keyword highlighting
|
||||
"
|
||||
|
||||
" keyword highlighting
|
||||
syn keyword atsKeyword prefix postfix infix infixl infixr op addr
|
||||
syn keyword atsKeyword staload stadef sta dynload stacst assertloc macdef
|
||||
syn keyword atsCond if then else case sif when ifcase
|
||||
syn keyword atsRepeat while
|
||||
syn keyword atsOperator mod
|
||||
syn keyword atsException exception raise try
|
||||
syn keyword atsStatement import let in where local
|
||||
syn keyword atsStatement val and fnx fun fn llam lam fix rec var of assume castfn prfun prfn
|
||||
syn keyword atsStatement begin end
|
||||
syn keyword atsTypedef typedef sortdef viewtypedef vtypedef viewdef
|
||||
syn keyword atsStructure datatype datavtype abstype dataviewtype dataprop dataview propdef absview
|
||||
syn keyword atsExternal extern implement primplmnt
|
||||
|
||||
syn keyword atsKeyword symintr overload with
|
||||
syn keyword atsKeyword prval praxi datasort
|
||||
|
||||
syn keyword atsSorts bool char int absprop prop type view viewtype nat absvtype absviewtype vtype
|
||||
|
||||
syn keyword atsTypes string float double void
|
||||
|
||||
syn match atsSym "[%&+-\./:=@~`^|*!$#?]+\|[%&+-\./:=@~`^|*<>]+"
|
||||
|
||||
" C preprocessor directives
|
||||
syn region atsPreCondit start="^\s*\(%:\|#\)\s*\(if\|ifdef\|ifndef\|elif\)\>" skip="\\$" end="$" end="//"me=s-1 contains=atsComment,atsCommentError
|
||||
syn match atsPreCondit display "^\s*\(%:\|#\)\s*\(else\|endif\)\>"
|
||||
syn region atsCppOut start="^\s*\(%\|#\)\s*if\s\+0\+\>" end=".\@=\|$" contains=atsCppOut2
|
||||
syn region atsCppOut2 contained start="0" end="^\s*\(%:\|#\)\s*\(endif\>\|else\>\|elif\>\)" contains=atsCppSkip
|
||||
syn region atsCppSkip contained start="^\s*\(%:\|#\)\s*\(if\>\|ifdef\>\|print\>\|ifndef\>\)" skip="\\$" end="^\s*\(%:\|#\)\s*endif\>" contains=atsCppSkip
|
||||
syn region atsIncluded display contained start=+"+ skip=+\\\\\|\\"+ end=+"+
|
||||
syn match atsIncluded display contained "<[^>]*>"
|
||||
syn match atsInclude "^\s*\(%:\|#\)\s*include\>\s*["<]" contains=atsIncluded
|
||||
syn cluster atsPreProcGroup contains=atsPreCondit,atsIncluded,atsInclude,atsDefine,atsCppOut,atsCppOut2,atsCppSkip
|
||||
syn region atsDefine matchgroup=atsPreCondit start="\s*\(%:\|#\)\s*\(define\|undef\)\>" skip="\\$" end="$"
|
||||
syn region atsPreProc matchgroup=atsPreCondit start="^\s*\(%:\|#\)\s*\(pragma\>\|line\>warning\>\|warn\>\|error\>\)" skip="\\$" end="$" keepend
|
||||
|
||||
"
|
||||
" linking
|
||||
"
|
||||
|
||||
" don't use standard HiLink, it won't work with included syntax files
|
||||
command! -nargs=+ AtsHiLink hi def link <args>
|
||||
|
||||
" includes
|
||||
AtsHiLink atsIncludes Special
|
||||
AtsHiLink atsSpecial Special
|
||||
|
||||
" comments
|
||||
AtsHiLink atsCommentStart atsComment
|
||||
AtsHiLink atsNestedComment Comment
|
||||
AtsHiLink atscCommentStart Comment
|
||||
AtsHiLink atscComment Comment
|
||||
AtsHiLink atsComment Comment
|
||||
" delimiters
|
||||
AtsHiLink atsEncl Keyword
|
||||
" constants and denotations
|
||||
AtsHiLink atsBoolDenot Boolean
|
||||
AtsHiLink atsCharsDenot String
|
||||
AtsHiLink atsCharDenot Character
|
||||
AtsHiLink atsStringDenot String
|
||||
AtsHiLink atsNumber Number
|
||||
AtsHiLink atsOctal Number
|
||||
AtsHiLink atsOctalZero PreProc " link this to Error if you want
|
||||
AtsHiLink atsFloat Float
|
||||
AtsHiLink atsOctalError atsError
|
||||
" identifiers
|
||||
AtsHiLink atsIdent Identifier
|
||||
" various keywords
|
||||
AtsHiLink atsKey Keyword
|
||||
AtsHiLink atsOperator Operator
|
||||
AtsHiLink atsCond Conditional
|
||||
AtsHiLink atsRepeat Repeat
|
||||
AtsHiLink atsException Exception
|
||||
AtsHiLink atsStatement Statement
|
||||
AtsHiLink atsKeyword Statement
|
||||
AtsHiLink atsTypedef Typedef
|
||||
AtsHiLink atsStructure Structure
|
||||
AtsHiLink atsExternal StorageClass
|
||||
AtsHiLink atsTypes Type
|
||||
AtsHiLink atsSorts Type
|
||||
AtsHiLink atsSym Operator
|
||||
AtsHiLink atsEncl Keyword
|
||||
" embedded C
|
||||
AtsHiLink embC Special
|
||||
|
||||
AtsHiLink atsPreProc PreProc
|
||||
|
||||
AtsHiLink atsCommentError atsError
|
||||
AtsHiLink atscCommentStartError atsError
|
||||
AtsHiLink atscCommentError atsError
|
||||
AtsHiLink atsNestedCommentError atsError
|
||||
AtsHiLink atsError Error
|
||||
AtsHiLink atsAllErrs Error
|
||||
|
||||
delcommand AtsHiLink
|
||||
highlight link atsComment Comment
|
||||
highlight link atsNestComment Comment
|
||||
highlight link atsKeyword Keyword
|
||||
highlight link atsType Type
|
||||
|
||||
let b:current_syntax = 'ats'
|
||||
|
||||
|
|
Loading…
Reference in a new issue