object Form2: TForm2
  Left = 38
  Top = 283
  Width = 830
  Height = 531
  Caption = 'MouseOver token highlighting'
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'MS Sans Serif'
  Font.Style = []
  KeyPreview = True
  OldCreateOrder = False
  OnCreate = FormCreate
  OnKeyDown = Form2KeyDown
  OnKeyUp = Form2KeyUp
  PixelsPerInch = 96
  TextHeight = 13
  object SyntaxMemo1: TSyntaxMemo
    Left = 0
    Top = 33
    Width = 822
    Height = 464
    Lines.Strings = (
      'unit main;'
      ''
      'interface'
      ''
      'uses'
      
        '  Windows, Messages, SysUtils, Variants, Classes, Graphics, Cont' +
        'rols, Forms,'
      '  Dialogs, ecSyntAnal, ecSyntMemo;'
      ''
      'type'
      '  TForm2 = class(TForm)'
      '    SyntaxMemo1: TSyntaxMemo;'
      '    SyntAnalyzer1: TSyntAnalyzer;'
      '    SyntStyles1: TSyntStyles;'
      
        '    procedure SyntaxMemo1MouseMove(Sender: TObject; Shift: TShif' +
        'tState; X,'
      '      Y: Integer);'
      
        '    procedure SyntaxMemo1GetStyleEntry(Sender: TObject; CurPos: ' +
        'Integer;'
      '      StyleList: TList; var NextPos: Integer);'
      '    procedure FormCreate(Sender: TObject);'
      '  private'
      '    FHltToken: integer;'
      '    procedure SetHltToken(const Value: integer);'
      '  public'
      '    property HltToken: integer read FHltToken write SetHltToken;'
      '  end;'
      ''
      'var'
      '  Form2: TForm2;'
      ''
      'implementation'
      ''
      '{$R *.dfm}'
      ''
      'procedure TForm2.FormCreate(Sender: TObject);'
      'begin'
      '  FHltToken := -1;'
      'end;'
      ''
      
        'procedure TForm2.SyntaxMemo1GetStyleEntry(Sender: TObject; CurPo' +
        's: Integer;'
      '  StyleList: TList; var NextPos: Integer);'
      'var se: TStyleEntry;'
      'begin'
      '  NextPos := -1;'
      '  if FHltToken <> -1 then'
      '   with SyntaxMemo1.SyntObj do'
      ''
      
        '    if (FHltToken < TagCount) and (Tags[FHltToken].StartPos >= C' +
        'urPos)'
      '       and (Tags[FHltToken].EndPos < CurPos) then'
      '     begin'
      
        '      se := TStyleEntry.Create(SyntStyles1.Styles[0], Tags[FHltT' +
        'oken].StartPos, Tags[FHltToken].EndPos);'
      '      NextPos := Tags[FHltToken].EndPos;'
      '     end;'
      'end;'
      ''
      'procedure TForm2.SetHltToken(const Value: integer);'
      'begin'
      '  if FHltToken <> Value then'
      '   begin'
      '    FHltToken := Value;'
      '    SyntaxMemo1.Invalidate;'
      '   end;'
      'end;'
      ''
      
        'procedure TForm2.SyntaxMemo1MouseMove(Sender: TObject; Shift: TS' +
        'hiftState;'
      '  X, Y: Integer);'
      'begin'
      '  with SyntaxMemo1 do'
      
        '    HltToken := SyntObj.TokenAtPos(CaretPosToStrPos(MouseToCaret' +
        '(X, Y)));'
      'end;'
      ''
      'end.')
    SyntaxAnalyzer = SyntAnalyzer1
    TabList.AsString = '4'
    NonPrinted.Font.Charset = DEFAULT_CHARSET
    NonPrinted.Font.Color = clSilver
    NonPrinted.Font.Height = -11
    NonPrinted.Font.Name = 'MS Sans Serif'
    NonPrinted.Font.Style = []
    LineNumbers.Alignment = taLeftJustify
    LineNumbers.Font.Charset = DEFAULT_CHARSET
    LineNumbers.Font.Color = clWindowText
    LineNumbers.Font.Height = -9
    LineNumbers.Font.Name = 'Courier New'
    LineNumbers.Font.Style = []
    LineNumbers.Band = -1
    Gutter.ExpandButtons.Data = {
      FA000000424DFA000000000000007600000028000000180000000B0000000100
      0400000000008400000000000000000000001000000000000000000000000000
      8000008000000080800080000000800080008080000080808000C0C0C0000000
      FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00600000000000
      60000000000060BBBBBBBBB060EEEFFFEEE060BBBBBBBBB060EEEF0FEEE060BB
      BBBBBBB060EEEF0FEEE060FFFFFFFFF060FFFF0FFFF060F0000000F060F00000
      00F060FFFFFFFFF060FFFF0FFFF060BBBBBBBBB060EEEF0FEEE060BBBBBBBBB0
      60EEEF0FEEE060BBBBBBBBB060EEEFFFEEE0600000000000600000000000}
    Gutter.Bands = <>
    Gutter.Objects = <>
    Gutter.ExpBtnBand = -1
    Gutter.CollapsePen.Color = clGray
    Gutter.AutoSize = False
    HintProps.Font.Charset = DEFAULT_CHARSET
    HintProps.Font.Color = clWindowText
    HintProps.Font.Height = -11
    HintProps.Font.Name = 'MS Sans Serif'
    HintProps.Font.Style = []
    HintProps.Color = 13041663
    HintProps.ShowHints = [shScroll, shCollapsed, shGutter, shTokens]
    UserRanges = <>
    StaplePen.Color = clGray
    DefaultStyles.SelectioMark.Font.Charset = DEFAULT_CHARSET
    DefaultStyles.SelectioMark.Font.Color = clHighlightText
    DefaultStyles.SelectioMark.Font.Height = -13
    DefaultStyles.SelectioMark.Font.Name = 'Courier New'
    DefaultStyles.SelectioMark.Font.Style = []
    DefaultStyles.SelectioMark.BgColor = clHighlight
    DefaultStyles.SelectioMark.FormatType = ftColor
    DefaultStyles.SearchMark.Font.Charset = DEFAULT_CHARSET
    DefaultStyles.SearchMark.Font.Color = clWhite
    DefaultStyles.SearchMark.Font.Height = -13
    DefaultStyles.SearchMark.Font.Name = 'Courier New'
    DefaultStyles.SearchMark.Font.Style = []
    DefaultStyles.SearchMark.BgColor = clBlack
    DefaultStyles.SearchMark.FormatType = ftColor
    DefaultStyles.CurrentLine.Enabled = False
    DefaultStyles.CurrentLine.Font.Charset = DEFAULT_CHARSET
    DefaultStyles.CurrentLine.Font.Color = clWindowText
    DefaultStyles.CurrentLine.Font.Height = -13
    DefaultStyles.CurrentLine.Font.Name = 'Courier New'
    DefaultStyles.CurrentLine.Font.Style = []
    DefaultStyles.CurrentLine.FormatType = ftBackGround
    DefaultStyles.CollapseMark.Font.Charset = DEFAULT_CHARSET
    DefaultStyles.CollapseMark.Font.Color = clSilver
    DefaultStyles.CollapseMark.Font.Height = -13
    DefaultStyles.CollapseMark.Font.Name = 'Courier New'
    DefaultStyles.CollapseMark.Font.Style = []
    DefaultStyles.CollapseMark.FormatType = ftColor
    DefaultStyles.CollapseMark.BorderTypeLeft = blSolid
    DefaultStyles.CollapseMark.BorderColorLeft = clSilver
    DefaultStyles.CollapseMark.BorderTypeTop = blSolid
    DefaultStyles.CollapseMark.BorderColorTop = clSilver
    DefaultStyles.CollapseMark.BorderTypeRight = blSolid
    DefaultStyles.CollapseMark.BorderColorRight = clSilver
    DefaultStyles.CollapseMark.BorderTypeBottom = blSolid
    DefaultStyles.CollapseMark.BorderColorBottom = clSilver
    SyncEditing.SyncRangeStyle.Font.Charset = DEFAULT_CHARSET
    SyncEditing.SyncRangeStyle.Font.Color = clWindowText
    SyncEditing.SyncRangeStyle.Font.Height = -13
    SyncEditing.SyncRangeStyle.Font.Name = 'Courier New'
    SyncEditing.SyncRangeStyle.Font.Style = []
    SyncEditing.SyncRangeStyle.BgColor = 14745568
    SyncEditing.SyncRangeStyle.FormatType = ftBackGround
    SyncEditing.ActiveWordsStyle.Font.Charset = DEFAULT_CHARSET
    SyncEditing.ActiveWordsStyle.Font.Color = clWindowText
    SyncEditing.ActiveWordsStyle.Font.Height = -13
    SyncEditing.ActiveWordsStyle.Font.Name = 'Courier New'
    SyncEditing.ActiveWordsStyle.Font.Style = []
    SyncEditing.ActiveWordsStyle.FormatType = ftBackGround
    SyncEditing.ActiveWordsStyle.BorderTypeLeft = blSolid
    SyncEditing.ActiveWordsStyle.BorderColorLeft = clBlue
    SyncEditing.ActiveWordsStyle.BorderTypeTop = blSolid
    SyncEditing.ActiveWordsStyle.BorderColorTop = clBlue
    SyncEditing.ActiveWordsStyle.BorderTypeRight = blSolid
    SyncEditing.ActiveWordsStyle.BorderColorRight = clBlue
    SyncEditing.ActiveWordsStyle.BorderTypeBottom = blSolid
    SyncEditing.ActiveWordsStyle.BorderColorBottom = clBlue
    SyncEditing.InactiveWordsStyle.Font.Charset = DEFAULT_CHARSET
    SyncEditing.InactiveWordsStyle.Font.Color = clWindowText
    SyncEditing.InactiveWordsStyle.Font.Height = -13
    SyncEditing.InactiveWordsStyle.Font.Name = 'Courier New'
    SyncEditing.InactiveWordsStyle.Font.Style = []
    SyncEditing.InactiveWordsStyle.FormatType = ftBackGround
    SyncEditing.InactiveWordsStyle.BorderTypeBottom = blSolid
    SyncEditing.InactiveWordsStyle.BorderColorBottom = clBtnFace
    HorzRuler.Font.Charset = DEFAULT_CHARSET
    HorzRuler.Font.Color = clWindowText
    HorzRuler.Font.Height = -11
    HorzRuler.Font.Name = 'MS Sans Serif'
    HorzRuler.Font.Style = []
    TextMargins = <
      item
        Pen.Color = clSilver
      end>
    Align = alClient
    Ctl3D = True
    Font.Charset = DEFAULT_CHARSET
    Font.Color = clWindowText
    Font.Height = -13
    Font.Name = 'Courier New'
    Font.Style = []
    ParentColor = False
    ParentCtl3D = False
    ParentFont = False
    TabOrder = 0
    OnGetStyleEntry = SyntaxMemo1GetStyleEntry
    OnMouseEnter = SyntaxMemo1MouseEnter
    OnMouseLeave = SyntaxMemo1MouseEnter
    OnMouseDown = SyntaxMemo1MouseDown
    OnMouseMove = SyntaxMemo1MouseMove
  end
  object Panel1: TPanel
    Left = 0
    Top = 0
    Width = 822
    Height = 33
    Align = alTop
    TabOrder = 1
    object CheckBox1: TCheckBox
      Left = 8
      Top = 8
      Width = 137
      Height = 17
      Caption = 'Mouse over + Control'
      TabOrder = 0
    end
    object CheckBox2: TCheckBox
      Left = 184
      Top = 8
      Width = 145
      Height = 17
      Caption = 'Fixed line height'
      TabOrder = 1
    end
    object Button1: TButton
      Left = 352
      Top = 4
      Width = 89
      Height = 25
      Caption = 'Edit style'
      TabOrder = 2
      OnClick = Button1Click
    end
  end
  object SyntAnalyzer1: TSyntAnalyzer
    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 = clBlue
        Font.Height = -13
        Font.Name = 'Courier New'
        Font.Style = []
      end
      item
        DisplayName = 'Identifier'
        Font.Charset = DEFAULT_CHARSET
        Font.Color = clWindowText
        Font.Height = -13
        Font.Name = 'Courier New'
        Font.Style = []
      end
      item
        DisplayName = 'Reserved word'
        Font.Charset = DEFAULT_CHARSET
        Font.Color = clWindowText
        Font.Height = -13
        Font.Name = 'Courier New'
        Font.Style = [fsBold]
      end
      item
        DisplayName = 'Comment'
        Font.Charset = DEFAULT_CHARSET
        Font.Color = clRed
        Font.Height = -13
        Font.Name = 'Courier New'
        Font.Style = [fsBold]
      end
      item
        DisplayName = 'Preprocessor'
        Font.Charset = DEFAULT_CHARSET
        Font.Color = clGreen
        Font.Height = -13
        Font.Name = 'Courier New'
        Font.Style = [fsItalic]
      end
      item
        DisplayName = 'Assembler'
        Font.Charset = DEFAULT_CHARSET
        Font.Color = clNone
        Font.Height = -13
        Font.Name = 'Courier New'
        Font.Style = []
        BgColor = 15724510
        FormatType = ftBackGround
      end
      item
        DisplayName = 'Marked block'
        Font.Charset = DEFAULT_CHARSET
        Font.Color = clHighlightText
        Font.Height = -13
        Font.Name = 'Courier New'
        Font.Style = []
        BgColor = clHighlight
        FormatType = ftColor
      end
      item
        DisplayName = 'Interface section'
        Font.Charset = DEFAULT_CHARSET
        Font.Color = clHighlight
        Font.Height = -13
        Font.Name = 'Courier New'
        Font.Style = []
        BgColor = 13303807
        FormatType = ftBackGround
      end
      item
        DisplayName = 'Implemenation Section'
        Font.Charset = DEFAULT_CHARSET
        Font.Color = clWindowText
        Font.Height = -13
        Font.Name = 'Courier New'
        Font.Style = []
        BgColor = 14811095
        FormatType = ftBackGround
      end
      item
        DisplayName = 'Function separator'
        Font.Charset = DEFAULT_CHARSET
        Font.Color = clWindowText
        Font.Height = -13
        Font.Name = 'Courier New'
        Font.Style = []
        BgColor = clRed
        FormatType = ftBackGround
      end
      item
        DisplayName = 'Current block'
        Font.Charset = DEFAULT_CHARSET
        Font.Color = clBlue
        Font.Height = -13
        Font.Name = 'Courier New'
        Font.Style = [fsBold]
        BgColor = cl3DLight
        FormatType = ftColor
      end
      item
        DisplayName = 'Current function'
        Font.Charset = DEFAULT_CHARSET
        Font.Color = clMaroon
        Font.Height = -13
        Font.Name = 'Courier New'
        Font.Style = []
        BgColor = 16776187
        FormatType = ftBackGround
        BorderTypeLeft = blSolid
        BorderTypeTop = blSolid
        BorderTypeRight = blSolid
        BorderTypeBottom = blSolid
        MultiLineBorder = True
      end
      item
        DisplayName = 'Current Line'
        Font.Charset = DEFAULT_CHARSET
        Font.Color = clWindowText
        Font.Height = -13
        Font.Name = 'Courier New'
        Font.Style = []
        BgColor = 16772341
        FormatType = ftBackGround
      end
      item
        DisplayName = 'Search Match'
        Font.Charset = DEFAULT_CHARSET
        Font.Color = clWindow
        Font.Height = -16
        Font.Name = 'Courier New'
        Font.Style = [fsBold]
        BgColor = clBlack
        FormatType = ftCustomFont
      end>
    TokenRules = <
      item
        DisplayName = 'Any name'
        StyleName = 'Identifier'
        TokenType = 2
        Expression = '[a-z_]\w*'
        ColumnFrom = 0
        ColumnTo = 0
        OnMouseClick = SyntAnalyzer1TokenRules0MouseClick
      end
      item
        DisplayName = 'String'
        StyleName = 'String'
        TokenType = 4
        Expression = #39'.*?('#39'|$)'#13#10
        ColumnFrom = 0
        ColumnTo = 0
      end
      item
        DisplayName = 'Float'
        StyleName = 'Number'
        TokenType = 6
        Expression = 
          '#with exp. dot is optional '#13#10'\d+ \.? \d+ e [\+\-]? \d+ |'#13#10'#witho' +
          'ut exp. dot is required'#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 = 'Preprocessor 1'
        StyleName = 'Preprocessor'
        TokenType = 9
        Expression = '\{\$.*?\}'
        ColumnFrom = 0
        ColumnTo = 0
      end
      item
        DisplayName = 'Preprocessor 2'
        StyleName = 'Preprocessor'
        TokenType = 9
        Expression = '\(\*\$.*?\*\)'
        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 = '(?s)\{.*?(\}|\Z)'#13#10
        ColumnFrom = 0
        ColumnTo = 0
      end
      item
        DisplayName = 'Comment 3'
        StyleName = 'Comment'
        TokenType = 1
        Expression = '//.*'
        ColumnFrom = 0
        ColumnTo = 0
      end
      item
        DisplayName = 'HEX'
        StyleName = 'Number'
        TokenType = 7
        Expression = '\$[a-f\d]+'
        ColumnFrom = 0
        ColumnTo = 0
      end
      item
        DisplayName = 'Symbol'
        StyleName = 'Symbol'
        TokenType = 3
        Expression = '[/\*,\.;:\(\)=<>\+\-\[\]]'
        ColumnFrom = 0
        ColumnTo = 0
      end
      item
        DisplayName = 'Char'
        StyleName = 'String'
        TokenType = 8
        Expression = '\#(\d+|\$[\da-f]+)'
        ColumnFrom = 0
        ColumnTo = 0
      end>
    BlockRules = <
      item
        DisplayName = 'Key words'
        StyleName = 'Reserved word'
        BlockType = btTagDetect
        ConditionList = <
          item
            TagList.Strings = (
              'abstract'
              'and'
              'array'
              'as'
              'asm'
              'begin'
              'case'
              'class'
              'const'
              'constructor'
              'contains'
              'destructor'
              'dispinterface'
              'div'
              'do'
              'downto'
              'dynamic'
              'else'
              'end'
              'except'
              'exports'
              'file'
              'finalization'
              'finally'
              'for'
              'function'
              'goto'
              'if'
              'implementation'
              'in'
              'index'
              'inherited'
              'initialization'
              'inline'
              'interface'
              'is'
              'label'
              'library'
              'mod'
              'nil'
              'not'
              'object'
              'of'
              'or'
              'out'
              'override'
              'package'
              'packed'
              'pascal'
              'private'
              'procedure'
              'program'
              'property'
              'protected'
              'public'
              'published'
              'raise'
              'read'
              'record'
              'register'
              'repeat'
              'requires'
              'resourcestring'
              'safecall'
              'set'
              'shl'
              'shr'
              'stdcall'
              'string'
              'then'
              'threadvar'
              'to'
              'try'
              'type'
              'unit'
              'until'
              'uses'
              'var'
              'virtual'
              'while'
              'with'
              'write'
              'xor')
            TokenTypes = 4
            IgnoreCase = True
          end>
        HighlightPos = cpAny
        IgnoreAsParent = False
      end
      item
        DisplayName = 'begin'
        StyleName = 'Current block'
        ConditionList = <
          item
            TagList.Strings = (
              'begin'
              'case'
              'try')
            TokenTypes = 4
          end>
        BlockEnd = 'End'
        DisplayInTree = False
        DynHighlight = dhBound
        HighlightPos = cpRange
        DynSelectMin = True
        DrawStaple = True
        IgnoreAsParent = False
      end
      item
        DisplayName = 'End'
        BlockType = btRangeEnd
        ConditionList = <
          item
            TagList.Strings = (
              'end')
            TokenTypes = 4
            IgnoreCase = True
          end>
        HighlightPos = cpAny
        IgnoreAsParent = False
      end
      item
        DisplayName = 'asm'
        StyleName = 'Assembler'
        ConditionList = <
          item
            TagList.Strings = (
              'asm')
            TokenTypes = 4
            IgnoreCase = True
          end>
        BlockEnd = 'End'
        Highlight = True
        InvertColors = True
        DisplayInTree = False
        DynHighlight = dhRangeNoBound
        HighlightPos = cpAny
        IgnoreAsParent = False
      end
      item
        DisplayName = '{$ifdef}'
        ConditionList = <
          item
            TagList.Strings = (
              '\{\$if[n]?def')
            CondType = tcMask
            TokenTypes = 512
            IgnoreCase = True
          end>
        BlockEnd = '{$endif}'
        DisplayInTree = False
        HighlightPos = cpAny
        IgnoreAsParent = False
      end
      item
        DisplayName = '{$endif}'
        BlockType = btRangeEnd
        ConditionList = <
          item
            TagList.Strings = (
              '{$endif}')
            TokenTypes = 512
            IgnoreCase = True
          end>
        HighlightPos = cpAny
        IgnoreAsParent = False
      end
      item
        DisplayName = 'until'
        BlockType = btRangeEnd
        ConditionList = <
          item
            TagList.Strings = (
              'until')
            TokenTypes = 4
            IgnoreCase = True
          end>
        HighlightPos = cpAny
        IgnoreAsParent = False
      end
      item
        DisplayName = 'repeat'
        ConditionList = <
          item
            TagList.Strings = (
              'repeat')
            TokenTypes = 4
            IgnoreCase = True
          end>
        BlockEnd = 'until'
        DisplayInTree = False
        HighlightPos = cpAny
        IgnoreAsParent = False
      end
      item
        DisplayName = 'program'
        ConditionList = <
          item
            TagList.Strings = (
              'program'
              'unit')
            TokenTypes = 4
            IgnoreCase = True
          end>
        IdentIndex = -1
        BlockEnd = 'Unit end'
        EndOfTextClose = True
        HighlightPos = cpAny
        IgnoreAsParent = False
      end
      item
        DisplayName = 'class not derived'
        ConditionList = <
          item
            TagList.Strings = (
              '('
              ';'
              '['
              'of')
            CondType = tcNotEqual
            TokenTypes = 12
          end
          item
            TagList.Strings = (
              'class'
              'dispinterface'
              'interface')
            TokenTypes = 4
            IgnoreCase = True
          end
          item
            TagList.Strings = (
              '=')
            TokenTypes = 8
          end>
        IdentIndex = 3
        BlockOffset = 3
        BlockEnd = 'End'
        NameFmt = '%s1 %s3'
        HighlightPos = cpAny
        IgnoreAsParent = False
      end
      item
        DisplayName = 'Interface not derived'
        ConditionList = <
          item
            TagList.Strings = (
              '[')
            TokenTypes = 8
          end
          item
            TagList.Strings = (
              'dispinterface'
              'interface')
            TokenTypes = 4
          end>
        IdentIndex = 3
        BlockOffset = 3
        BlockEnd = 'End'
        NameFmt = '%s1 %s3'
        HighlightPos = cpAny
        IgnoreAsParent = False
      end
      item
        DisplayName = 'class derived'
        ConditionList = <
          item
            TokenTypes = 4
          end
          item
            TagList.Strings = (
              ')')
            TokenTypes = 8
            IgnoreCase = True
          end
          item
            CondType = tcSkip
            TokenTypes = 12
          end
          item
            TagList.Strings = (
              '(')
            TokenTypes = 8
          end
          item
            TagList.Strings = (
              'class'
              'interface')
            TokenTypes = 4
            IgnoreCase = True
          end
          item
            TagList.Strings = (
              '=')
            TokenTypes = 8
          end>
        BlockOffset = 1
        BlockEnd = 'End'
        NameFmt = '%s-1 %s1'
        RefToCondEnd = True
        HighlightPos = cpAny
        IgnoreAsParent = False
      end
      item
        DisplayName = 'Interface derived'
        ConditionList = <
          item
            TagList.Strings = (
              '[')
            TokenTypes = 8
          end
          item
            TagList.Strings = (
              ')')
            TokenTypes = 8
          end
          item
            TokenTypes = 4
          end
          item
            TagList.Strings = (
              '(')
            TokenTypes = 8
          end
          item
            TagList.Strings = (
              'interface')
            TokenTypes = 4
          end
          item
            TagList.Strings = (
              '=')
            TokenTypes = 8
          end>
        BlockOffset = 1
        BlockEnd = 'End'
        NameFmt = '%s4 %s6'
        HighlightPos = cpAny
        IgnoreAsParent = False
      end
      item
        DisplayName = 'Block comment'
        BlockName = 'Block comment'
        NotParent = True
        ConditionList = <
          item
            TokenTypes = 2
          end>
        BlockEnd = 'Block comment end'
        DisplayInTree = False
        HighlightPos = cpAny
        IgnoreAsParent = False
      end
      item
        DisplayName = 'Block comment end'
        BlockType = btRangeEnd
        ConditionList = <
          item
            CondType = tcNotEqual
            TokenTypes = 2
          end
          item
            TokenTypes = 2
          end>
        BlockOffset = 1
        HighlightPos = cpAny
        IgnoreAsParent = False
      end
      item
        DisplayName = 'Interface section'
        StyleName = 'Interface section'
        BlockName = 'program'
        StrictParent = True
        ConditionList = <
          item
            TagList.Strings = (
              'interface')
            TokenTypes = 4
            IgnoreCase = True
          end>
        BlockEnd = 'Interface section end'
        EndOfTextClose = True
        Highlight = True
        DisplayInTree = False
        NameFmt = 'Interface section'
        DynHighlight = dhRange
        HighlightPos = cpAny
        IgnoreAsParent = False
      end
      item
        DisplayName = 'Interface section end'
        BlockType = btRangeEnd
        ConditionList = <
          item
            TagList.Strings = (
              'implementation')
            TokenTypes = 4
            IgnoreCase = True
          end>
        BlockOffset = 1
        HighlightPos = cpAny
        IgnoreAsParent = False
      end
      item
        DisplayName = 'Implementation section'
        StyleName = 'Implemenation Section'
        ConditionList = <
          item
            TagList.Strings = (
              'implementation')
            TokenTypes = 4
          end>
        BlockEnd = 'Unit end'
        EndOfTextClose = True
        Highlight = True
        DisplayInTree = False
        DynHighlight = dhRange
        HighlightPos = cpAny
        IgnoreAsParent = False
      end
      item
        DisplayName = 'Unit end'
        BlockType = btRangeEnd
        ConditionList = <
          item
            TagList.Strings = (
              '.')
            TokenTypes = 8
          end
          item
            TagList.Strings = (
              'end')
            TokenTypes = 4
            IgnoreCase = True
          end>
        BlockOffset = 2
        HighlightPos = cpAny
        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 = cpAny
        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 = cpAny
        IgnoreAsParent = False
      end
      item
        DisplayName = 'Function separator'
        StyleName = 'Function separator'
        BlockName = 'Implementation section'
        BlockType = btLineBreak
        ConditionList = <
          item
            TagList.Strings = (
              'constructor'
              'destructor'
              'function'
              'procedure')
            TokenTypes = 4
            IgnoreCase = True
          end>
        HighlightPos = cpAny
        IgnoreAsParent = False
      end
      item
        DisplayName = 'Internal function'
        BlockName = 'function of class'
        StrictParent = True
        ConditionList = <
          item
            TagList.Strings = (
              'function'
              'procedure')
            TokenTypes = 4
            IgnoreCase = True
          end>
        IdentIndex = -1
        BlockEnd = 'End of internal'
        HighlightPos = cpAny
        IgnoreAsParent = False
      end
      item
        DisplayName = 'End of internal'
        BlockName = 'Internal function'
        StrictParent = True
        BlockType = btRangeEnd
        ConditionList = <
          item
            TagList.Strings = (
              ';')
            TokenTypes = 8
          end
          item
            TagList.Strings = (
              'end')
            TokenTypes = 4
          end>
        HighlightPos = cpAny
        CancelNextRules = True
        IgnoreAsParent = False
      end
      item
        DisplayName = 'Single function'
        BlockName = 'Implementation section'
        StrictParent = True
        ConditionList = <
          item
            TagList.Strings = (
              '.')
            CondType = tcNotEqual
            TokenTypes = 8
          end
          item
            TokenTypes = 4
          end
          item
            TagList.Strings = (
              'function'
              'procedure')
            TokenTypes = 4
          end>
        IdentIndex = 1
        BlockOffset = 2
        BlockEnd = 'End of function'
        NameFmt = '%s2 %s1'
        GroupFmt = 'Functions'
        HighlightPos = cpAny
        IgnoreAsParent = False
      end
      item
        DisplayName = 'End of function'
        BlockName = 'Single function'
        StrictParent = True
        BlockType = btRangeEnd
        ConditionList = <
          item
            TagList.Strings = (
              ';')
            TokenTypes = 8
          end
          item
            TagList.Strings = (
              'end')
            TokenTypes = 4
          end>
        HighlightPos = cpAny
        IgnoreAsParent = False
      end
      item
        DisplayName = 'function of class'
        StyleName = 'Current function'
        ConditionList = <
          item
            TagList.Strings = (
              '.')
            TokenTypes = 8
          end
          item
            TokenTypes = 4
          end
          item
            TagList.Strings = (
              'constructor'
              'destructor'
              'function'
              'procedure')
            TokenTypes = 4
            IgnoreCase = True
          end>
        IdentIndex = -1
        BlockOffset = 2
        BlockEnd = 'End of class function'
        NameFmt = '%s-1'
        GroupFmt = 'class %s1'
        DynHighlight = dhRange
        HighlightPos = cpRange
        IgnoreAsParent = False
      end
      item
        DisplayName = 'End of class function'
        BlockName = 'function of class'
        StrictParent = True
        BlockType = btRangeEnd
        ConditionList = <
          item
            TagList.Strings = (
              ';')
            TokenTypes = 8
          end
          item
            TagList.Strings = (
              'end')
            TokenTypes = 4
            IgnoreCase = True
          end>
        HighlightPos = cpAny
        IgnoreAsParent = False
      end
      item
        DisplayName = 'finalization'
        ConditionList = <
          item
            TagList.Strings = (
              'finalization')
            TokenTypes = 4
          end>
        EndOfTextClose = True
        HighlightPos = cpAny
        IgnoreAsParent = False
      end>
    CodeTemplates = <
      item
        Name = 'be'
        Description = 'begin end'
        Code.Strings = (
          'begin'
          '  <marker><paste>'
          '  <caret>'
          '  <marker>'
          '  <paste> '
          'end;')
        Advanced = True
      end
      item
        Name = 'arrayd'
        Description = 'array declaration (var)'
        Code.Strings = (
          'array[0..|] of ;')
      end
      item
        Name = 'arrayc'
        Description = 'array declaration (const)'
        Code.Strings = (
          'array[0..|] of = ();')
      end
      item
        Name = 'cases'
        Description = 'case statement'
        Code.Strings = (
          'case | of'
          '  : ;'
          '  : ;'
          'end;')
      end
      item
        Name = 'casee'
        Description = 'case statement (with else)'
        Code.Strings = (
          'case | of'
          '  : ;'
          '  : ;'
          'else ;'
          'end;')
      end
      item
        Name = 'classf'
        Description = 'class declaration (all parts)'
        Code.Strings = (
          'T| = class(T)'
          'private'
          ''
          'protected'
          ''
          'public'
          ''
          'published'
          ''
          'end;')
      end
      item
        Name = 'classd'
        Description = 'class declaration (no parts)'
        Code.Strings = (
          'T| = class(T)'
          ''
          'end;')
      end
      item
        Name = 'classc'
        Description = 'class declaration (with Create/Destroy overrides)'
        Code.Strings = (
          'T| = class(T)'
          'private'
          ''
          'protected'
          ''
          'public'
          '  constructor Create; override;'
          '  destructor Destroy; override;'
          'published'
          ''
          'end;')
      end
      item
        Name = 'fors'
        Description = 'for (no begin/end)'
        Code.Strings = (
          'for | :=  to  do')
      end
      item
        Name = 'forb'
        Description = 'for statement'
        Code.Strings = (
          'for | :=  to  do'
          'begin'
          ''
          'end;')
      end
      item
        Name = 'function'
        Description = 'function declaration'
        Code.Strings = (
          'function |(): ;'
          'begin'
          ''
          'end;')
      end
      item
        Name = 'ifs'
        Description = 'if (no begin/end)'
        Code.Strings = (
          'if | then')
      end
      item
        Name = 'ifb'
        Description = 'if statement'
        Code.Strings = (
          'if | then'
          'begin'
          ''
          'end;')
      end
      item
        Name = 'ife'
        Description = 'if then (no begin/end) else (no begin/end)'
        Code.Strings = (
          'if | then'
          ''
          'else')
      end
      item
        Name = 'ifeb'
        Description = 'if then else'
        Code.Strings = (
          'if | then'
          'begin'
          ''
          'end'
          'else'
          'begin'
          ''
          'end;'
          '')
      end
      item
        Name = 'procedure'
        Description = 'procedure declaration'
        Code.Strings = (
          'procedure |();'
          'begin'
          ''
          'end;')
      end
      item
        Name = 'trye'
        Description = 'try except'
        Code.Strings = (
          'try'
          '  |'
          'except'
          ''
          'end;')
      end
      item
        Name = 'tryf'
        Description = 'try finally'
        Code.Strings = (
          'try'
          '  |'
          'finally'
          ''
          'end;')
      end
      item
        Name = 'trycf'
        Description = 'try finally (with Create/Free)'
        Code.Strings = (
          '|variable := typename.Create;'
          'try'
          ''
          'finally'
          '  variable.Free;'
          'end;')
      end
      item
        Name = 'whileb'
        Description = 'while statement'
        Code.Strings = (
          'while | do'
          'begin'
          ''
          'end;')
      end
      item
        Name = 'whiles'
        Description = 'while (no begin)'
        Code.Strings = (
          'while | do')
      end
      item
        Name = 'withb'
        Description = 'with statement'
        Code.Strings = (
          'with | do'
          'begin'
          ''
          'end;')
      end
      item
        Name = 'withs'
        Description = 'with (no begin)'
        Code.Strings = (
          'with | do')
      end
      item
        Name = 'prop'
        Description = 'property'
        Code.Strings = (
          'property | read  write;')
      end>
    SubAnalyzers = <
      item
        DisplayName = 'asm section'
        StartExpression = 'asm'#13#10
        EndExpression = 'end'#13#10
      end>
    SampleText.Strings = (
      '{Syntax highlighting}'
      'procedure TForm1.Button1Click(Sender: TObject);'
      'var'
      ' Number: integer;'
      ' FloatNumber: double;'
      'begin'
      ' Number := 123;  // View integer number style'
      
        ' Caprion := '#39'This Number is '#39' + IntToStr(Number); // View string' +
        ' style'
      ' Inc(Number, $1FA7); // View HEX style'
      ' {Assembler style}'
      ' asm'
      '   MOV  AX, 1234H'
      '   MOV Number, AX'
      ' end;'
      'end;')
    TokenTypeNames.Strings = (
      'Unknown'
      'Comment'
      'Identifier'
      'Symbol'
      'String'
      'Integer const'
      'Float const'
      'Hex const'
      'Char const'
      'Preprocessor')
    MarkedBlockStyle = 'Marked block'
    SearchMatchStyle = 'Search Match'
    CurrentLineStyle = 'Current Line'
    Extentions = 'pas inc dpr dpk'
    LexerName = 'Pascal'
    Left = 112
    Top = 52
  end
  object SyntStyles1: TSyntStyles
    Styles = <
      item
        DisplayName = 'Highlighting Sample'
        Font.Charset = RUSSIAN_CHARSET
        Font.Color = clBlue
        Font.Height = -16
        Font.Name = 'Arial'
        Font.Style = [fsBold]
        FormatType = ftCustomFont
        BorderTypeLeft = blDot
        BorderTypeTop = blDot
        BorderTypeRight = blDot
        BorderTypeBottom = blDot
      end>
    Left = 148
    Top = 52
  end
end
