" " Syntax file for the Alex lexer generator " " set isk+=' syn include @Haskell syntax/haskell.vim unlet b:current_syntax syn region alexHsSnippet matchgroup=alexDelim start="{" end="}" contains=@Haskell,alexHsBraces,alexHsMComment,alexHsPragma " this is needed because {} aren't a region in haskell.vim so alexHsSnippet " ends on the first } it sees syn region alexHsPragma start="{-#" end="#-}" contained syn region alexHsMComment start="{-\ze[^#]" end="-}" contained syn region alexHsBraces matchgroup=alexDelim start="{\ze[^-]" end="}" contained contains=@Haskell,alexHsBraces syn match alexDelim ";" syn region alexString start=+"+ skip=+\\"+ end=+"+ contains=alexStrQuoteEscape syn match alexStrQuoteEscape +\\"\|\\\\+ contained syn match alexEscape "\\\(x\x\+\|o\o\+\|\d\+\|.\)" syn match alexDecimal "\d\+" syn match alexComment "--.*" syn match alexWrapper "%wrapper" syn match alexSmac "\$\a\k*" syn match alexRmac "@\a\k*" syn match alexColonDash "\(\a\k*\_s*\)\?:-" " ^, /, or $ outside of an smac syn match alexContext "[\^/]\|\$\ze\A" syn region alexStartCode start="<" end=">" contains=alexSCZero,alexSCDigitErr nextgroup=alexSCBraced skipwhite skipempty syn match alexSCZero "0" contained syn match alexSCDigitErr "[1-9]" contained syn region alexSCBraced matchgroup=alexSCBraces start="{" end="}" contains=TOP contained syn match alexREMod "\V|\|*\|+\|?" syn match alexRERange "{\s*\d\+\s*,\s*\d\+\s*}" contains=alexDecimal syn match alexDelim "[[\]]" syn match alexSetOp "[#.~]" " this gubbins matches a '-' without another next to it " just matching "-" also matches the ones used in comments syn match alexSetOp "-\@