object SyntAnal18: 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 = clNavy
      Font.Height = -13
      Font.Name = 'Courier New'
      Font.Style = []
    end
    item
      DisplayName = 'Id standard'
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clPurple
      Font.Height = -13
      Font.Name = 'Courier New'
      Font.Style = []
    end
    item
      DisplayName = 'Id jquery'
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clBlue
      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 = RUSSIAN_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>
  TokenRules = <
    item
      DisplayName = 'Comment doc'
      StyleName = 'Comment doc'
      TokenType = 1
      Expression = '(?s)/\*\* .*?(\*/|\Z)'
      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 = '(?s)("|'#39') (\\\\|\\\1|.)*? (\1|\Z)'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'String ticks'
      StyleName = 'String regex'
      TokenType = 4
      Expression = '` .*? (`|$)'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'String Regex'
      StyleName = 'String regex'
      TokenType = 4
      Expression = '(?<=[=\(&!]\s*) / (\\/|\\\\|\[.+?\]|.)*? /[gimy]*'
      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'
      StyleName = 'Identifier'
      TokenType = 2
      Expression = '[a-z_\$]\w*'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'Hex'
      StyleName = 'Number'
      TokenType = 5
      Expression = '0x[\da-f]*'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'Float'
      StyleName = 'Number'
      TokenType = 5
      Expression = '\d+ (\.\d+)? e [\+\-]? \d+ |'#13#10'\d+ \. \d+'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'Integer'
      StyleName = 'Number'
      TokenType = 5
      Expression = '\d+'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'PHP tag'
      StyleName = 'PHP tag'
      TokenType = 6
      Expression = '<\?php | <\? | \?>'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'Single symbol'
      StyleName = 'Symbol'
      TokenType = 3
      Expression = '[\{\}\(\)\[\],;\.\?]'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'Symbol'
      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'
            'arguments'
            'as'
            'async'
            'await'
            'boolean'
            'break'
            'byte'
            'case'
            'catch'
            'char'
            'class'
            'const'
            'continue'
            'debugger'
            'default'
            'delete'
            'do'
            'double'
            'else'
            'enum'
            'eval'
            'export'
            'extends'
            'false'
            'final'
            'finally'
            'float'
            'for'
            'from'
            'function'
            'goto'
            'if'
            'implements'
            'import'
            'in'
            'instanceof'
            'int'
            'interface'
            'let'
            'long'
            'native'
            'new'
            'null'
            'package'
            'private'
            'protected'
            'public'
            'return'
            'short'
            'static'
            'super'
            'switch'
            'synchronized'
            'this'
            'throw'
            'throws'
            'transient'
            'true'
            '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 = (
            'Array'
            'Date'
            'hasOwnProperty'
            'Infinity'
            'isFinite'
            'isNaN'
            'isPrototypeOf'
            'length'
            'Math'
            'name'
            'NaN'
            'Number'
            'Object'
            'prototype'
            'String'
            'toString'
            'undefined'
            'valueOf')
          TokenTypes = 4
        end>
      HighlightPos = cpAny
      IgnoreAsParent = False
    end
    item
      DisplayName = 'id jquery'
      StyleName = 'Id jquery'
      BlockType = btTagDetect
      ConditionList = <
        item
          TagList.Strings = (
            '$'
            'add'
            'addBack'
            'addClass'
            'after'
            'ajax'
            'ajaxComplete'
            'ajaxError'
            'ajaxPrefilter'
            'ajaxSend'
            'ajaxSetup'
            'ajaxStart'
            'ajaxStop'
            'ajaxSuccess'
            'ajaxTransport'
            'altKey'
            'always'
            'andSelf'
            'animate'
            'animated'
            'append'
            'appendTo'
            'attr'
            'before'
            'bind'
            'blur'
            'bottom'
            'boxModel'
            'browser'
            'button'
            'callbacks'
            'cancelBubble'
            'change'
            'checkbox'
            'checked'
            'children'
            'clearQueue'
            'click'
            'clone'
            'closest'
            'contains'
            'contents'
            'context'
            'core'
            'css'
            'cssHooks'
            'cssNumber'
            'ctrlKey'
            'currentTarget'
            'data'
            'dblclick'
            'deferred'
            'delay'
            'delegate'
            'delegateTarget'
            'dequeue'
            'detach'
            'die'
            'disable'
            'disabled'
            'done'
            'each'
            'empty'
            'enabled'
            'end'
            'eq'
            'error'
            'even'
            'event'
            'extend'
            'fadeIn'
            'fadeOut'
            'fadeTo'
            'fadeToggle'
            'fail'
            'file'
            'filter'
            'find'
            'finish'
            'fire'
            'fired'
            'fireWith'
            'first'
            'first-child'
            'first-of-type'
            'fn'
            'focus'
            'focusin'
            'focusout'
            'fx'
            'get'
            'getJSON'
            'getScript'
            'globalEval'
            'grep'
            'gt'
            'has'
            'hasClass'
            'hasData'
            'header'
            'height'
            'hidden'
            'hide'
            'holdReady'
            'hover'
            'html'
            'image'
            'inArray'
            'index'
            'init'
            'innerHeight'
            'innerWidth'
            'input'
            'insertAfter'
            'insertBefore'
            'interval'
            'is'
            'isArray'
            'isDefaultPrevented'
            'isEmptyObject'
            'isFunction'
            'isImmediatePropagationStopped'
            'isNumeric'
            'isPlainObject'
            'isPropagationStopped'
            'isRejected'
            'isResolved'
            'isWindow'
            'isXMLDoc'
            'jquery'
            'keyCode'
            'keydown'
            'keypress'
            'keyup'
            'lang'
            'last'
            'last-child'
            'last-of-type'
            'length'
            'live'
            'load'
            'lock'
            'locked'
            'lt'
            'makeArray'
            'map'
            'merge'
            'metaKey'
            'mousedown'
            'mouseenter'
            'mouseleave'
            'mousemove'
            'mouseout'
            'mouseover'
            'mouseup'
            'namespace'
            'next'
            'nextAll'
            'nextUntil'
            'noConflict'
            'noop'
            'not'
            'notify'
            'notifyWith'
            'now'
            'nth-child'
            'nth-child-last'
            'nth-first-of-type'
            'nth-last-child'
            'nth-last-of-type'
            'nth-of-type'
            'obj'
            'odd'
            'off'
            'offset'
            'offsetParent'
            'on'
            'one'
            'only-child'
            'only-of-type'
            'outerHeight'
            'outerWidth'
            'pageX'
            'pageY'
            'param'
            'parent'
            'parents'
            'parentsUntil'
            'parseHTML'
            'parseInt'
            'parseJSON'
            'parseXML'
            'password'
            'pipe'
            'position'
            'post'
            'prepend'
            'prependTo'
            'prev'
            'prevAll'
            'preventDefault'
            'prevUntil'
            'progress'
            'promise'
            'prop'
            'proxy'
            'pushStack'
            'queue'
            'radio'
            'ready'
            'reject'
            'rejectWith'
            'relatedTarget'
            'remove'
            'removeAttr'
            'removeClass'
            'removeData'
            'removeProp'
            'replaceAll'
            'replaceWith'
            'reset'
            'resize'
            'resolve'
            'resolved'
            'resolveWith'
            'result'
            'root'
            'scroll'
            'scrollLeft'
            'scrollTop'
            'select'
            'selected'
            'selector'
            'self'
            'serialize'
            'serializeArray'
            'set'
            'setTimeout'
            'shiftKey'
            'show'
            'siblings'
            'size'
            'slice'
            'slideDown'
            'slideToggle'
            'slideUp'
            'state'
            'stop'
            'stopImmediatePropagation'
            'stopPropagation'
            'sub'
            'submit'
            'support'
            'target'
            'text'
            'then'
            'timeStamp'
            'toArray'
            'toggle'
            'toggleClass'
            'top'
            'trigger'
            'triggerHandler'
            'trim'
            'type'
            'unbind'
            'undelegate'
            'unique'
            'unload'
            'unwrap'
            'val'
            'visible'
            'when'
            'which'
            'width'
            'window'
            'wrap'
            'wrapAll'
            'wrapInner')
          TokenTypes = 4
        end>
      HighlightPos = cpAny
      IgnoreAsParent = False
    end
    item
      DisplayName = 'for/if'
      ConditionList = <
        item
          TagList.Strings = (
            ')')
          TokenTypes = 8
        end
        item
          CondType = tcSkip
        end
        item
          TagList.Strings = (
            '(')
          TokenTypes = 8
        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 = '{'
      StyleName = 'Current block'
      ConditionList = <
        item
          TagList.Strings = (
            '{')
          TokenTypes = 8
        end>
      BlockEnd = '}'
      DisplayInTree = False
      DynHighlight = dhBound
      HighlightPos = cpRange
      DrawStaple = True
      CollapseFmt = '{ ... }'
      IgnoreAsParent = False
    end
    item
      DisplayName = '}'
      BlockType = btRangeEnd
      ConditionList = <
        item
          TagList.Strings = (
            '}')
          TokenTypes = 8
        end>
      HighlightPos = cpBound
      IgnoreAsParent = False
    end
    item
      DisplayName = 'name: function'
      ConditionList = <
        item
          TagList.Strings = (
            'function')
          TokenTypes = 4
        end
        item
          TagList.Strings = (
            ':')
          TokenTypes = 8
        end
        item
          TokenTypes = 4
        end>
      NameFmt = 'function %s0'
      RefToCondEnd = True
      HighlightPos = cpAny
      CancelNextRules = True
      CollapseFmt = 'function %s0'
      IgnoreAsParent = False
    end
    item
      DisplayName = 'function'
      ConditionList = <
        item
          TagList.Strings = (
            'function')
          TokenTypes = 4
        end>
      BlockEnd = 'function end'
      EndOfTextClose = True
      NameFmt = '%s0~s[)]'
      RefToCondEnd = True
      HighlightPos = cpBound
      CollapseFmt = '%s0~s[)]'
      IgnoreAsParent = False
    end
    item
      DisplayName = 'function end'
      BlockName = 'function'
      StrictParent = True
      BlockType = btRangeEnd
      ConditionList = <
        item
          TagList.Strings = (
            '}')
          TokenTypes = 8
        end>
      HighlightPos = cpBound
      IgnoreAsParent = False
    end
    item
      DisplayName = '('
      StyleName = 'Current block'
      ConditionList = <
        item
          TagList.Strings = (
            '(')
          TokenTypes = 8
        end>
      BlockEnd = ')'
      NotCollapsed = True
      DisplayInTree = False
      DynHighlight = dhBound
      HighlightPos = cpBoundTagBegin
      DynSelectMin = True
      IgnoreAsParent = False
    end
    item
      DisplayName = ')'
      BlockType = btRangeEnd
      ConditionList = <
        item
          TagList.Strings = (
            ')')
          TokenTypes = 8
        end>
      HighlightPos = cpBound
      IgnoreAsParent = False
    end
    item
      DisplayName = '['
      StyleName = 'Current block'
      ConditionList = <
        item
          TagList.Strings = (
            '[')
          TokenTypes = 8
        end>
      BlockEnd = ']'
      NotCollapsed = True
      DisplayInTree = False
      DynHighlight = dhBound
      HighlightPos = cpBoundTagBegin
      DynSelectMin = True
      IgnoreAsParent = False
    end
    item
      DisplayName = ']'
      BlockType = btRangeEnd
      ConditionList = <
        item
          TagList.Strings = (
            ']')
          TokenTypes = 8
        end>
      HighlightPos = cpBound
      IgnoreAsParent = False
    end
    item
      DisplayName = 'var'
      ConditionList = <
        item
          TokenTypes = 4
        end
        item
          TagList.Strings = (
            'var')
          TokenTypes = 4
        end>
      NotCollapsed = True
      NameFmt = '%s0 %s-1'
      HighlightPos = cpAny
      NoEndRule = True
      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
      IgnoreAsParent = False
    end>
  CodeTemplates = <>
  SubAnalyzers = <
    item
      DisplayName = 'PHP'
      StartExpression = '<\?(php)?'
      EndExpression = '\?>'
      SyntAnalyzer = SyntAnal29
    end>
  SampleText.Strings = (
    '//Comment'
    '/** DocBlock '
    '*/'
    '/* Comment */'
    
      '  #! Shebang                                                    ' +
      '         '
    '<?php echo '#39'test'#39' ?>'
    'var test = NaN + Object + $ + offset;'
    'var s_regex = /^<\/?\w.*?>/gi;'
    '    s_not_regex = 1 / 2 + (0xFF+10) / 3;'
    '    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');'
    '}'
    ''
    'funcVar: function(inc, offset) {'
    '  return -1'
    '}'
    '    '
    'function funcEn(A, count)'
    '{'
    '  for(i=0; i<count; i++)'
    '    A(i).Enabled = !A(i).Enabled;'
    '}'
    ''
    '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];'
    '    }'
    '  }'
    '}')
  TokenTypeNames.Strings = (
    'Unknown'
    'Comment'
    'Id'
    'Symbol'
    'String'
    'Number'
    'PHP tag')
  Extentions = 'js'
  LexerName = 'JavaScript'
  Notes.Strings = (
    'Reworked by Alexey (Synwrite)'
    '-tree: func params shown'
    '-strings oneline '#39'...'#39
    '-strings multiline "..."'
    '-strings regex /.../gi'
    '-strings heredoc'
    '-doc comments'
    ''
    'Keywords: http://www.w3schools.com/js/js_reserved.asp')
  LineComment = '//'
  Charset = DEFAULT_CHARSET
end
