" Vim syntax file " Language: lace " Maintainer: Jocelyn Fiat " Last Change: 2001 May 09 " Copyright Interactive Software Engineering, 1998 " You are free to use this file as you please, but " if you make a change or improvement you must send " it to the maintainer at " 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 " LACE is case insensitive, but the style guide lines are not. if !exists("lace_case_insensitive") syn case match else syn case ignore endif " A bunch of useful LACE keywords syn keyword laceTopStruct system root default option visible cluster syn keyword laceTopStruct external generate end syn keyword laceOptionClause collect assertion debug optimize trace syn keyword laceOptionClause profile inline precompiled multithreaded syn keyword laceOptionClause exception_trace dead_code_removal syn keyword laceOptionClause array_optimization syn keyword laceOptionClause inlining_size inlining syn keyword laceOptionClause console_application dynamic_runtime syn keyword laceOptionClause line_generation syn keyword laceOptionMark yes no all syn keyword laceOptionMark require ensure invariant loop check syn keyword laceClusterProp use include exclude syn keyword laceAdaptClassName adapt ignore rename as syn keyword laceAdaptClassName creation export visible syn keyword laceExternal include_path object makefile " Operators syn match laceOperator "\$" syn match laceBrackets "[[\]]" syn match laceExport "[{}]" " Constants syn keyword laceBool true false syn keyword laceBool True False syn region laceString start=+"+ skip=+%"+ end=+"+ contains=laceEscape,laceStringError syn match laceEscape contained "%[^/]" syn match laceEscape contained "%/\d\+/" syn match laceEscape contained "^[ \t]*%" syn match laceEscape contained "%[ \t]*$" syn match laceStringError contained "%/[^0-9]" syn match laceStringError contained "%/\d\+[^0-9/]" syn match laceStringError "'\(%[^/]\|%/\d\+/\|[^'%]\)\+'" syn match laceCharacter "'\(%[^/]\|%/\d\+/\|[^'%]\)'" contains=laceEscape syn match laceNumber "-\=\<\d\+\(_\d\+\)*\>" syn match laceNumber "\<[01]\+[bB]\>" syn match laceNumber "-\=\<\d\+\(_\d\+\)*\.\(\d\+\(_\d\+\)*\)\=\([eE][-+]\=\d\+\(_\d\+\)*\)\=" syn match laceNumber "-\=\.\d\+\(_\d\+\)*\([eE][-+]\=\d\+\(_\d\+\)*\)\=" syn match laceComment "--.*" contains=laceTodo syn case match " Case sensitive stuff syn keyword laceTodo TODO XXX FIXME syn match laceClassName "\<[A-Z][A-Z0-9_]*\>" syn match laceCluster "[a-zA-Z][a-zA-Z0-9_]*\s*:" syn match laceCluster "[a-zA-Z][a-zA-Z0-9_]*\s*(\s*[a-zA-Z][a-zA-Z0-9_]*\s*)\s*:" " Catch mismatched parentheses syn match laceParenError ")" syn match laceBracketError "\]" syn region laceGeneric transparent matchgroup=laceBrackets start="\[" end="\]" contains=ALLBUT,laceBracketError syn region laceParen transparent start="(" end=")" contains=ALLBUT,laceParenError " Should suffice for even very long strings and expressions syn sync lines=40 " 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_lace_syntax_inits") if version < 508 let did_lace_syntax_inits = 1 command -nargs=+ HiLink hi link else command -nargs=+ HiLink hi def link endif HiLink laceTopStruct PreProc HiLink laceOptionClause Statement HiLink laceOptionMark Constant HiLink laceClusterProp Label HiLink laceAdaptClassName Label HiLink laceExternal Statement HiLink laceCluster ModeMsg HiLink laceEscape Special HiLink laceBool Boolean HiLink laceString String HiLink laceCharacter Character HiLink laceClassName Type HiLink laceNumber Number HiLink laceOperator Special HiLink laceArray Special HiLink laceExport Special HiLink laceCreation Special HiLink laceBrackets Special HiLink laceConstraint Special HiLink laceComment Comment HiLink laceError Error HiLink laceStringError Error HiLink laceParenError Error HiLink laceBracketError Error HiLink laceTodo Todo delcommand HiLink endif let b:current_syntax = "lace" " vim: ts=4