object SyntAnal9: TLibSyntAnalyzer
  Formats = <
    item
      DisplayName = 'Symbol'
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clMaroon
      Font.Height = -13
      Font.Name = 'Courier New'
      Font.Style = [fsBold]
    end
    item
      DisplayName = 'Number'
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clNavy
      Font.Height = -13
      Font.Name = 'Courier New'
      Font.Style = [fsBold]
    end
    item
      DisplayName = 'String'
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clTeal
      Font.Height = -13
      Font.Name = 'Courier New'
      Font.Style = []
    end
    item
      DisplayName = 'String regex'
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clOlive
      Font.Height = -13
      Font.Name = 'Courier New'
      Font.Style = []
    end
    item
      DisplayName = 'Identifier'
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clBlack
      Font.Height = -13
      Font.Name = 'Courier New'
      Font.Style = []
    end
    item
      DisplayName = 'Id keyword'
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clBlack
      Font.Height = -13
      Font.Name = 'Courier New'
      Font.Style = [fsBold]
    end
    item
      DisplayName = 'Id standard'
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clNavy
      Font.Height = -13
      Font.Name = 'Courier New'
      Font.Style = []
    end
    item
      DisplayName = 'Id std'
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clPurple
      Font.Height = -13
      Font.Name = 'Courier New'
      Font.Style = []
    end
    item
      DisplayName = 'Comment'
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clGray
      Font.Height = -13
      Font.Name = 'Courier New'
      Font.Style = [fsItalic]
    end
    item
      DisplayName = 'Comment doc'
      Font.Charset = DEFAULT_CHARSET
      Font.Color = 12615808
      Font.Height = -13
      Font.Name = 'Courier New'
      Font.Style = [fsItalic]
    end
    item
      DisplayName = 'Current block'
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clMaroon
      Font.Height = -13
      Font.Name = 'Courier New'
      Font.Style = [fsBold]
      BgColor = 13369046
      FormatType = ftBackGround
      BorderTypeLeft = blSolid
      BorderColorLeft = clGray
      BorderTypeTop = blSolid
      BorderColorTop = clGray
      BorderTypeRight = blSolid
      BorderColorRight = clGray
      BorderTypeBottom = blSolid
      BorderColorBottom = clGray
    end
    item
      DisplayName = 'PHP tag'
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clRed
      Font.Height = -13
      Font.Name = 'Courier New'
      Font.Style = [fsBold]
    end
    item
      DisplayName = 'Id func name'
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clBlue
      Font.Height = -13
      Font.Name = 'Courier New'
      Font.Style = []
    end
    item
      DisplayName = 'HTML tag name'
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clGreen
      Font.Height = -13
      Font.Name = 'Courier New'
      Font.Style = []
    end
    item
      DisplayName = 'Id upcase const'
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clGreen
      Font.Height = -13
      Font.Name = 'Courier New'
      Font.Style = []
    end>
  TokenRules = <
    item
      DisplayName = 'Comment empty'
      StyleName = 'Comment'
      TokenType = 1
      Expression = '/\*\*/'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'Comment doc'
      StyleName = 'Comment doc'
      TokenType = 1
      Expression = '(?s)/\*\*.+?\*/'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'Comment doc end-only'
      StyleName = 'Comment doc'
      TokenType = 1
      Expression = '\*/'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'Comment'
      StyleName = 'Comment'
      TokenType = 1
      Expression = '(?s)/\*.*?(\*/|\Z)'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'Comment line'
      StyleName = 'Comment'
      TokenType = 1
      Expression = '//.*? (?=</script>) |'#13#10'//.* '
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'Comment shebang'
      StyleName = 'Comment doc'
      TokenType = 1
      Expression = '(?<=^[\x20]*) \#!.*'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'String'
      StyleName = 'String'
      TokenType = 4
      Expression = '("|'#39') (\\\\|\\\1|\\\z|.)*? (\1|\Z)'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'String ticks'
      StyleName = 'String regex'
      TokenType = 4
      Expression = '(?s)`(\\`|.)*?(`|\Z)'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'String Regex'
      StyleName = 'String regex'
      TokenType = 4
      Expression = 
        '(?<=[=\(\[&!:/>\?\+]\x20*) / (\\/|\\\\|\[.+?\]|.)*? /[gimysu]* |' +
        #13#10'(?<=^\x20*)                / (\\/|\\\\|\[.+?\]|.)*? /[gimysu]*' +
        ' |'#13#10'(?<=\bcase\x20+)           / (\\/|\\\\|\[.+?\]|.)*? /[gimysu' +
        ']* |'#13#10'(?<=\breturn\x20+)         / (\\/|\\\\|\[.+?\]|.)*? /[gimy' +
        'su]*'#13#10
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'String Heredoc'
      StyleName = 'String'
      TokenType = 4
      Expression = '(?s) <r><!\[CDATA\[ .+? (\]\]></r> | \Z) '
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'Id func name'
      StyleName = 'Id func name'
      TokenType = 2
      Expression = 
        '(?r)(?<=\bfunction\*?\x20+)[\$\w\x{200C}\x{200D}]+ | (?<=\bclass' +
        '\x20+)[\$\w\x{200C}\x{200D}]+'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'HTML tag name'
      StyleName = 'HTML tag name'
      TokenType = 2
      Expression = '(?<=</?)\w+(?=[\x20/>\n])'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'Id upcase const'
      StyleName = 'Id upcase const'
      TokenType = 2
      Expression = '(?-i)[A-Z_\$][A-Z0-9_\$]*[A-Z][A-Z0-9_\$]* (?=[^\w\(])'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'Id after .'
      StyleName = 'Identifier'
      TokenType = 9
      Expression = '(?<=\.)[a-z_]\w*'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'Id'
      StyleName = 'Identifier'
      TokenType = 2
      Expression = '[a-z_\$][\w\$]*\b'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'Hex'
      StyleName = 'Number'
      TokenType = 5
      Expression = '0x[0-9a-f_]+n?\b | 0b[01_]+n?\b | 0o[0-7_]+n?\b'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'Float'
      StyleName = 'Number'
      TokenType = 5
      Expression = 
        '\d[\d_]* (\.[\d_]*)? e [\+\-]? \d[\d_]*\b |'#13#10'\d[\d_]*\.[\d_]*\b ' +
        '|'#13#10'\.\d[\d_]*\b'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'Integer'
      StyleName = 'Number'
      TokenType = 5
      Expression = '\d[\d_]*n?\b'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'PHP tag'
      StyleName = 'PHP tag'
      TokenType = 6
      Expression = '<\?php | <\? | \?>'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'Symbol { }'
      StyleName = 'Symbol'
      TokenType = 8
      Expression = '[\{\}]'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'Symbol ( )'
      StyleName = 'Symbol'
      TokenType = 7
      Expression = '[\(\)]'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'Symbol single'
      StyleName = 'Symbol'
      TokenType = 3
      Expression = '\?\?|\?\.|[\[\],;:\.\?/]'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'Symbol'
      StyleName = 'Symbol'
      TokenType = 3
      Expression = '[\-\+\*/=<>&\|\^]=? | [~!%\#@]+'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'Escaped char'
      StyleName = 'Symbol'
      TokenType = 3
      Expression = '\\.'
      ColumnFrom = 0
      ColumnTo = 0
    end>
  BlockRules = <
    item
      DisplayName = 'id keywords'
      StyleName = 'Id keyword'
      BlockType = btTagDetect
      ConditionList = <
        item
          TagList.Strings = (
            'abstract'
            'as'
            'async'
            'await'
            'boolean'
            'break'
            'byte'
            'case'
            'catch'
            'char'
            'class'
            'const'
            'continue'
            'debugger'
            'delete'
            'do'
            'double'
            'else'
            'enum'
            'eval'
            'export'
            'extends'
            'final'
            'finally'
            'float'
            'for'
            'from'
            'function'
            'if'
            'implements'
            'import'
            'in'
            'instanceof'
            'int'
            'interface'
            'let'
            'long'
            'native'
            'new'
            'of'
            'package'
            'private'
            'protected'
            'public'
            'return'
            'short'
            'static'
            'switch'
            'synchronized'
            'throw'
            'throws'
            'transient'
            'try'
            'typeof'
            'var'
            'void'
            'volatile'
            'while'
            'with'
            'yield')
          TokenTypes = 4
        end>
      HighlightPos = cpBound
      IgnoreAsParent = False
    end
    item
      DisplayName = 'id standard'
      StyleName = 'Id standard'
      BlockType = btTagDetect
      ConditionList = <
        item
          TagList.Strings = (
            '__dirname'
            '__filename'
            '$export'
            'Array'
            'constructor'
            'Date'
            'exports'
            'get'
            'global'
            'hasOwnProperty'
            'isFinite'
            'isNaN'
            'isPrototypeOf'
            'length'
            'Math'
            'module'
            'name'
            'Number'
            'Object'
            'process'
            'prototype'
            'require'
            'set'
            'String'
            'toString'
            'valueOf')
          TokenTypes = 4
        end>
      HighlightPos = cpAny
      IgnoreAsParent = False
    end
    item
      DisplayName = 'id const'
      StyleName = 'Id std'
      BlockType = btTagDetect
      ConditionList = <
        item
          TagList.Strings = (
            'arguments'
            'default'
            'false'
            'frames'
            'globalThis'
            'Infinity'
            'NaN'
            'null'
            'self'
            'super'
            'this'
            'true'
            'undefined'
            'window')
          TokenTypes = 4
        end>
      HighlightPos = cpAny
      IgnoreAsParent = False
    end
    item
      DisplayName = 'for/if'
      ConditionList = <
        item
          TagList.Strings = (
            ')')
          TokenTypes = 128
        end
        item
          CondType = tcSkip
          TokenTypes = 62
        end
        item
          TagList.Strings = (
            '(')
          TokenTypes = 128
        end
        item
          TagList.Strings = (
            'for'
            'if')
          TokenTypes = 4
        end>
      NotCollapsed = True
      DisplayInTree = False
      NameFmt = '%sz0'
      RefToCondEnd = True
      HighlightPos = cpAny
      NoEndRule = True
      IgnoreAsParent = False
    end
    item
      DisplayName = 'function id=>id'
      ConditionList = <
        item
          TokenTypes = 36
        end
        item
          TagList.Strings = (
            '=>')
          TokenTypes = 8
        end
        item
          TokenTypes = 4
        end>
      NameFmt = 'func <arrow>'
      RefToCondEnd = True
      HighlightPos = cpAny
      CancelNextRules = True
      CollapseFmt = 'func <arrow>'
      NoEndRule = True
      TreeItemImage = 5
      IgnoreAsParent = False
    end
    item
      DisplayName = 'function id=>{'
      ConditionList = <
        item
          TagList.Strings = (
            '{')
          TokenTypes = 256
        end
        item
          TagList.Strings = (
            '=>')
          TokenTypes = 8
        end
        item
          TokenTypes = 4
        end>
      BlockEnd = '}'
      NameFmt = 'func <arrow>'
      RefToCondEnd = True
      HighlightPos = cpAny
      CancelNextRules = True
      CollapseFmt = 'func <arrow>'
      TreeItemImage = 5
      IgnoreAsParent = False
    end
    item
      DisplayName = 'function ( )=>id'
      ConditionList = <
        item
          TokenTypes = 36
        end
        item
          TagList.Strings = (
            '=>')
          TokenTypes = 8
        end
        item
          TagList.Strings = (
            ')')
          TokenTypes = 136
        end
        item
          CondType = tcSkip
          TokenTypes = 318
        end
        item
          TagList.Strings = (
            '(')
          TokenTypes = 128
        end>
      NameFmt = 'func <arrow>'
      RefToCondEnd = True
      HighlightPos = cpAny
      CancelNextRules = True
      CollapseFmt = 'func <arrow>'
      NoEndRule = True
      TreeItemImage = 5
      IgnoreAsParent = False
    end
    item
      DisplayName = 'function ( )=>{'
      ConditionList = <
        item
          TagList.Strings = (
            '{')
          TokenTypes = 256
        end
        item
          TagList.Strings = (
            '=>')
          TokenTypes = 8
        end
        item
          TagList.Strings = (
            ')')
          TokenTypes = 128
        end
        item
          CondType = tcSkip
          TokenTypes = 318
        end
        item
          TagList.Strings = (
            '(')
          TokenTypes = 128
        end>
      BlockEnd = '}'
      NameFmt = 'func <arrow>'
      RefToCondEnd = True
      HighlightPos = cpAny
      CancelNextRules = True
      CollapseFmt = 'func <arrow>'
      TreeItemImage = 5
      IgnoreAsParent = False
    end
    item
      DisplayName = 'function prefix name'
      ConditionList = <
        item
          TagList.Strings = (
            '{')
          TokenTypes = 256
        end
        item
          CondType = tcSkip
          TokenTypes = 2
        end
        item
          TagList.Strings = (
            ')')
          TokenTypes = 128
        end
        item
          CondType = tcSkip
          TokenTypes = 62
        end
        item
          TagList.Strings = (
            '(')
          TokenTypes = 128
        end
        item
          TagList.Strings = (
            'function')
          TokenTypes = 4
        end
        item
          TagList.Strings = (
            ':')
          TokenTypes = 8
        end
        item
          TokenTypes = 4
        end>
      BlockEnd = '}'
      NameFmt = 'func %s0'
      RefToCondEnd = True
      HighlightPos = cpAny
      CancelNextRules = True
      CollapseFmt = 'func %s0'
      TreeItemImage = 5
      IgnoreAsParent = False
    end
    item
      DisplayName = 'function anonym'
      ConditionList = <
        item
          TagList.Strings = (
            '{')
          TokenTypes = 256
        end
        item
          CondType = tcSkip
          TokenTypes = 2
        end
        item
          TagList.Strings = (
            ')')
          TokenTypes = 128
        end
        item
          CondType = tcSkip
          TokenTypes = 62
        end
        item
          TagList.Strings = (
            '(')
          TokenTypes = 128
        end
        item
          TagList.Strings = (
            'function')
          TokenTypes = 4
        end>
      BlockEnd = '}'
      NameFmt = 'func <anon>'
      RefToCondEnd = True
      HighlightPos = cpAny
      CancelNextRules = True
      CollapseFmt = 'func <anon>'
      TreeItemImage = 5
      IgnoreAsParent = False
    end
    item
      DisplayName = 'function'
      ConditionList = <
        item
          TagList.Strings = (
            '{')
          TokenTypes = 256
        end
        item
          CondType = tcSkip
          TokenTypes = 2
        end
        item
          TagList.Strings = (
            ')')
          TokenTypes = 128
        end
        item
          CondType = tcSkip
          TokenTypes = 62
        end
        item
          TagList.Strings = (
            '(')
          TokenTypes = 128
        end
        item
          TokenTypes = 4
        end
        item
          TagList.Strings = (
            '*')
          CondType = tcSkip
          TokenTypes = 8
        end
        item
          TagList.Strings = (
            'function')
          TokenTypes = 4
        end>
      BlockEnd = '}'
      EndOfTextClose = True
      NameFmt = 'func %s-1~s[)]'
      RefToCondEnd = True
      HighlightPos = cpBound
      CancelNextRules = True
      CollapseFmt = 'func %s-11~s[)]'
      TreeItemImage = 5
      IgnoreAsParent = False
    end
    item
      DisplayName = '{'
      StyleName = 'Current block'
      ConditionList = <
        item
          TagList.Strings = (
            '{')
          TokenTypes = 256
        end>
      BlockEnd = '}'
      DisplayInTree = False
      DynHighlight = dhBound
      HighlightPos = cpRange
      DrawStaple = True
      CollapseFmt = '{ ... }'
      IgnoreAsParent = False
    end
    item
      DisplayName = '}'
      BlockType = btRangeEnd
      ConditionList = <
        item
          TagList.Strings = (
            '}')
          TokenTypes = 256
        end>
      HighlightPos = cpBound
      IgnoreAsParent = False
    end
    item
      DisplayName = 'class anon'
      ConditionList = <
        item
          TagList.Strings = (
            'extends')
          TokenTypes = 4
        end
        item
          TagList.Strings = (
            'class')
          TokenTypes = 4
        end>
      NameFmt = '%s0 <anon>'
      HighlightPos = cpAny
      CancelNextRules = True
      NoEndRule = True
      TreeItemImage = 0
      IgnoreAsParent = False
    end
    item
      DisplayName = 'class'
      ConditionList = <
        item
          TokenTypes = 4
        end
        item
          TagList.Strings = (
            'class')
          TokenTypes = 4
        end>
      NameFmt = '%s0 %s-1'
      HighlightPos = cpAny
      NoEndRule = True
      TreeItemImage = 0
      IgnoreAsParent = False
    end>
  CodeTemplates = <>
  SubAnalyzers = <
    item
      DisplayName = 'PHP'
      StartExpression = '<\?(php)?'
      EndExpression = '\?>'
      SyntAnalyzer = SyntAnal14
    end
    item
      DisplayName = 'JSDoc'
      StartExpression = '/\*\*[^/\*]'
      EndExpression = '\*/'
      SyntAnalyzer = SyntAnal10
    end>
  SampleText.Strings = (
    '#!/bin/bash                         '
    '//Comment'
    '/** @param {string} some[].name - Name.'
    '*/'
    'n = 12_34_5n+ 1.2+ 1.+ 1.2e+3+ 1.e-3+ '
    '  +0xFF_AAn+ 0b11_00n+ 0o77_11n'
    'AB + AB$_AB+ _AB + $$AB_AB$ + NOTconst + NOT_CONST() '
    '   '
    '<?php echo '#39'test'#39' ?>'
    'var test = NaN + Object + $ + offset;'
    'var s_regex = /^<\/?\w.*?>/gi;'
    '    s_not_regex = 1 / 2 + (0xFF+10) / 3 + false-true;'
    '    s_ticks = `some str`;'
    '    s_mulline = " \'
    '      <div class='#39'"+some+"'#39'> \'
    '      <td width='#39'200'#39'> \'
    '      "+some+'#39'"...'#39';'
    '    '
    'class MyClass {'
    '}'
    ''
    'function funcMenu() {'
    '  addMenuItem('#39'Txt'#39', '#39'Ctrl+\'#39#39');'
    '  addMenuItem('#39'Txt3'#39', '#39'Ctrl+Alt+;'#39');'
    '}'
    ''
    'anon_func1: function(inc, offset) {'
    '  return -1'
    '}'
    'anon_func2 = (v, x) => { return x };'
    '    '
    'function funcWork() {'
    '  $('#39'#name'#39').html('#39#39');'
    '  for (id in ids) {'
    '    if (ids[id].q>0) {'
    '      $.cookie('#39'some'#39', $.toJSON(someth), {path: '#39'/'#39'});'
    '    } else {'
    '      delete ids[id];'
    '    }'
    '  }'
    '}'
    ''
    'function css_in_js() {'
    '  return ('
    
      '    <JssProvider jss={jss} generateClassName={generateClassName}' +
      '>'
    '      ...'
    '    </JssProvider>'
    '  );'
    '  return <div className={this.props.classes.root} />;'
    '}')
  TokenTypeNames.Strings = (
    'Unknown'
    'Comment'
    'Id'
    'Symbol'
    'String'
    'Number'
    'PHP tag'
    'Symbol ( )'
    'Symbol { }'
    'Id after.')
  Extentions = 'js htc es6 pjs mjs'
  LexerName = 'JavaScript'
  Notes.Strings = (
    'Based on lexer from EControl'
    'Reworked by Alexey (CudaText)')
  LineComment = '//'
  Charset = DEFAULT_CHARSET
end
