syn region evocationComment start="\(^\|\s\)\zs\~\($\|\s\)" end="$" syn region evocationString start=_\(^\|\s\)\zss"\ze\($\|\s\)_ end=_"_ syn region evocationString start=_\(^\|\s\)\zs\."\ze\($\|\s\)_ end=_"_ syn match evocationColonWord "\(^\|\s\)\zs:\s\+\S\+\ze\($\|\s\)" syn match evocationTickWord "\(^\|\s\)\zs'\s\+\S\+\ze\($\|\s\)" syn match evocationTickWord "\(^\|\s\)\zsL'\s\+\S\+\ze\($\|\s\)" syn match evocationTickWord "\(^\|\s\)\zsL@'\s\+\S\+\ze\($\|\s\)" syn match evocationTickWord "\(^\|\s\)\zsL!'\s\+\S\+\ze\($\|\s\)" syn keyword evocationStackManipulation swap drop 2drop 3drop ndrop syn keyword evocationStackManipulation roll unroll 3roll 3unroll syn keyword evocationStackManipulation dup 2dup 3dup ndup over pick syn match evocationNumber "\(^\|\s\)\zs-\?\d\+\ze\($\|\s\)" syn match evocationNumber "\(^\|\s\)\zs-\?0b[01]\+\ze\($\|\s\)" syn match evocationNumber "\(^\|\s\)\zs-\?0o[0-7]\+\ze\($\|\s\)" syn match evocationNumber "\(^\|\s\)\zs-\?0x[0-9a-fA-F]\+\ze\($\|\s\)" syn match evocationOperator "\(^\|\s\)\zs[.,&|@!]\ze\($\|\s\)" syn match evocationLogic "\(^\|\s\)\zs&&\ze\($\|\s\)" syn match evocationLogic "\(^\|\s\)\zs||\ze\($\|\s\)" syn keyword evocationLogic not syn match evocationComparison "\(^\|\s\)\zs!=\ze\($\|\s\)" syn match evocationComparison "\(^\|\s\)\zs=\ze\($\|\s\)" syn match evocationComparison "\(^\|\s\)\zs>=\ze\($\|\s\)" syn match evocationComparison "\(^\|\s\)\zs<=\ze\($\|\s\)" syn match evocationComparison "\(^\|\s\)\zs>\ze\($\|\s\)" syn match evocationComparison "\(^\|\s\)\zs<\ze\($\|\s\)" syn match evocationArithmetic "\(^\|\s\)\zs+\ze\($\|\s\)" syn match evocationArithmetic "\(^\|\s\)\zs-\ze\($\|\s\)" syn match evocationArithmetic "\(^\|\s\)\zs\*\ze\($\|\s\)" syn match evocationArithmetic "\(^\|\s\)\zs/%\ze\($\|\s\)" syn match evocationArithmetic "\(^\|\s\)\zs1+\ze\($\|\s\)" syn match evocationArithmetic "\(^\|\s\)\zs1-\ze\($\|\s\)" syn keyword evocationArithmetic negate max min syn match evocationBlock "\(^\|\s\)\zs[\[\]{};]\ze\($\|\s\)" syn match evocationBlock "\(^\|\s\)\zs;asm\ze\($\|\s\)" syn match evocationFlow "\(^\|\s\)\zs\(if\|unless\|if-else\|while\|forever\|exit\|make-immediate\|make-hidden\)\ze\($\|\s\)" syn match evocationConstantWord "\(^\|\s\)\zs:\S\+\ze\($\|\s\)" hi def link evocationComment Comment hi def link evocationString String hi def link evocationColonWord Identifier hi def link evocationTickWord Identifier hi def link evocationStackManipulation Constant hi def link evocationNumber Number hi def link evocationOperator Operator hi def link evocationLogic Operator hi def link evocationComparison Operator hi def link evocationArithmetic Operator hi def link evocationBlock Structure hi def link evocationFlow Structure hi def link evocationConstantWord Constant