" Vim syntax file " Language: Clean " Author: Pieter van Engelen " Co-Author: Arthur van Leeuwen " Last Change: Fri Feb 6 15:02:40 CET 1998 syn clear " Some Clean-keywords syn keyword cleanConditional if case syn keyword cleanLabel let! with where in of syn keyword cleanInclude from import syn keyword cleanSpecial Start syn keyword cleanKeyword infixl infixr infix syn keyword cleanBasicType Int Real Char Bool String syn keyword cleanSpecialType World ProcId Void Files File syn keyword cleanModuleSystem module implementation definition system syn keyword cleanTypeClass class instance export " To do some Denotation Highlighting syn keyword cleanBoolDenot True False syn region cleanStringDenot start=+"+ end=+"+ syn match cleanCharDenot "'.'" syn match cleanCharsDenot "'.*'" contained syn match cleanIntegerDenot "[+-~]\=\<\(\d\+\|0[0-7]\+\|0x[0-9A-Fa-f]\+\)\>" syn match cleanRealDenot "[+-~]\=\<\d\+\.\d+\(E[+-~]\=\d+\)\=" " To highlight the use of lists, tuples and arrays syn region cleanList start="\[" end="\]" contains=ALL syn region cleanRecord start="{" end="}" contains=ALL syn region cleanArray start="{:" end=":}" contains=ALL syn match cleanTuple "([^=]*,[^=]*)" contains=ALL " To do some Comment Highlighting syn region cleanComment start="/\*" end="\*/" syn match cleanComment "//.*" " Now for some useful typedefinitionrecognition syn match cleanFuncTypeDef "\([a-zA-Z].*\|(\=[-~@#$%^?!+*<>\/|&=:]\+)\=\)[ \t]*\(infix[lr]\=\)\=[ \t]*\d\=[ \t]*::.*->.*" oneline contains=cleanSpecial if !exists("did_clean_syntax_init") let did_clean_syntax_init = 1 " Comments hi link cleanComment Comment " Constants and denotations hi link cleanCharsDenot String hi link cleanStringDenot String hi link cleanCharDenot Character hi link cleanIntegerDenot Number hi link cleanBoolDenot Boolean hi link cleanRealDenot Float " Identifiers " Statements hi link cleanTypeClass Keyword hi link cleanConditional Conditional hi link cleanLabel Label hi link cleanKeyword Keyword " Generic Preprocessing hi link cleanInclude Include hi link cleanModuleSystem PreProc " Type hi link cleanBasicType Type hi link cleanSpecialType Type hi link cleanFuncTypeDef Typedef " Special hi link cleanSpecial Special hi link cleanList Special hi link cleanArray Special hi link cleanRecord Special hi link cleanTuple Special " Error " Todo endif let b:current_syntax = "clean" " vim: ts=4