object SyntAnal3: TLibSyntAnalyzer
  Formats = <
    item
      DisplayName = 'Comment'
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clGray
      Font.Height = -13
      Font.Name = 'Courier New'
      Font.Style = [fsItalic]
    end
    item
      DisplayName = 'Comment shebang'
      Font.Charset = DEFAULT_CHARSET
      Font.Color = 6464605
      Font.Height = -13
      Font.Name = 'Courier New'
      Font.Style = []
    end
    item
      DisplayName = 'Keywords'
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clBlack
      Font.Height = -13
      Font.Name = 'Courier New'
      Font.Style = [fsBold]
    end
    item
      DisplayName = 'Command'
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clBlack
      Font.Height = -13
      Font.Name = 'Courier New'
      Font.Style = []
    end
    item
      DisplayName = 'String'
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clTeal
      Font.Height = -13
      Font.Name = 'Courier New'
      Font.Style = []
    end
    item
      DisplayName = 'Symbol'
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clMaroon
      Font.Height = -13
      Font.Name = 'Courier New'
      Font.Style = [fsBold]
    end
    item
      DisplayName = 'Var'
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clGreen
      Font.Height = -13
      Font.Name = 'Courier New'
      Font.Style = []
    end
    item
      DisplayName = 'Number'
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clNavy
      Font.Height = -13
      Font.Name = 'Courier New'
      Font.Style = [fsBold]
    end
    item
      DisplayName = 'Var block BG'
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clWindowText
      Font.Height = -13
      Font.Name = 'Courier New'
      Font.Style = []
      BgColor = clMoneyGreen
      FormatType = ftBackGround
    end
    item
      DisplayName = 'Ticks block BG'
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clWindowText
      Font.Height = -13
      Font.Name = 'Courier New'
      Font.Style = []
      BgColor = 16767669
      FormatType = ftBackGround
    end
    item
      DisplayName = 'Command std'
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clNavy
      Font.Height = -13
      Font.Name = 'Courier New'
      Font.Style = []
    end
    item
      DisplayName = 'Command param'
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clPurple
      Font.Height = -13
      Font.Name = 'Courier New'
      Font.Style = []
    end
    item
      DisplayName = 'Func name'
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clMaroon
      Font.Height = -13
      Font.Name = 'Courier New'
      Font.Style = []
    end
    item
      DisplayName = 'Symbol2'
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clRed
      Font.Height = -13
      Font.Name = 'Courier New'
      Font.Style = [fsBold]
    end
    item
      DisplayName = 'Var %'
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clOlive
      Font.Height = -13
      Font.Name = 'Courier New'
      Font.Style = []
    end
    item
      DisplayName = 'Math BG'
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clWindowText
      Font.Height = -13
      Font.Name = 'Courier New'
      Font.Style = []
      BgColor = clYellow
      FormatType = ftBackGround
    end
    item
      DisplayName = 'Heredoc BG'
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clMaroon
      Font.Height = -13
      Font.Name = 'Courier New'
      Font.Style = []
      BgColor = 9495763
      FormatType = ftBackGround
    end
    item
      DisplayName = 'Heredoc begin'
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clOlive
      Font.Height = -13
      Font.Name = 'Courier New'
      Font.Style = [fsBold]
    end
    item
      DisplayName = 'String regexp'
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clLime
      Font.Height = -13
      Font.Name = 'Courier New'
      Font.Style = []
    end>
  TokenRules = <
    item
      DisplayName = 'Shebang'
      StyleName = 'Comment shebang'
      TokenType = 1
      Expression = '^\#!.+'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'Var'
      StyleName = 'Var'
      Expression = '\$\w+ | \$[\*\#@\?!\$\-]'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'Var='
      StyleName = 'Var'
      BlockName = '(('
      NotParent = True
      Expression = '\b\w+(?=\x20*\=)'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'Var %'
      StyleName = 'Var %'
      BlockName = '(('
      NotParent = True
      Expression = '%[%\+\-\?]?\w*'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'Var !'
      StyleName = 'Var %'
      BlockName = '(('
      NotParent = True
      Expression = '!! | !\-?\d+'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'IP-Address'
      StyleName = 'String'
      TokenType = 5
      Expression = '\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'Comment'
      StyleName = 'Comment'
      BlockName = '(('
      StrictParent = True
      NotParent = True
      TokenType = 1
      Expression = 
        '^\#.* | (?<=[\x20\x09`])\# (?![\}\]]) (.*?(?=`)|.*$)'#13#10'#support c' +
        'omments inside `..`'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'Command param'
      StyleName = 'Command param'
      BlockName = '(('
      NotParent = True
      Expression = '(?<=\x20)(\-{1,2}|\+)[a-z][\w\-]*'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = '(('
      StyleName = 'Symbol'
      TokenType = 8
      Expression = '\$\(\(|\(\('
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = '))'
      StyleName = 'Symbol'
      BlockName = '(('
      StrictParent = True
      TokenType = 9
      Expression = '\)\)'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = '[['
      StyleName = 'Symbol'
      TokenType = 10
      Expression = '\[\['
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = ']]'
      StyleName = 'Symbol'
      BlockName = '[['
      StrictParent = True
      TokenType = 11
      Expression = '\]\]'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = '('
      StyleName = 'Symbol'
      TokenType = 15
      Expression = '\('
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = ')'
      StyleName = 'Symbol'
      TokenType = 16
      Expression = '\)'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = '{'
      StyleName = 'Symbol'
      TokenType = 17
      Expression = '\{'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = '}'
      StyleName = 'Symbol'
      TokenType = 18
      Expression = '\}'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'Leading \'
      StyleName = 'Symbol'
      TokenType = 4
      Expression = '^[\x20\x09]*\\'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'Escaped char'
      StyleName = 'Symbol'
      TokenType = 4
      Expression = '\\.?'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = '<<<'
      StyleName = 'Symbol'
      TokenType = 4
      Expression = '<<<'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = '<< heredoc'
      StyleName = 'Symbol'
      BlockName = '(('
      NotParent = True
      TokenType = 4
      Expression = '<<\-?'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'Regexp'
      StyleName = 'String regexp'
      BlockName = '[['
      TokenType = 14
      Expression = '(?<=\=~\x20*)\S+'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'Symbol single'
      StyleName = 'Symbol'
      TokenType = 4
      Expression = '\\[\x20\x09]\# | \\. | [,;`\[\]@] | \$[\[\(\{]'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'Symbol 2'
      StyleName = 'Symbol2'
      TokenType = 4
      Expression = '=~ | [&\|=<>\^]=? | [/\-\+!\*\^:~%]='
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'Symbol'
      StyleName = 'Symbol'
      TokenType = 4
      Expression = '[\+\*&:%\#\?\-!~]+'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'Heredoc begin'
      StyleName = 'Heredoc begin'
      BlockName = '(('
      NotParent = True
      TokenType = 13
      Expression = '(?<=<<\-?\x20*) ('#39'\w+'#39'|"\w+"|\w+)'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'Id keyword line-start'
      StyleName = 'Keywords'
      TokenType = 2
      Expression = '(?<=^[\x20\x09]*)(for|if) (?=\x20*\()'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'Id func name'
      StyleName = 'Func name'
      TokenType = 7
      Expression = '(?<=function\x20+)[a-z_]\w*'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'Id func name 2'
      StyleName = 'Func name'
      TokenType = 7
      Expression = '(?<=^[\x20\x09]*)[a-z_]\w* (?=\x20*\()'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'Id at line start'
      StyleName = 'Command'
      TokenType = 12
      Expression = '(?<=^[\x20\x09]*)[a-z_]\w*$'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'String'
      StyleName = 'String'
      TokenType = 5
      Expression = '(?s)\$?("|'#39') (\\\\|\\\1|.)*? (\1|\Z)'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'Number base-n'
      StyleName = 'Number'
      TokenType = 6
      Expression = '\b[1-9][0-9]?\#[0-9a-z@_]+\b'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'Number hex'
      StyleName = 'Number'
      TokenType = 6
      Expression = '\b0x[0-9a-f]+\b'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'Number dec'
      StyleName = 'Number'
      TokenType = 6
      Expression = '\b\d+\.\d+\b | \b[1-9]\d*\b '
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'Number octal'
      StyleName = 'Number'
      TokenType = 6
      Expression = '\b0[0-7]*\b'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'Command'
      StyleName = 'Command'
      BlockName = '(('
      NotParent = True
      TokenType = 2
      Expression = '\b[a-z_\.][\w\-\.]*\w\b'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'Id'
      StyleName = 'Command'
      Expression = '(?r)\w+'
      ColumnFrom = 0
      ColumnTo = 0
    end>
  BlockRules = <
    item
      DisplayName = 'id keywords'
      StyleName = 'Keywords'
      BlockType = btTagDetect
      ConditionList = <
        item
          TagList.Strings = (
            'case'
            'coproc'
            'do'
            'done'
            'elif'
            'else'
            'endif'
            'esac'
            'fi'
            'for'
            'function'
            'if'
            'in'
            'select'
            'then'
            'time'
            'until'
            'while')
          TokenTypes = 4100
        end>
      HighlightPos = cpAny
      IgnoreAsParent = False
    end
    item
      DisplayName = 'id commands'
      StyleName = 'Command std'
      BlockType = btTagDetect
      ConditionList = <
        item
          TagList.Strings = (
            'addgroup'
            'adduser'
            'alias'
            'apropos'
            'apt'
            'apt-get'
            'aptitude'
            'aspell'
            'awk'
            'basename'
            'bash'
            'bc'
            'bg'
            'break'
            'builtin'
            'bzip2'
            'cal'
            'cat'
            'cd'
            'cfdisk'
            'chgrp'
            'chkconfig'
            'chmod'
            'chown'
            'chroot'
            'cksum'
            'clear'
            'cmp'
            'comm'
            'command'
            'continue'
            'cp'
            'cron'
            'crontab'
            'csplit'
            'cut'
            'date'
            'dc'
            'dd'
            'ddrescue'
            'declare'
            'df'
            'die'
            'diff'
            'diff3'
            'dig'
            'dir'
            'dircolors'
            'dirname'
            'dirs'
            'dmesg'
            'dpkg-deb'
            'du'
            'echo'
            'egrep'
            'eject'
            'enable'
            'env'
            'ethtool'
            'eval'
            'exec'
            'exit'
            'expand'
            'expect'
            'export'
            'expr'
            'false'
            'fdformat'
            'fdisk'
            'fg'
            'fgrep'
            'file'
            'find'
            'fmt'
            'fold'
            'format'
            'free'
            'fsck'
            'ftp'
            'fuser'
            'gawk'
            'getopts'
            'git'
            'grep'
            'groups'
            'gzip'
            'halt'
            'hash'
            'head'
            'help'
            'history'
            'hostname'
            'id'
            'ifconfig'
            'ifdown'
            'ifup'
            'import'
            'init'
            'initlog'
            'insmod'
            'install'
            'jobs'
            'join'
            'kill'
            'killall'
            'less'
            'let'
            'linuxconf'
            'ln'
            'local'
            'locate'
            'logname'
            'logout'
            'look'
            'lpc'
            'lpr'
            'lprint'
            'lprintd'
            'lprintq'
            'lprm'
            'ls'
            'lsmod'
            'lsof'
            'make'
            'man'
            'md'
            'md5sum'
            'mkdir'
            'mkfifo'
            'mkisofs'
            'mknod'
            'mmv'
            'modprobe'
            'more'
            'mount'
            'mtools'
            'mtr'
            'mv'
            'netstat'
            'nice'
            'nl'
            'nohup'
            'notify-send'
            'nslookup'
            'op'
            'open'
            'passwd'
            'paste'
            'pathchk'
            'pidof'
            'ping'
            'pkill'
            'popd'
            'pr'
            'printcap'
            'printenv'
            'printf'
            'ps'
            'pushd'
            'pwd'
            'python'
            'python3'
            'quota'
            'quotacheck'
            'quotactl'
            'ram'
            'rcp'
            'rd'
            'read'
            'readarray'
            'readonly'
            'reboot'
            'remsync'
            'rename'
            'renice'
            'return'
            'rev'
            'rm'
            'rmdir'
            'rmmod'
            'route'
            'rsync'
            'ruby'
            'scp'
            'screen'
            'sdiff'
            'sed'
            'seq'
            'set'
            'sftp'
            'shift'
            'shopt'
            'shutdown'
            'sleep'
            'slocate'
            'sort'
            'source'
            'split'
            'ssh'
            'strace'
            'su'
            'sudo'
            'sum'
            'suspend'
            'svn'
            'symlink'
            'sync'
            'tail'
            'tar'
            'tee'
            'test'
            'times'
            'top'
            'touch'
            'tr'
            'traceroute'
            'trap'
            'tree'
            'true'
            'tsort'
            'tty'
            'type'
            'typeset'
            'ulimit'
            'umask'
            'umount'
            'unalias'
            'uname'
            'unexpand'
            'uniq'
            'units'
            'unset'
            'unshar'
            'useradd'
            'usermod'
            'users'
            'usleep'
            'uudecode'
            'uuencode'
            'vdir'
            'vi'
            'vmstat'
            'watch'
            'wc'
            'wget'
            'whereis'
            'which'
            'who'
            'whoami'
            'write'
            'xargs'
            'xdg-open'
            'xz'
            'yes'
            'zcat'
            'zip'
            'zless')
          TokenTypes = 4100
        end>
      HighlightPos = cpBound
      IgnoreAsParent = False
    end
    item
      DisplayName = 'func w/keyword'
      ConditionList = <
        item
          TokenTypes = 131072
        end
        item
          TokenTypes = 128
        end
        item
          TagList.Strings = (
            'coproc'
            'function')
          TokenTypes = 4
        end>
      NameFmt = '%s0 %s-1'
      RefToCondEnd = True
      HighlightPos = cpAny
      CollapseFmt = '%sz0'
      NoEndRule = True
      IgnoreAsParent = False
    end
    item
      DisplayName = 'func w/o keyword'
      ConditionList = <
        item
          TokenTypes = 32768
        end
        item
          TokenTypes = 128
        end>
      NameFmt = '%s0'
      RefToCondEnd = True
      HighlightPos = cpAny
      CollapseFmt = '%sz0'
      NoEndRule = True
      IgnoreAsParent = False
    end
    item
      DisplayName = 'case begin'
      ConditionList = <
        item
          TagList.Strings = (
            'case')
          TokenTypes = 4100
        end>
      BlockEnd = 'case end'
      DisplayInTree = False
      NameFmt = '%sz0'
      HighlightPos = cpAny
      DrawStaple = True
      CollapseFmt = '%sz0'
      IgnoreAsParent = False
    end
    item
      DisplayName = 'case end'
      BlockType = btRangeEnd
      ConditionList = <
        item
          TagList.Strings = (
            'esac')
          TokenTypes = 4100
        end>
      HighlightPos = cpAny
      IgnoreAsParent = False
    end
    item
      DisplayName = 'if begin'
      ConditionList = <
        item
          TagList.Strings = (
            'if')
          TokenTypes = 4
        end>
      BlockEnd = 'if end'
      DisplayInTree = False
      NameFmt = '%sz0'
      HighlightPos = cpAny
      DrawStaple = True
      CollapseFmt = '%sz0 ...'
      IgnoreAsParent = False
    end
    item
      DisplayName = 'if end'
      BlockType = btRangeEnd
      ConditionList = <
        item
          TagList.Strings = (
            'fi')
          TokenTypes = 4100
        end>
      HighlightPos = cpAny
      IgnoreAsParent = False
    end
    item
      DisplayName = 'do begin'
      ConditionList = <
        item
          TagList.Strings = (
            'do')
          TokenTypes = 4100
        end>
      BlockEnd = 'do end'
      DisplayInTree = False
      NameFmt = '%sz0'
      HighlightPos = cpAny
      DrawStaple = True
      CollapseFmt = '%sz0 ...'
      IgnoreAsParent = False
    end
    item
      DisplayName = 'do end'
      BlockType = btRangeEnd
      ConditionList = <
        item
          TagList.Strings = (
            'done')
          TokenTypes = 4100
        end>
      HighlightPos = cpAny
      IgnoreAsParent = False
    end
    item
      DisplayName = '$('
      StyleName = 'Var block BG'
      ConditionList = <
        item
          TagList.Strings = (
            '$(')
          TokenTypes = 16
        end>
      BlockEnd = ')'
      NotCollapsed = True
      DisplayInTree = False
      RefToCondEnd = True
      DynHighlight = dhRange
      HighlightPos = cpAny
      CancelNextRules = True
      IgnoreAsParent = False
    end
    item
      DisplayName = '${'
      StyleName = 'Var block BG'
      ConditionList = <
        item
          TagList.Strings = (
            '${')
          TokenTypes = 16
        end>
      BlockEnd = '}'
      NotCollapsed = True
      DisplayInTree = False
      DynHighlight = dhRange
      HighlightPos = cpAny
      IgnoreAsParent = False
    end
    item
      DisplayName = '('
      ConditionList = <
        item
          TokenTypes = 32768
        end>
      BlockEnd = ')'
      NotCollapsed = True
      DisplayInTree = False
      HighlightPos = cpAny
      CancelNextRules = True
      IgnoreAsParent = False
    end
    item
      DisplayName = ')'
      BlockType = btRangeEnd
      ConditionList = <
        item
          TokenTypes = 65536
        end>
      HighlightPos = cpAny
      CancelNextRules = True
      IgnoreAsParent = False
    end
    item
      DisplayName = '{'
      ConditionList = <
        item
          TokenTypes = 131072
        end>
      BlockEnd = '}'
      DisplayInTree = False
      HighlightPos = cpAny
      CollapseFmt = '{ ... }'
      IgnoreAsParent = False
    end
    item
      DisplayName = '}'
      BlockType = btRangeEnd
      ConditionList = <
        item
          TokenTypes = 262144
        end>
      HighlightPos = cpAny
      IgnoreAsParent = False
    end
    item
      DisplayName = '(('
      StyleName = 'Math BG'
      ConditionList = <
        item
          TokenTypes = 256
        end>
      BlockEnd = '))'
      NotCollapsed = True
      DisplayInTree = False
      DynHighlight = dhRange
      HighlightPos = cpAny
      IgnoreAsParent = False
    end
    item
      DisplayName = '))'
      BlockType = btRangeEnd
      ConditionList = <
        item
          TokenTypes = 512
        end>
      HighlightPos = cpAny
      IgnoreAsParent = False
    end
    item
      DisplayName = '[['
      StyleName = 'Math BG'
      ConditionList = <
        item
          TokenTypes = 1024
        end>
      BlockEnd = ']]'
      NotCollapsed = True
      DisplayInTree = False
      DynHighlight = dhRange
      HighlightPos = cpAny
      IgnoreAsParent = False
    end
    item
      DisplayName = ']]'
      BlockType = btRangeEnd
      ConditionList = <
        item
          TokenTypes = 2048
        end>
      HighlightPos = cpAny
      IgnoreAsParent = False
    end
    item
      DisplayName = 'tick begin'
      StyleName = 'Ticks block BG'
      StatesAdd = 2
      StatesAbsent = 2
      ConditionList = <
        item
          TagList.Strings = (
            '`')
          TokenTypes = 16
        end>
      BlockEnd = 'tick end'
      NotCollapsed = True
      DisplayInTree = False
      DynHighlight = dhRange
      HighlightPos = cpAny
      CancelNextRules = True
      IgnoreAsParent = False
    end
    item
      DisplayName = 'tick end'
      StatesRemove = 2
      StatesPresent = 2
      BlockType = btRangeEnd
      ConditionList = <
        item
          TagList.Strings = (
            '`')
          TokenTypes = 16
        end>
      HighlightPos = cpAny
      IgnoreAsParent = False
    end
    item
      DisplayName = 'Heredoc begin'
      StyleName = 'Heredoc BG'
      ConditionList = <
        item
          TokenTypes = 8192
        end>
      BlockEnd = 'Heredoc end'
      NotCollapsed = True
      DisplayInTree = False
      RefToCondEnd = True
      DynHighlight = dhRange
      HighlightPos = cpAny
      IgnoreAsParent = False
    end
    item
      DisplayName = 'Heredoc end'
      BlockType = btRangeEnd
      ConditionList = <
        item
          TokenTypes = 4096
        end>
      SameIdent = True
      HighlightPos = cpAny
      IgnoreAsParent = False
    end>
  CodeTemplates = <>
  SubAnalyzers = <>
  SampleText.Strings = (
    '#!/bin/bash'
    'var=value'
    '/ddd/ddd.sh, "test'
    'string"'
    '+= -= /= *= &= |= ^= ~= == != >= <= ( ) [ ] { } $( ) + - / | < >'
    'test `dirname $var 20+30`, `more $var(20) \'#39'escape\` `'
    '$@, $$, $@, $?, $-, $!, $*'
    '%, %%, %+, %-, %1, %ce, %?ce, !!, !-1, !50, 2>'
    '(( 1 -s --d )) (( !2 ))  [[ $str =~ ^$'#39'ab'#39' ]]'
    '$(echo $(pwd)) ; $( [[ -n $1 ]] )'
    ''
    'function echo {'
    #9'git -a --test "path\"path"'
    '}'
    ''
    'func_name() {'
    '}'
    ''
    'while read line  #comment'
    'do'
    '   test $(test "$line")'
    '   len=${#line} $(text here)'
    '   if [[ "$len" -lt "$MINLEN" && "$line" =~ \[*\.\] ]]'
    '     then echo'
    '   fi'
    'done'
    ''
    'cat <<-  '#39'indented_without_expansions'#39
    '    ${foo}'
    '    indented_without_expansions'
    ''
    'variable=$(cat <<SETVAR'
    'HereDoc'
    'SETVAR'
    ')')
  TokenTypeNames.Strings = (
    'Unknown'
    'Comment'
    'Id'
    'Label'
    'Symbol'
    'String'
    'Number'
    'Id func name'
    '(('
    '))'
    '[['
    ']]'
    'Id at line start'
    'Heredoc begin'
    'Regexp'
    '('
    ')'
    '{'
    '}')
  Extentions = 
    'sh bash zsh fish csh ksh command /.bashrc /.zshrc /.bash_aliases' +
    ' /.bash_completions /.bash_functions /.bash_login /.bash_logout ' +
    '/.bash_profile /.bash_variables /.profile /.textmate_init'
  LexerName = 'Bash script'
  SkipSpaces = False
  Notes.Strings = (
    'Initial by: Matthias Eberhardt (CudaText forum admin)'
    'Fully reworked by Alexey (CudaText)')
  RestartFromLineStart = True
  LineComment = '#'
  Charset = DEFAULT_CHARSET
  Left = 144
  Top = 184
end
