(sh|bash|zsh)
DECLARE_EXECUTABLE
#!.*$
comment
#(\\[\\\n]|.)*$
doubleQuoteText
"(.|\\[\\"])*?"
doubleQuoteText
'(.|\\[\\'])*?'
keyword
\@for|done|do|while|in|if|elif|then|else|fi\@
keyword
[\$]+[a-zA-Z_][a-zA-Z0-9_]*
functionName
function (\w|_)+[ \t]*\(
boolean
==|<=|>=|!=|<{1,2}|>{1,2}|&&|\{|\}