object SyntAnal7: TLibSyntAnalyzer
  Formats = <
    item
      DisplayName = 'Default'
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clBlack
      Font.Height = -13
      Font.Name = 'Courier New'
      Font.Style = []
      VertAlignment = vaTop
      FormatType = ftCustomFont
    end
    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 = 'Identifier'
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clBlack
      Font.Height = -13
      Font.Name = 'Courier New'
      Font.Style = []
    end
    item
      DisplayName = 'Reserved word'
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clBlack
      Font.Height = -13
      Font.Name = 'Courier New'
      Font.Style = [fsBold]
    end
    item
      DisplayName = 'Comment'
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clGray
      Font.Height = -13
      Font.Name = 'Courier New'
      Font.Style = [fsItalic]
    end
    item
      DisplayName = 'Preprocessor'
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clGreen
      Font.Height = -13
      Font.Name = 'Courier New'
      Font.Style = []
    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 = ftColor
      BorderTypeLeft = blSolid
      BorderColorLeft = clGray
      BorderTypeTop = blSolid
      BorderColorTop = clGray
      BorderTypeRight = blSolid
      BorderColorRight = clGray
      BorderTypeBottom = blSolid
      BorderColorBottom = clGray
    end
    item
      DisplayName = 'Asm BG'
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clBlack
      Font.Height = -13
      Font.Name = 'Courier New'
      Font.Style = []
      BgColor = clMoneyGreen
      FormatType = ftBackGround
    end>
  TokenRules = <
    item
      DisplayName = 'String'
      StyleName = 'String'
      TokenType = 4
      Expression = '"(\\"|\\\\|.)*?("|$)'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'Id keyword'
      StyleName = 'Reserved word'
      TokenType = 7
      Expression = '\b(catch|else|for|if|switch|while)\b'
      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 = 
        '#with exp. dot is optional '#13#10'(\d+ \.)? \d+ e [\+\-]? \d+ |'#13#10'#wit' +
        'hout exp. dot is required'#13#10'\d+ \. \d+'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'Integer'
      StyleName = 'Number'
      TokenType = 5
      Expression = '\d+L?'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'Preprocessor'
      StyleName = 'Preprocessor'
      TokenType = 6
      Expression = '\#\s*\w+'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'Comment 1'
      StyleName = 'Comment'
      TokenType = 1
      Expression = '(?s)/\*.*?(\*/|\Z)'
      ColumnFrom = 0
      ColumnTo = 0
    end
    item
      DisplayName = 'Comment 2'
      StyleName = 'Comment'
      TokenType = 1
      Expression = '//.*'
      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
    item
      DisplayName = 'Char'
      StyleName = 'String'
      TokenType = 4
      Expression = #39'.*?('#39'|$)'
      ColumnFrom = 0
      ColumnTo = 0
    end>
  BlockRules = <
    item
      DisplayName = 'keywords'
      StyleName = 'Reserved word'
      BlockType = btTagDetect
      ConditionList = <
        item
          TagList.Strings = (
            '__asm'
            '__automated'
            '__cdecl'
            '__classid'
            '__closure'
            '__declspec'
            '__dispid'
            '__except'
            '__export'
            '__fastcall'
            '__finally'
            '__import'
            '__inline'
            '__int64'
            '__msfastcall'
            '__msreturn'
            '__pascal'
            '__property'
            '__published'
            '__stdcall'
            '__try'
            '__uuidof'
            '_asm'
            '_cdecl'
            '_export'
            '_fastcall'
            '_import'
            '_pascal'
            '_stdcall'
            'asm'
            'auto'
            'bool'
            'break'
            'case'
            'catch'
            'cdecl'
            'char'
            'class'
            'const'
            'continue'
            'default'
            'delete'
            'do'
            'double'
            'else'
            'enum'
            'explicit'
            'export'
            'extern'
            'false'
            'float'
            'for'
            'friend'
            'goto'
            'if'
            'inline'
            'int'
            'long'
            'mutable'
            'new'
            'operator'
            'pascal'
            'private'
            'protected'
            'public'
            'register'
            'return'
            'short'
            'signed'
            'sizeof'
            'static'
            'struct'
            'switch'
            'this'
            'throw'
            'true'
            'try'
            'typedef'
            'typeid'
            'typename'
            'union'
            'unsigned'
            'uuid'
            'virtual'
            'void'
            'volatile'
            'wchar_t'
            'while')
          TokenTypes = 4
        end>
      HighlightPos = cpBound
      IgnoreAsParent = False
    end
    item
      DisplayName = 'func'
      ConditionList = <
        item
          TagList.Strings = (
            '{')
          TokenTypes = 8
        end
        item
          CondType = tcSkip
          TokenTypes = 2
        end
        item
          TagList.Strings = (
            ')')
          TokenTypes = 8
        end
        item
          CondType = tcSkip
        end
        item
          TagList.Strings = (
            '(')
          TokenTypes = 8
        end
        item
          CondType = tcSkip
          TokenTypes = 2
        end
        item
          TokenTypes = 4
        end
        item
          CondType = tcSkip
          TokenTypes = 2
        end
        item
          TokenTypes = 4
        end>
      BlockEnd = '}'
      NotCollapsed = True
      NameFmt = '%sz-1'
      RefToCondEnd = True
      HighlightPos = cpBound
      NoEndRule = True
      TreeItemImage = 5
      IgnoreAsParent = False
      AutoCloseText = '}'#13#10
    end
    item
      DisplayName = 'func *'
      ConditionList = <
        item
          TagList.Strings = (
            '{')
          TokenTypes = 8
        end
        item
          CondType = tcSkip
          TokenTypes = 2
        end
        item
          TagList.Strings = (
            ')')
          TokenTypes = 8
        end
        item
          CondType = tcSkip
        end
        item
          TagList.Strings = (
            '(')
          TokenTypes = 8
        end
        item
          TokenTypes = 4
        end
        item
          TagList.Strings = (
            '*')
          TokenTypes = 8
        end
        item
          TokenTypes = 4
        end>
      NotCollapsed = True
      NameFmt = '%s-2'
      RefToCondEnd = True
      HighlightPos = cpAny
      NoEndRule = True
      TreeItemImage = 5
      IgnoreAsParent = False
    end
    item
      DisplayName = '{'
      StyleName = 'Current block'
      ConditionList = <
        item
          TagList.Strings = (
            '{')
          TokenTypes = 8
        end>
      BlockEnd = '}'
      DisplayInTree = False
      DynHighlight = dhBound
      HighlightPos = cpRange
      DynSelectMin = True
      DrawStaple = True
      CollapseFmt = '{ ... }'
      IgnoreAsParent = False
      AutoCloseMode = acmCloseNearest
      AutoCloseText = '}'
    end
    item
      DisplayName = '}'
      BlockType = btRangeEnd
      ConditionList = <
        item
          TagList.Strings = (
            '}')
          TokenTypes = 8
        end>
      HighlightPos = cpBound
      IgnoreAsParent = False
    end
    item
      DisplayName = 'Block comment'
      BlockName = 'Block comment'
      NotParent = True
      AlwaysEnabled = True
      ConditionList = <
        item
          TokenTypes = 2
        end>
      BlockEnd = 'Block comment end'
      DisplayInTree = False
      HighlightPos = cpBound
      CollapseFmt = '{ ... }'
      GrammaRuleName = 'comments'
      IgnoreAsParent = False
    end
    item
      DisplayName = 'Block comment end'
      BlockName = 'Block comment'
      BlockType = btRangeEnd
      ConditionList = <
        item
          CondType = tcNotEqual
          TokenTypes = 2
          IgnoreCase = True
        end>
      BlockOffset = 1
      HighlightPos = cpBound
      IgnoreAsParent = False
    end
    item
      DisplayName = 'define'
      ConditionList = <
        item
          TagList.Strings = (
            '\#\s*define')
          CondType = tcMask
          TokenTypes = 576
        end>
      NameFmt = '%s0 %s-1'
      HighlightPos = cpAny
      NoEndRule = True
      TreeItemImage = 7
      IgnoreAsParent = False
    end
    item
      DisplayName = 'struct'
      ConditionList = <
        item
          TagList.Strings = (
            '{')
          TokenTypes = 8
        end
        item
          CondType = tcSkip
          TokenTypes = 2
        end
        item
          TokenTypes = 4
        end
        item
          TagList.Strings = (
            'struct')
          TokenTypes = 4
        end>
      NameFmt = '%s0 %s-1'
      HighlightPos = cpAny
      NoEndRule = True
      TreeItemImage = 4
      IgnoreAsParent = False
    end>
  CodeTemplates = <>
  SubAnalyzers = <
    item
      DisplayName = 'asm-string'
      StyleName = 'Asm BG'
      StartExpression = '\#asm\s*\(\s*"'
      EndExpression = '"\)'
      SyntAnalyzer = SyntAnal2
    end
    item
      DisplayName = 'asm-endasm'
      Enabled = False
      StyleName = 'Preprocessor'
      StartExpression = '\#asm'
      EndExpression = '\#endasm'
      SyntAnalyzer = SyntAnal2
    end>
  SampleText.Strings = (
    '/* Test */'
    '#define sum(a, b) a+b '
    '#asm (" mov ax, F0h ")'
    ''
    'void stdcall Init(void) {'
    '  TestModDeinit(B64UTIL);'
    '}'
    ''
    '    char* Small(int a) {'
    '    }'
    '     '
    'void Test(char *Sender)'
    '{'
    '  int Number = 10;  // View integer number style'
    '  double F = 1e2 + 0.123e+2;  // View float number style'
    
      '  Caption = "Number is " + IntToStr(Number); // View string styl' +
      'e'
    '  Number += 0x1FA7; // View HEX style'
    '  char c = '#39'D'#39';'
    '  for (i=0; i<5; i++) {'
    '  } '
    '  if (c=='#39'A'#39') {'
    '    return;'
    '  }'
    '}'
    ''
    'typedef struct HashTab {'
    '   int Name;'
    '}')
  TokenTypeNames.Strings = (
    'Unknown'
    'Comment'
    'Id'
    'Symbol'
    'String'
    'Number'
    'Preprocessor'
    'Id keyword')
  Extentions = 'c h ch'
  LexerName = 'C'
  Notes.Strings = (
    'Heavily redone by Alexey (SynWrite)')
  LineComment = '//'
  Charset = DEFAULT_CHARSET
end
