object Form5: TForm5
  Left = 239
  Top = 105
  Width = 672
  Height = 595
  Caption = 'Form5'
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'MS Sans Serif'
  Font.Style = []
  OldCreateOrder = False
  PixelsPerInch = 96
  TextHeight = 13
  object SyntaxMemo1: TSyntaxMemo
    Left = 24
    Top = 12
    Width = 625
    Height = 521
    Lines.Strings = (
      'unit main;'
      ''
      'interface'
      ''
      '{To compile without RX Library uncomment next UNDEF}'
      '{.$UNDEF USE_RX_LIB}'
      '{$IFNDEF WIN32}'
      ' {$UNDEF USE_RX_LIB}'
      '{$ENDIF}'
      '{$IFNDEF VER140}'
      ' {$UNDEF USE_RX_LIB}'
      '{$ENDIF}'
      ''
      ''
      'uses'
      
        '  Windows, Messages, SysUtils, Classes, Graphics, Controls, Form' +
        's,'
      
        '  Dialogs, StdCtrls, Mask, ExtCtrls, ecSyntMemo, ecSyntAnal, Img' +
        'List,'
      
        '  ComCtrls, ActnList, Buttons, ToolWin, Menus, ecSyntDlg, StdAct' +
        'ns,'
      '  {$IFDEF USE_RX_LIB} MRUList, Placemnt, {$ENDIF}'
      '  {$IFNDEF WIN32} Variants, System.ComponentModel, {$ENDIF}'
      
        '  ecSyntTree, ShellApi, ecKeyMap, ecActns, ecExports, ecPopupCtr' +
        'l,'
      '  ecPrint, ecStylesCombo, ecPropManager, ecAutoReplace;'
      ''
      'type'
      ''
      '  TSyntEditMain = class(TForm)'
      '    ActionList1: TActionList;'
      '    SB: TStatusBar;'
      '    SyntFindDialog1: TSyntFindDialog;'
      '    actOpen: TAction;'
      '    actSave: TAction;'
      '    OD: TOpenDialog;'
      '    SD: TSaveDialog;'
      '    ToolBar1: TToolBar;'
      '    ToolButton1: TToolButton;'
      '    ToolButton2: TToolButton;'
      '    ToolButton3: TToolButton;'
      '    ToolButton4: TToolButton;'
      '    ToolButton5: TToolButton;'
      '    ToolButton6: TToolButton;'
      '    ToolButton7: TToolButton;'
      '    ToolButton8: TToolButton;'
      '    ToolButton9: TToolButton;'
      '    ToolButton10: TToolButton;'
      '    ToolButton11: TToolButton;'
      '    ToolButton12: TToolButton;'
      '    ToolButton13: TToolButton;'
      '    ToolButton14: TToolButton;'
      '    ToolButton15: TToolButton;'
      '    SyntReplaceDialog1: TSyntReplaceDialog;'
      '    ToolButton16: TToolButton;'
      '    MainMenu1: TMainMenu;'
      '    actNewFile: TAction;'
      '    actSaveAs: TAction;'
      '    File1: TMenuItem;'
      '    Edit1: TMenuItem;'
      '    New1: TMenuItem;'
      '    Open1: TMenuItem;'
      '    Save1: TMenuItem;'
      '    Saveas1: TMenuItem;'
      '    N1: TMenuItem;'
      '    Exit1: TMenuItem;'
      '    Copy1: TMenuItem;'
      '    Cut1: TMenuItem;'
      '    Paste1: TMenuItem;'
      '    Delete1: TMenuItem;'
      '    N3: TMenuItem;'
      '    Undo1: TMenuItem;'
      '    Redo1: TMenuItem;'
      '    Findnext1: TMenuItem;'
      '    Replace1: TMenuItem;'
      '    Options1: TMenuItem;'
      '    actCustomize1: TMenuItem;'
      '    N4: TMenuItem;'
      '    SelectAll1: TMenuItem;'
      '    EditorProperties1: TMenuItem;'
      '    About1: TMenuItem;'
      '    PopupMenu1: TPopupMenu;'
      '    Copy2: TMenuItem;'
      '    Cut2: TMenuItem;'
      '    Paste2: TMenuItem;'
      '    Delete2: TMenuItem;'
      '    N6: TMenuItem;'
      '    SyntaxHighlignting1: TMenuItem;'
      '    EditorProperties2: TMenuItem;'
      '    N7: TMenuItem;'
      '    ogglebookmarks1: TMenuItem;'
      '    Gotobookmarks1: TMenuItem;'
      '    Bookmark01: TMenuItem;'
      '    Bookmark11: TMenuItem;'
      '    Bookmark21: TMenuItem;'
      '    Bookmark31: TMenuItem;'
      '    Bookmark41: TMenuItem;'
      '    Bookmark51: TMenuItem;'
      '    Bookmark61: TMenuItem;'
      '    Bookmark71: TMenuItem;'
      '    Bookmark81: TMenuItem;'
      '    Bookmark91: TMenuItem;'
      '    Bookmark02: TMenuItem;'
      '    Bookmark12: TMenuItem;'
      '    Bookmark22: TMenuItem;'
      '    Bookmark32: TMenuItem;'
      '    Bookmark42: TMenuItem;'
      '    Bookmark52: TMenuItem;'
      '    Bookmark62: TMenuItem;'
      '    Bookmark72: TMenuItem;'
      '    Bookmark82: TMenuItem;'
      '    Bookmark92: TMenuItem;'
      '    ToolButton17: TToolButton;'
      '    SyntaxHighlignting2: TMenuItem;'
      '    LexerLibrary1: TMenuItem;'
      '    SelLexMenu: TMenuItem;'
      '    View1: TMenuItem;'
      '    FullExpand1: TMenuItem;'
      '    FullCollapse1: TMenuItem;'
      '    SyntaxManager1: TSyntaxManager;'
      '    EditPaste1: TEditPaste;'
      '    EditSelectAll1: TEditSelectAll;'
      '    EditUndo1: TEditUndo;'
      '    EditDelete1: TEditDelete;'
      '    Print1: TMenuItem;'
      '    N9: TMenuItem;'
      '    PrintSetup1: TMenuItem;'
      '    ToolButton18: TToolButton;'
      '    actShowNonPrinted1: TMenuItem;'
      '    EditCopy1: TEditCopy;'
      '    EditCut1: TEditCut;'
      '    N10: TMenuItem;'
      '    ExportRTF1: TMenuItem;'
      '    CopyasRTF1: TMenuItem;'
      '    PrinterSetupDialog1: TPrinterSetupDialog;'
      '    SyntaxTreeView1: TSyntaxTreeView;'
      '    Splitter1: TSplitter;'
      '    ToolButton19: TToolButton;'
      '    ToolButton20: TToolButton;'
      '    ToolButton21: TToolButton;'
      '    ExportHTML1: TMenuItem;'
      '    ImageList1: TImageList;'
      '    SyntKeyMapping1: TSyntKeyMapping;'
      '    KeyMapping1: TMenuItem;'
      '    Action11: TMenuItem;'
      '    N12: TMenuItem;'
      '    SynchronizeTree1: TMenuItem;'
      '    ecCommandRedo: TecCommandAction;'
      '    ecCommandAction1: TecCommandAction;'
      '    ecCommandAction2: TecCommandAction;'
      '    ecFullCollapse1: TecFullCollapse;'
      '    ecFullExpand1: TecFullExpand;'
      '    ecCopyAsRTF1: TecCopyAsRTF;'
      '    Reopen1: TMenuItem;'
      '    N8: TMenuItem;'
      '    ecCommandAction3: TecCommandAction;'
      '    CollapseSelection1: TMenuItem;'
      '    HelpContents1: THelpContents;'
      '    Contents1: TMenuItem;'
      '    ToolButton22: TToolButton;'
      '    ToolButton23: TToolButton;'
      '    N5: TMenuItem;'
      '    ecSearch1: TecSearch;'
      '    ecSearchAgain1: TecSearchAgain;'
      '    ecReplace1: TecReplace;'
      '    ToolButton24: TToolButton;'
      '    ToolButton25: TToolButton;'
      '    ToolButton26: TToolButton;'
      '    ToolButton27: TToolButton;'
      '    ToolButton29: TToolButton;'
      '    ToolButton30: TToolButton;'
      '    ToolButton31: TToolButton;'
      '    SyntStyles1: TSyntStyles;'
      '    Userstyles1: TMenuItem;'
      '    ecUserRangeDelete1: TecUserRangeDelete;'
      '    ecUserRangeCollapsable1: TecUserRangeCollapsable;'
      '    ecUserRangeTopLine1: TecUserRangeTopLine;'
      '    ecUserRangeBottomLine1: TecUserRangeBottomLine;'
      '    ecUserRangeLineHighlight1: TecUserRangeLineHighlight;'
      '    TemplatePopup1: TTemplatePopup;'
      '    Wordwrap1: TMenuItem;'
      '    ToolButton32: TToolButton;'
      '    ecSyntPrinter1: TecSyntPrinter;'
      '    N11: TMenuItem;'
      '    actPrintPreview1: TMenuItem;'
      '    ToolButton33: TToolButton;'
      '    ecPrintAction1: TecPrintAction;'
      '    ecPreviewAction1: TecPreviewAction;'
      '    ecExportRTFAction1: TecExportRTFAction;'
      '    ecExportHTMLAction1: TecExportHTMLAction;'
      
        '    ecCustomizeEditorOptionsAction1: TecCustomizeEditorOptionsAc' +
        'tion;'
      
        '    ecCustomizeSyntaxHighlightingAction1: TecCustomizeSyntaxHigh' +
        'lightingAction;'
      
        '    ecCustomizeLexerPropertiesAction1: TecCustomizeLexerProperti' +
        'esAction;'
      '    ecCustomizeKeyMappingAction1: TecCustomizeKeyMappingAction;'
      '    ecCustomizeUserStylesAction1: TecCustomizeUserStylesAction;'
      '    PageSetup1: TMenuItem;'
      '    ecToggleNonPrinted1: TecToggleNonPrinted;'
      '    ecToggleWordWrap1: TecToggleWordWrap;'
      '    UserStylesCombo1: TUserStylesCombo;'
      '    PropsManager1: TPropsManager;'
      '    SyntAutoReplace1: TSyntAutoReplace;'
      '    ecCustomizeLexerLib1: TecCustomizeLexerLib;'
      '    ecToggleSyntTreeSync1: TecToggleSyntTreeSync;'
      '    ecCustomizeAutoReplace1: TecCustomizeAutoReplace;'
      '    CustomizeAutoReplace1: TMenuItem;'
      '    PropsManager2: TPropsManager;'
      '    ecIncrementalSearch1: TecIncrementalSearch;'
      '    IncrementalSearch1: TMenuItem;'
      '    ToolButton28: TToolButton;'
      '    ecPageSetupAction1: TecPageSetupAction;'
      '    Language1: TMenuItem;'
      '    ecFindCurrentWordNextAction1: TecFindCurrentWordNextAction;'
      
        '    ecFindCurrentWordPriorAction1: TecFindCurrentWordPriorAction' +
        ';'
      '    N14: TMenuItem;'
      '    Search1: TMenuItem;'
      '    FindCurrentWordNext1: TMenuItem;'
      '    FindCurrentWordPrior1: TMenuItem;'
      '    ToolButton34: TToolButton;'
      '    ToolButton35: TToolButton;'
      '    Panel1: TPanel;'
      '    SyntaxMemo1: TSyntaxMemo;'
      '    Splitter2: TSplitter;'
      '    SyntTextSource1: TSyntTextSource;'
      '    SyntaxMemo2: TSyntaxMemo;'
      '    PrinterSetupDialog2: TPrinterSetupDialog;'
      '    PrintSetupAction: TAction;'
      '    FileExitAction: TAction;'
      '    procedure UpdateStatusBar(Sender: TObject);'
      '    procedure SyntaxMemo1KeyDown(Sender: TObject; var Key: Word;'
      '      Shift: TShiftState);'
      '    procedure actSaveUpdate(Sender: TObject);'
      '    procedure actOpenExecute(Sender: TObject);'
      '    procedure actSaveExecute(Sender: TObject);'
      '    procedure actNewFileExecute(Sender: TObject);'
      '    procedure actSaveAsExecute(Sender: TObject);'
      '    procedure FormShow(Sender: TObject);'
      '    procedure Bookmark91Click(Sender: TObject);'
      '    procedure Bookmark92Click(Sender: TObject);'
      '    procedure PopupMenu1Popup(Sender: TObject);'
      '    procedure About1Click(Sender: TObject);'
      
        '    procedure FormCloseQuery(Sender: TObject; var CanClose: Bool' +
        'ean);'
      '    procedure FormResize(Sender: TObject);'
      
        '    procedure FormClose(Sender: TObject; var Action: TCloseActio' +
        'n);'
      
        '    procedure SyntaxMemo1GetTokenHint(Sender: TObject; TokenInde' +
        'x: Integer; var HintText: String);'
      
        '    procedure SyntaxMemo1SetBookmark(Snder: TObject; Bookmark: T' +
        'Bookmark;'
      '      var Accept: Boolean);'
      '    procedure SyntaxMemo1IncSearchChange(Sender: TObject;'
      '      State: TIncSearchState);'
      '    procedure SyntFindDialog1AfterExecute(Sender: TObject);'
      '    procedure SyntaxManager1LexerChanged(Sender: TObject);'
      '    procedure LocalizeClick(Sender: TObject);'
      '    procedure SyntaxMemo1Enter(Sender: TObject);'
      
        '    procedure ecCustomizeEditorOptionsAction1ExecuteOK(Sender: T' +
        'Object);'
      '    procedure PrintSetupActionExecute(Sender: TObject);'
      '    procedure FileExitActionExecute(Sender: TObject);'
      
        '    procedure ecCustomizeLexerPropertiesAction1ExecuteOK(Sender:' +
        ' TObject);'
      '  private'
      '    FFileName: string;'
      '    procedure OpenFile(const AFileName: string);'
      '    procedure SaveFile(const AFileName: string);'
      '    function CurrentMemo: TSyntaxMemo;'
      '    procedure LoadLanguages;'
      '    function GetLanguage: string;'
      '    procedure SetLanguage(const Value: string);'
      '    {$IFDEF USE_RX_LIB}'
      '  private'
      '    FormPlacement: TFormPlacement;'
      '    MRU: TMRUManager;'
      
        '    procedure MRUClick(Sender: TObject; const RecentName, Captio' +
        'n: String;'
      '      UserData: Integer);'
      '  public'
      '    constructor Create(AOwner: TComponent); override;'
      '    {$ENDIF}'
      '  published'
      
        '    property Language: string read GetLanguage write SetLanguage' +
        ';'
      '  end;'
      ''
      'var'
      '  SyntEditMain: TSyntEditMain;'
      ''
      'implementation'
      ''
      'uses ecEditorAbout, ecStrUtils;'
      ''
      '{$R *.dfm}'
      ''
      '{$IFDEF USE_RX_LIB}'
      'constructor TSyntEditMain.Create(AOwner: TComponent);'
      'begin'
      '  inherited;'
      '  FormPlacement := TFormPlacement.Create(Self);'
      '  FormPlacement.Name := '#39'FormPlacement'#39';'
      
        '  FormPlacement.IniFileName := ChangeFileExt(Application.ExeName' +
        ', '#39'.ini'#39');'
      '  FormPlacement.IniSection := '#39'MainForm'#39';'
      '  MRU := TMRUManager.Create(Self);'
      '  MRU.Name := '#39'MRU'#39';'
      '  MRU.AccelDelimiter := adSpace;'
      '  MRU.Capacity := 9;'
      '  MRU.RecentMenu := Reopen1;'
      '  MRU.OnClick := MRUClick;'
      '  MRU.IniStorage := FormPlacement;'
      '  Reopen1.Visible := True;'
      '  FormPlacement.RestoreFormPlacement;'
      'end;'
      ''
      
        'procedure TSyntEditMain.MRUClick(Sender: TObject; const RecentNa' +
        'me,'
      '  Caption: String; UserData: Integer);'
      'begin'
      '  OpenFile(RecentName);'
      'end;'
      '{$ENDIF}'
      ''
      'procedure TSyntEditMain.FormClose(Sender: TObject;'
      '  var Action: TCloseAction);'
      'begin'
      '  PropsManager1.SaveProps;'
      '  PropsManager2.SaveProps;'
      '{$IFDEF USE_RX_LIB}'
      '  FormPlacement.SaveFormPlacement;'
      '{$ENDIF}'
      
        '  SyntStyles1.SaveToFile(ChangeFileExt(Application.ExeName, '#39'.ec' +
        's'#39'));'
      
        '  SyntAutoReplace1.Items.SaveToFile(ChangeFileExt(Application.Ex' +
        'eName, '#39'.ari'#39'));'
      'end;'
      ''
      'procedure TSyntEditMain.FormShow(Sender: TObject);'
      'var s: string;'
      'begin'
      '  LoadLanguages;'
      '  PropsManager1.Add(SyntaxMemo2);'
      '  PropsManager1.LoadProps;'
      '  PropsManager1.UpdateAll;'
      '  PropsManager2.LoadProps;'
      '  s := ExtractFilePath(Application.ExeName) + '#39'LexLib.LXL'#39';'
      '  if FileExists(s) then'
      '   SyntaxManager1.LoadFromFile(s);'
      '  s := ChangeFileExt(Application.ExeName, '#39'.ecs'#39');'
      '  if FileExists(s) then'
      '   SyntStyles1.LoadFromFile(s);'
      '  s := ChangeFileExt(Application.ExeName, '#39'.ari'#39');'
      '  if FileExists(s) then'
      '   SyntAutoReplace1.Items.LoadFromFile(s);'
      '  if (ParamCount > 1) and SameText(ParamStr(2), '#39'r'#39') then'
      '   begin'
      '     SyntaxMemo1.ReadOnly := True;'
      '     SyntaxMemo2.ReadOnly := True;'
      '   end;'
      
        '  Caption := '#39'EControl syntax'#39' + {$IFDEF EC_UNICODE}'#39' (unicode)'#39 +
        ' + {$ENDIF}'#39' editor'#39';'
      '  if ParamCount > 0 then'
      '   OpenFile(ParamStr(1));'
      'end;'
      ''
      'procedure TSyntEditMain.SyntaxMemo1SetBookmark(Snder: TObject;'
      '  Bookmark: TBookmark; var Accept: Boolean);'
      'begin'
      '  with Bookmark do'
      '   if (BmIndex >= 0) and (BmIndex < 10) then'
      '    begin'
      '     ImageIndex := 13 + BmIndex;'
      '     Hint := '#39'Bookmark '#39' + IntToStr(BmIndex);'
      '    end;'
      'end;'
      ''
      'function TSyntEditMain.CurrentMemo: TSyntaxMemo;'
      'begin'
      '  if SyntaxMemo2.Visible and SyntaxMemo2.Focused then'
      '    Result := SyntaxMemo2'
      '  else'
      '    Result := SyntaxMemo1;'
      'end;'
      ''
      'procedure TSyntEditMain.UpdateStatusBar(Sender: TObject);'
      'begin'
      '  with CurrentMemo do'
      '   begin'
      
        '     SB.Panels[0].Text := Format('#39'  %d: %d'#39', [CaretPos.X, CaretP' +
        'os.Y]);'
      '     if Modified then  SB.Panels[1].Text := '#39'Modified'#39
      '                 else  SB.Panels[1].Text := '#39#39';'
      '     if ReplaceMode then SB.Panels[2].Text := '#39'Overwrite'#39
      '                    else SB.Panels[2].Text := '#39'Insert'#39';'
      '   end;'
      'end;'
      ''
      
        'procedure TSyntEditMain.SyntaxMemo1KeyDown(Sender: TObject; var ' +
        'Key: Word;'
      '  Shift: TShiftState);'
      'begin'
      '  if (Key = VK_ESCAPE) and SyntaxMemo1.ReadOnly then Close;'
      'end;'
      ''
      'procedure TSyntEditMain.actSaveUpdate(Sender: TObject);'
      'begin'
      '  actSave.Enabled := SyntaxMemo1.Modified;'
      'end;'
      ''
      'procedure TSyntEditMain.OpenFile(const AFileName: string);'
      'begin'
      '  SyntaxMemo1.LoadFromFile(AFileName);'
      '  FFileName := AFileName;'
      
        '  SyntTextSource1.SyntaxAnalyzer := SyntaxManager1.AnalyzerForFi' +
        'le(AFileName);'
      '  SyntaxManager1.CurrentLexer := SyntTextSource1.SyntaxAnalyzer;'
      
        '  Caption := '#39'EControl syntax'#39' + {$IFDEF EC_UNICODE}'#39' (unicode)'#39 +
        ' + {$ENDIF}'#39' editor ['#39' + FFileName + '#39']'#39';'
      '  Application.Title := ExtractFileName(FFileName);'
      '{$IFDEF USE_RX_LIB}'
      '  MRU.Add(AFileName, 0);'
      '{$ENDIF}'
      '  FormResize(Self);'
      'end;'
      ''
      'procedure TSyntEditMain.SaveFile(const AFileName: string);'
      'begin'
      '  if (SyntaxMemo1.Lines.TextCoding = tcAnsi) and'
      '     SyntaxMemo1.Lines.ContainUnicode and'
      
        '     (MessageBox(Handle, '#39'Text contains Unicode characters. Woul' +
        'd you like to save text in Unicode format?'#39','
      '      '#39'Warning'#39', MB_ICONWARNING or MB_YESNO) = IDYES) then'
      '    SyntaxMemo1.Lines.TextCoding := tcUnicode;'
      ''
      '// Test: saving in custom text coding'
      '  SyntaxMemo1.Lines.TextFormat := tfCR;'
      '  SyntaxMemo1.Lines.TextCoding := tcUTF8;'
      ''
      '  SyntaxMemo1.SaveToFile(AFileName);'
      '  SyntaxMemo2.Modified := False;'
      'end;'
      ''
      'procedure TSyntEditMain.actOpenExecute(Sender: TObject);'
      'begin'
      '  OD.Filter := SyntaxManager1.GetFilesFilter;'
      '  if OD.Execute then'
      '   OpenFile(OD.FileName);'
      'end;'
      ''
      'procedure TSyntEditMain.actSaveExecute(Sender: TObject);'
      'begin'
      '  if FFileName <> '#39#39' then'
      '    SaveFile(FFileName)'
      '  else actSaveAsExecute(nil);'
      'end;'
      ''
      'procedure TSyntEditMain.actSaveAsExecute(Sender: TObject);'
      'begin'
      '  SD.Filter := SyntaxManager1.GetFilesFilter;'
      '  SD.FileName := FFileName;'
      '  if SD.Execute then'
      '   begin'
      '    SaveFile(SD.FileName);'
      '    FFileName := SD.FileName;'
      '{$IFDEF USE_RX_LIB}'
      '    MRU.Add(FFileName, 0);'
      '{$ENDIF}'
      '   end;'
      'end;'
      ''
      'procedure TSyntEditMain.actNewFileExecute(Sender: TObject);'
      'begin'
      '  SyntaxMemo1.Clear;'
      '  SyntaxMemo1.Modified := False;'
      '  SyntaxMemo2.Modified := False;'
      '  FFileName := '#39#39';'
      'end;'
      ''
      'procedure TSyntEditMain.Bookmark91Click(Sender: TObject);'
      'begin'
      '  CurrentMemo.ToggleBookmark((Sender as TComponent).Tag);'
      'end;'
      ''
      'procedure TSyntEditMain.Bookmark92Click(Sender: TObject);'
      'begin'
      '  CurrentMemo.GotoBookmark((Sender as TComponent).Tag);'
      'end;'
      ''
      'procedure TSyntEditMain.PopupMenu1Popup(Sender: TObject);'
      'var i, j: integer;'
      'begin'
      '  for i := 0 to 9 do'
      '   for j := 1 to 2 do'
      
        '    (FindComponent('#39'Bookmark'#39'+IntToStr(i)+IntToStr(j)) as TMenuI' +
        'tem).Checked :='
      '      CurrentMemo.Bookmarks[i] <> -1;'
      'end;'
      ''
      'procedure TSyntEditMain.About1Click(Sender: TObject);'
      'begin'
      '  TForm1.Create(Self).ShowModal;'
      'end;'
      ''
      'procedure TSyntEditMain.FormCloseQuery(Sender: TObject;'
      '  var CanClose: Boolean);'
      'begin'
      '  if SyntaxMemo1.Modified then'
      
        '   case MessageDlg('#39'Save changes to '#39' + FFileName + '#39'?'#39', mtConfi' +
        'rmation, [mbYes, mbNo, mbCancel], 0) of'
      '    IDYES:  actSaveExecute(nil);'
      '    IDCANCEL: begin'
      '               CanClose := False;'
      '               Exit;'
      '              end;'
      '   end;'
      '  if SyntaxManager1.Modified then'
      
        '   case MessageDlg('#39'Save changes to LexLib.lxl?'#39', mtConfirmation' +
        ', [mbYes, mbNo, mbCancel], 0) of'
      
        '    IDYES:  SyntaxManager1.SaveToFile(ExtractFilePath(Applicatio' +
        'n.ExeName) + '#39'LexLib.LXL'#39');'
      '    IDCANCEL: begin'
      '               CanClose := False;'
      '               Exit;'
      '              end;'
      '   end;'
      'end;'
      ''
      'procedure TSyntEditMain.FormResize(Sender: TObject);'
      'begin'
      
        '  if not SyntaxTreeView1.Visible or (SyntaxTreeView1.Width = 0) ' +
        'then'
      '   begin'
      '    SyntaxTreeView1.Left := 0;'
      '    Splitter1.Left := 1;'
      '   end;'
      '  if not SyntaxMemo2.Visible or (SyntaxMemo2.Height = 0) then'
      '    SyntaxMemo2.Top := 0;'
      'end;'
      ''
      'procedure TSyntEditMain.SyntaxMemo1GetTokenHint(Sender: TObject;'
      '  TokenIndex: Integer; var HintText: String);'
      'begin'
      ' try'
      
        '// This example show how to get token information and use it for' +
        ' hint showing'
      '  with (Sender as TSyntaxMemo).SyntObj do'
      '   begin'
      
        '    HintText := '#39'Token:      '#39' + TagStr[TokenIndex] + sLineBreak' +
        ';'
      '    if Length(HintText) > 100 then HintText := '#39#39';'
      '    HintText := HintText +'
      
        '               '#39'Rule:       '#39' + Tags[TokenIndex].Rule.DisplayNam' +
        'e + sLineBreak +'
      
        '               '#39'Token pos:  '#39' + Format('#39'(X: %d; Y: %d)'#39', [Tags[T' +
        'okenIndex].TagPos.X + 1, Tags[TokenIndex].TagPos.Y + 1]);'
      '   end;'
      ' except'
      '  on E: Exception do'
      '   HintText := E.Message;'
      ' end;'
      'end;'
      ''
      
        'procedure TSyntEditMain.SyntaxMemo1IncSearchChange(Sender: TObje' +
        'ct;'
      '  State: TIncSearchState);'
      'begin'
      '  if State <> isStop then'
      
        '   SB.SimpleText := '#39'Search for: '#39' + (Sender as TSyntaxMemo).Inc' +
        'SearchStr'
      '  else'
      '   SB.SimpleText := '#39#39';'
      '  SB.SimplePanel := State <> isStop;'
      'end;'
      ''
      
        'procedure TSyntEditMain.SyntFindDialog1AfterExecute(Sender: TObj' +
        'ect);'
      'begin'
      
        '  SyntaxMemo1.IncSearchBack := ftBackward in SyntFindDialog1.Fla' +
        'gs;'
      
        '  SyntaxMemo1.IncSearchIgnoreCase := not (ftCaseSensitive in Syn' +
        'tFindDialog1.Flags);'
      '  SyntaxMemo2.IncSearchBack := SyntaxMemo1.IncSearchBack;'
      
        '  SyntaxMemo2.IncSearchIgnoreCase := SyntaxMemo1.IncSearchIgnore' +
        'Case;'
      'end;'
      ''
      
        'procedure TSyntEditMain.SyntaxManager1LexerChanged(Sender: TObje' +
        'ct);'
      'begin'
      '  SyntTextSource1.SyntaxAnalyzer := SyntaxManager1.CurrentLexer;'
      'end;'
      ''
      'procedure TSyntEditMain.SyntaxMemo1Enter(Sender: TObject);'
      'var Memo: TSyntaxMemo;'
      'begin'
      '  Memo := CurrentMemo;'
      '  ecSyntPrinter1.SyntMemo := Memo;'
      '  SyntAutoReplace1.SyntMemo := Memo;'
      '  TemplatePopup1.SyntMemo := Memo;'
      '  SyntFindDialog1.Control := Memo;'
      '  SyntReplaceDialog1.Control := Memo;'
      '  UserStylesCombo1.Editor := Memo;'
      '  if SyntaxTreeView1.AutoSynchronize then'
      '    SyntaxTreeView1.SyntaxMemo := Memo;'
      'end;'
      ''
      
        'procedure TSyntEditMain.ecCustomizeEditorOptionsAction1ExecuteOK' +
        '('
      '  Sender: TObject);'
      'begin'
      '  PropsManager1.UpdateAll;'
      'end;'
      ''
      
        'procedure TSyntEditMain.PrintSetupActionExecute(Sender: TObject)' +
        ';'
      'begin'
      '  PrinterSetupDialog1.Execute;'
      'end;'
      ''
      'procedure TSyntEditMain.FileExitActionExecute(Sender: TObject);'
      'begin'
      '  Close;'
      'end;'
      ''
      '// Loads *.lng files'
      'procedure TSyntEditMain.LoadLanguages;'
      'var F: TSearchRec;'
      '    R: integer;'
      '    Dir, S: string;'
      '    loc: TecLocalizer;'
      '    mi: TMenuItem;'
      'begin'
      ' {$IFDEF WIN32}'
      '  Dir := ExtractFileDir(Application.ExeName);'
      '  try'
      '    R := FindFirst(Dir + '#39'\*.lng'#39', faAnyFile, F);'
      '    while R = 0 do'
      '     begin'
      '       S := ExtractFileName(F.Name);'
      '       R := Pos('#39'.'#39', S);'
      '       if R > 1 then S := Copy(S, 1, R - 1);'
      '       loc := TecLocalizer.Create(Self);'
      '       loc.Enabled := False;'
      '       loc.Properties.LoadFromFile(Dir + '#39'\'#39' + F.Name);'
      '       if loc.Properties.Count > 0 then'
      '        try'
      '         loc.Charset := StrToInt(loc.Properties[0]);'
      '        except'
      '        end;'
      '       mi := TMenuItem.Create(Self);'
      '       mi.Caption := '#39'&'#39' + S;'
      '       mi.RadioItem := True;'
      '       mi.Tag := integer(loc);'
      '       mi.OnClick := LocalizeClick;'
      '       Language1.Add(mi);'
      ''
      '       R := FindNext(F);'
      '     end;'
      '  finally'
      '    FindClose(F);'
      '  end;'
      ' {$ENDIF}'
      'end;'
      ''
      'procedure TSyntEditMain.LocalizeClick(Sender: TObject);'
      'var i: integer;'
      'begin'
      '  for i := 0 to Language1.Count - 1 do'
      '   with TecLocalizer(Language1.Items[i].Tag) do'
      '    begin'
      '     Enabled := Sender = Language1.Items[i];'
      '     if Enabled then'
      '      begin'
      '       LocalizeObject(Self);'
      '       Language1.Items[i].Checked := True;'
      '      end;'
      '    end;'
      'end;'
      ''
      
        'procedure TSyntEditMain.ecCustomizeLexerPropertiesAction1Execute' +
        'OK('
      '  Sender: TObject);'
      'begin'
      '  SyntaxManager1.Modified := True;'
      'end;'
      ''
      'function TSyntEditMain.GetLanguage: string;'
      'var i: integer;'
      'begin'
      '  for i := 0 to Language1.Count - 1 do'
      '   with Language1.Items[i] do'
      '    if Checked then'
      '     begin'
      '      Result := Caption;'
      '      Exit;'
      '     end;'
      '  Result := '#39#39';'
      'end;'
      ''
      'procedure TSyntEditMain.SetLanguage(const Value: string);'
      'var i: integer;'
      'begin'
      '  for i := 0 to Language1.Count - 1 do'
      '   with Language1.Items[i] do'
      '    if SameText(Caption, Value) then'
      '     begin'
      '      LocalizeClick(Language1.Items[i]);'
      '      Exit;'
      '     end;'
      '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>
    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
    OnAfterLineDraw = SyntaxMemo1AfterLineDraw
  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
        BorderTypeLeft = blDot
        BorderColorLeft = clMaroon
        BorderTypeTop = blDot
        BorderColorTop = clMaroon
        BorderTypeRight = blDot
        BorderColorRight = clMaroon
        BorderTypeBottom = blDot
        BorderColorBottom = clMaroon
      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
        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
      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
        CollapseFmt = '%s0 ...'
        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
        CollapseFmt = 'ASM'
        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
        CollapseFmt = '%s0'
        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
        CollapseFmt = 'repeat ...'
        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
        CollapseFmt = '%s0 %s-1'
        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
        CollapseFmt = '%s1 %s3'
        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
        CollapseFmt = '%s1 %s3'
        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
        CollapseFmt = '%s-1 %s1'
        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
        CollapseFmt = '%s4 %s6'
        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
        CollapseFmt = '{ ... }'
        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
        CollapseFmt = 'Interface section'
        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
        CollapseFmt = 'Implementation section'
        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
        CollapseFmt = '%s0 %s-1'
        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
        CollapseFmt = '%s2 %s1'
        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'
        Highlight = True
        NameFmt = '%s-1'
        GroupFmt = 'class %s1'
        DynHighlight = dhRange
        HighlightPos = cpRange
        CollapseFmt = '%s2 %s1%s0%s-1'
        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
        CollapseFmt = '%s0'
        IgnoreAsParent = False
      end>
    CodeTemplates = <
      item
        Name = 'be'
        Description = 'begin end'
        Code.Strings = (
          'begin'
          '  <caret>'
          '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 = 84
    Top = 120
  end
  object ImageList1: TImageList
    Left = 124
    Top = 120
    Bitmap = {
      [encoded data, 8768 characters]
      000000000000}
  end
end
