object SyntAnal14: 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 doc'
      Font.Charset = DEFAULT_CHARSET
      Font.Color = 12615808
      Font.Height = -13
      Font.Name = 'Courier New'
      Font.Style = [fsItalic]
    end
    item
      DisplayName = 'Number'
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clNavy
      Font.Height = -13
      Font.Name = 'Courier New'
      Font.Style = [fsBold]
    end
    item
      DisplayName = 'Symbol operator'
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clRed
      Font.Height = -13
      Font.Name = 'Courier New'
      Font.Style = []
    end
    item
      DisplayName = 'Symbol single'
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clMaroon
      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 exec'
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clFuchsia
      Font.Height = -13
      Font.Name = 'Courier New'
      Font.Style = []
    end
    item
      DisplayName = 'Var'
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clGreen
      Font.Height = -13
      Font.Name = 'Courier New'
      Font.Style = []
    end
    item
      DisplayName = 'Id'
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clBlack
      Font.Height = -13
      Font.Name = 'Courier New'
      Font.Style = []
    end
    item
      DisplayName = 'Id keyword'
      Font.Charset = ANSI_CHARSET
      Font.Color = 12615680
      Font.Height = -13
      Font.Name = 'Arial Rounded MT Bold'
      Font.Style = [fsBold]
    end
    item
      DisplayName = 'Id standard types'
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clPurple
      Font.Height = -13
      Font.Name = 'Courier New'
      Font.Style = []
    end
    item
      DisplayName = 'Id standard const'
      Font.Charset = ANSI_CHARSET
      Font.Color = clNavy
      Font.Height = -13
      Font.Name = 'Arial'
      Font.Style = []
    end
    item
      DisplayName = 'Id standard class'
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clBlue
      Font.Height = -13
      Font.Name = 'Courier New'
      Font.Style = []
    end
    item
      DisplayName = 'Id modifier'
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clOlive
      Font.Height = -13
      Font.Name = 'Courier New'
      Font.Style = []
    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 = 'Heredoc BG'
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clWindowText
      Font.Height = -13
      Font.Name = 'Courier New'
      Font.Style = []
      BgColor = 12648447
      FormatType = ftBackGround
    end>
  TokenRules = <
    item
      DisplayName = 'Comment block empty'
      StyleName = 'Comment'
      Expression = '/\*\*/'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'Comment doc'
      StyleName = 'Comment doc'
      Expression = '(?s)/\*\* .+? (\*/|\Z)'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'Comment block'
      StyleName = 'Comment'
      Expression = '(?s)/\*.*?(\*/|\Z)'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'Attrib begin'
      StyleName = 'Symbol single'
      TokenType = 5
      Expression = '\#\['
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'Comment line 2'
      StyleName = 'Comment'
      Expression = '\#.*'#13#10
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'Comment line'
      StyleName = 'Comment'
      Expression = '// .* (?=\?>) | //.*$'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'Float'
      StyleName = 'Number'
      TokenType = 2
      Expression = 
        '\d[\d_]* \.? (\d[\d_]*)? e[\+\-]? \d[\d_]* \b |'#13#10'(\d[\d_]*)? \. ' +
        '\d[\d_]* e[\+\-]? \d[\d_]* \b |'#13#10'(\d[\d_]*)? \. \d[\d_]*\b'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'Integer'
      StyleName = 'Number'
      TokenType = 2
      Expression = '0x\h[\h_]*\b |'#13#10'0b[01][01_]*\b |'#13#10'0o[0-7][0-7_]*\b |'#13#10'\d+\b'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'Symbol ,'
      StyleName = 'Symbol single'
      TokenType = 9
      Expression = ','
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'Symbol ;'
      StyleName = 'Symbol single'
      TokenType = 8
      Expression = ';'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'Symbol {}'
      StyleName = 'Symbol single'
      TokenType = 7
      Expression = '[\{\}]'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'Symbol ()'
      StyleName = 'Symbol single'
      TokenType = 10
      Expression = '[\(\)]'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'Symbol op'
      StyleName = 'Symbol operator'
      TokenType = 4
      Expression = '[!/\+\-\*:=<>&/\|\^~\@\%\?]+'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'Symbol single'
      StyleName = 'Symbol single'
      TokenType = 5
      Expression = '[\(\)\[\]\.,\\]'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'Heredoc begin'
      StyleName = 'Heredoc begin'
      TokenType = 13
      Expression = '(?<=<<<\x20*) ([a-z_]\w*|'#39'[a-z_]\w*'#39'|"[a-z_]\w*")'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'Heredoc end'
      StyleName = 'Id'
      TokenType = 12
      Expression = '(?<=^[\x20\x09]*)[a-z_]\w*(?=[;,\)\n])'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'String'
      StyleName = 'String'
      TokenType = 3
      Expression = '(?s)(["'#39'])(\\\1|\\\\|.)*?\1'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'Var'
      StyleName = 'Var'
      TokenType = 6
      Expression = '\$\w*'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'Id after ::'
      StyleName = 'Id'
      TokenType = 11
      Expression = '(?<=::)[a-z_]\w*'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'Id'
      StyleName = 'Id'
      TokenType = 1
      Expression = '[a-z_\x7f-\x{ffff}][a-z_0-9\x7f-\x{ffff}]*'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'String exec'
      StyleName = 'String exec'
      TokenType = 3
      Expression = '`.+?`'
      ColumnFrom = 0
      ColumnTo = 0
    end>
  BlockRules = <
    item
      DisplayName = 'keywords'
      StyleName = 'Id keyword'
      BlockType = btTagDetect
      ConditionList = <
        item
          TagList.Strings = (
            '__halt_compiler'
            'and'
            'as'
            'break'
            'case'
            'catch'
            'class'
            'clone'
            'const'
            'continue'
            'declare'
            'default'
            'die'
            'do'
            'echo'
            'else'
            'elseif'
            'empty'
            'enddeclare'
            'endfor'
            'endforeach'
            'endif'
            'endswitch'
            'endwhile'
            'enum'
            'eval'
            'exit'
            'extends'
            'finally'
            'for'
            'foreach'
            'from'
            'function'
            'global'
            'goto'
            'if'
            'implements'
            'include'
            'include_once'
            'instanceof'
            'insteadof'
            'interface'
            'isset'
            'list'
            'match'
            'namespace'
            'new'
            'or'
            'parent'
            'print'
            'require'
            'require_once'
            'return'
            'self'
            'switch'
            'throw'
            'trait'
            'try'
            'use'
            'var'
            'while'
            'xor'
            'yield')
          TokenTypes = 2
        end>
      HighlightPos = cpAny
      IgnoreAsParent = False
    end
    item
      DisplayName = 'std types'
      StyleName = 'Id standard types'
      BlockType = btTagDetect
      ConditionList = <
        item
          TagList.Strings = (
            'array'
            'binary'
            'bool'
            'boolean'
            'callable'
            'double'
            'false'
            'float'
            'int'
            'integer'
            'iterable'
            'mixed'
            'noreturn'
            'null'
            'numeric'
            'object'
            'real'
            'resource'
            'string'
            'true'
            'unset'
            'void')
          TokenTypes = 2
        end>
      HighlightPos = cpAny
      IgnoreAsParent = False
    end
    item
      DisplayName = 'std const'
      StyleName = 'Id standard const'
      BlockType = btTagDetect
      ConditionList = <
        item
          TagList.Strings = (
            '__CLASS__'
            '__COMPILER_HALT_OFFSET__'
            '__DIR__'
            '__FILE__'
            '__FUNCTION__'
            '__LINE__'
            '__METHOD__'
            '__NAMESPACE__'
            '__TRAIT__'
            'DEFAULT_INCLUDE_PATH'
            'E_ALL'
            'E_COMPILE_ERROR'
            'E_COMPILE_WARNING'
            'E_CORE_ERROR'
            'E_CORE_WARNING'
            'E_DEPRECATED'
            'E_ERROR'
            'E_NOTICE'
            'E_PARSE'
            'E_RECOVERABLE_ERROR'
            'E_STRICT'
            'E_USER_DEPRECATED'
            'E_USER_ERROR'
            'E_USER_NOTICE'
            'E_USER_WARNING'
            'E_WARNING'
            'FALSE'
            'NULL'
            'PEAR_EXTENSION_DIR'
            'PEAR_INSTALL_DIR'
            'PHP_BINARY'
            'PHP_BINDIR'
            'PHP_CONFIG_FILE_PATH'
            'PHP_CONFIG_FILE_SCAN_DIR'
            'PHP_DATADIR'
            'PHP_DEBUG'
            'PHP_EOL'
            'PHP_EXTENSION_DIR'
            'PHP_EXTRA_VERSION'
            'PHP_FD_SETSIZE'
            'PHP_FLOAT_DIG'
            'PHP_FLOAT_EPSILON'
            'PHP_FLOAT_MAX'
            'PHP_FLOAT_MIN'
            'PHP_INT_MAX'
            'PHP_INT_MIN'
            'PHP_INT_SIZE'
            'PHP_LIBDIR'
            'PHP_LOCALSTATEDIR'
            'PHP_MAJOR_VERSION'
            'PHP_MANDIR'
            'PHP_MAXPATHLEN'
            'PHP_MINOR_VERSION'
            'PHP_OS'
            'PHP_OS_FAMILY'
            'PHP_PREFIX'
            'PHP_RELEASE_VERSION'
            'PHP_SAPI'
            'PHP_SHLIB_SUFFIX'
            'PHP_SYSCONFDIR'
            'PHP_VERSION'
            'PHP_VERSION_ID'
            'PHP_WINDOWS_EVENT_CTRL_BREAK'
            'PHP_WINDOWS_EVENT_CTRL_C'
            'PHP_ZTS'
            'TRUE')
          TokenTypes = 2
        end>
      NotCollapsed = True
      DisplayInTree = False
      DynHighlight = dhBound
      HighlightPos = cpAny
      TreeItemStyle = 'Id standard const'
      IgnoreAsParent = False
    end
    item
      DisplayName = 'std classes'
      StyleName = 'Id standard class'
      BlockType = btTagDetect
      ConditionList = <
        item
          TagList.Strings = (
            '__PHP_Incomplete_Class'
            'ArrayIterator'
            'ArrayObject'
            'CachingIterator'
            'CachingRecursiveIterator'
            'Directory'
            'DirectoryIterator'
            'DOMAttr'
            'DOMCdataSection'
            'DOMCharacterData'
            'DOMComment'
            'DOMConfiguration'
            'DOMDocument'
            'DOMDocumentFragment'
            'DOMDocumentType'
            'DOMDomError'
            'DOMElement'
            'DOMEntity'
            'DOMEntityReference'
            'DOMErrorHandler'
            'DOMException'
            'DOMImplementation'
            'DOMImplementationList'
            'DOMImplementationSource'
            'DOMLocator'
            'DOMNamedNodeMap'
            'DOMNameList'
            'DOMNameSpaceNode'
            'DOMNode'
            'DOMNodeList'
            'DOMNotation'
            'DOMProcessingInstruction'
            'DOMStringExtend'
            'DOMStringList'
            'DOMText'
            'DOMTypeinfo'
            'DOMUserDataHandler'
            'DOMXPath'
            'Exception'
            'FilterIterator'
            'LimitIterator'
            'ParentIterator'
            'php_user_filter'
            'RecursiveDirectoryIterator'
            'RecursiveIteratorIterator'
            'Reflection'
            'ReflectionClass'
            'ReflectionException'
            'ReflectionExtension'
            'ReflectionFunction'
            'ReflectionMethod'
            'ReflectionObject'
            'ReflectionParameter'
            'ReflectionProperty'
            'SimpleXMLElement'
            'SimpleXMLIterator'
            'SQLiteDatabase'
            'SQLiteException'
            'SQLiteResult'
            'SQLiteUnbuffered'
            'stdClass'
            'XSLTProcessor')
          TokenTypes = 2
        end>
      HighlightPos = cpAny
      IgnoreAsParent = False
    end
    item
      DisplayName = 'std vars'
      StyleName = 'Id standard const'
      BlockType = btTagDetect
      ConditionList = <
        item
          TagList.Strings = (
            '$_COOKIE'
            '$_ENV'
            '$_FILES'
            '$_GET'
            '$_POST'
            '$_REQUEST'
            '$_SERVER'
            '$_SESSION'
            '$argc'
            '$argv'
            '$GLOBALS'
            '$HTTP_RAW_POST_DATA'
            '$http_response_header'
            '$php_errormsg'
            '$this')
          TokenTypes = 64
        end>
      HighlightPos = cpAny
      IgnoreAsParent = False
    end
    item
      DisplayName = 'modifiers'
      StyleName = 'Id modifier'
      BlockType = btTagDetect
      ConditionList = <
        item
          TagList.Strings = (
            'abstract'
            'final'
            'private'
            'protected'
            'public'
            'static')
          TokenTypes = 2
        end>
      HighlightPos = cpAny
      IgnoreAsParent = False
    end
    item
      DisplayName = 'class'
      ConditionList = <
        item
          TagList.Strings = (
            '{')
          TokenTypes = 128
        end
        item
          CondType = tcSkip
          TokenTypes = 63
        end
        item
          TagList.Strings = (
            'class'
            'enum'
            'interface'
            'trait')
          TokenTypes = 2
        end
        item
          TagList.Strings = (
            'new')
          CondType = tcNotEqual
          TokenTypes = 2
        end>
      BlockOffset = -1
      BlockEnd = '}'
      EndOfTextClose = True
      NameFmt = '%s-1 %s-2'
      RefToCondEnd = True
      HighlightPos = cpAny
      CancelNextRules = True
      CollapseFmt = '%sz-1'
      TreeItemImage = 0
      IgnoreAsParent = False
    end
    item
      DisplayName = 'func'
      ConditionList = <
        item
          TagList.Strings = (
            '{')
          TokenTypes = 128
        end
        item
          CondType = tcSkip
          TokenTypes = 1663
        end
        item
          TagList.Strings = (
            'function')
          TokenTypes = 2
        end>
      BlockEnd = '}'
      EndOfTextClose = True
      NameFmt = '%s0~[(]1'
      RefToCondEnd = True
      HighlightPos = cpAny
      CancelNextRules = True
      CollapseFmt = '%sz0'
      TreeItemImage = 5
      IgnoreAsParent = False
    end
    item
      DisplayName = '{'
      ConditionList = <
        item
          TagList.Strings = (
            '{')
          TokenTypes = 128
        end>
      BlockEnd = '}'
      DisplayInTree = False
      RefToCondEnd = True
      HighlightPos = cpAny
      CancelNextRules = True
      DrawStaple = True
      CollapseFmt = '{ ... }'
      Pen.Color = clRed
      Pen.Style = psDot
      IgnoreAsParent = False
      AutoCloseMode = acmCloseNearest
      AutoCloseText = '}'#13#10
    end
    item
      DisplayName = '}'
      BlockType = btRangeEnd
      ConditionList = <
        item
          TagList.Strings = (
            '}')
          TokenTypes = 128
        end>
      HighlightPos = cpAny
      GroupIndex = 1
      IgnoreAsParent = False
    end
    item
      DisplayName = 'include'
      ConditionList = <
        item
          TagList.Strings = (
            'include'
            'include_once'
            'require'
            'require_once')
          TokenTypes = 2
        end>
      NameFmt = '%sz0'
      GroupFmt = '\Includes'
      RefToCondEnd = True
      HighlightPos = cpAny
      NoEndRule = True
      TreeItemImage = 4
      IgnoreAsParent = False
    end
    item
      DisplayName = 'heredoc begin'
      StyleName = 'Heredoc BG'
      ConditionList = <
        item
          TokenTypes = 8192
        end>
      BlockEnd = 'heredoc end'
      NotCollapsed = True
      DisplayInTree = False
      DynHighlight = dhRange
      HighlightPos = cpAny
      CollapseFmt = '%sz0 ...'
      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 = (
    '//Example'
    '/** Doc comment */,  /* Comment */'
    '__CLASS__, __LINE__, ArrayObject, Directory,'
    '`string`, '
    '<<<ID'
    'heredoc'
    'ID;'
    ''
    'include "os.php";'
    'include_once $path."/os2.php";'
    'include("math.php");'
    'include_once("math2.php");'
    ''
    'function outer1(int $a){'
    '  $a = 10 + 10.10 + 0xAF + 0b1100;'
    '  $this?->var = 100;'
    '  echo [ $a, $b, $aa ]'
    '  echo '#39'test'#39'."\\";'
    '  if (a){'
    '  }'
    '  else {'
    '  };'
    '}'
    ''
    'class c1 {'
    '  function a(){'
    '    $n = 10;'
    '    if (a) { a++; }'
    '    i++;'
    '  }'
    '  function b(){'
    '  }'
    '}'
    ''
    'class c2 extends f {'
    '  function a(){'
    '    i++;'
    '  }'
    ''
    '  function b(){'
    '    if (a>b) {'
    '      a++;'
    '    }'
    '  }'
    '}'
    ''
    'function outer2($a, $b){'
    '  $i++;'
    '  if ($a){'
    '  }'
    '}'
    ''
    '?>')
  TokenTypeNames.Strings = (
    'Comment'
    'Id'
    'Number'
    'String'
    'Symbol op '
    'Symbol single'
    'Var'
    'Symbol {}'
    'Symbol ;'
    'Symbol ,'
    'Symbol ()'
    'Id after ::'
    'Heredoc end'
    'Heredoc begin')
  LexerName = 'PHP_'
  Notes.Strings = (
    'Created by 480499497 from forum.wincmd.ru (named PHP_dev)'
    'Big rework by Alexey (CudaText)'
    
      'Removed link to HTML, now it'#39's pure PHP lexer, HTML/CSS/JS will ' +
      'link to it')
  Internal = True
  RestartFromLineStart = True
  LineComment = '//'
  Charset = DEFAULT_CHARSET
end
