309
303
pF := PIdentFuncTableFunc(@fIdentFuncTable);
310
304
for I := Low(fIdentFuncTable) to High(fIdentFuncTable) do begin
311
pF^ := {$IFDEF FPC}@{$ENDIF}AltFunc;
314
fIdentFuncTable[17] := {$IFDEF FPC}@{$ENDIF}Func17;
315
fIdentFuncTable[21] := {$IFDEF FPC}@{$ENDIF}Func21;
316
fIdentFuncTable[32] := {$IFDEF FPC}@{$ENDIF}Func32;
317
fIdentFuncTable[34] := {$IFDEF FPC}@{$ENDIF}Func34;
318
fIdentFuncTable[36] := {$IFDEF FPC}@{$ENDIF}Func36;
319
fIdentFuncTable[40] := {$IFDEF FPC}@{$ENDIF}Func40;
320
fIdentFuncTable[42] := {$IFDEF FPC}@{$ENDIF}Func42;
321
fIdentFuncTable[45] := {$IFDEF FPC}@{$ENDIF}Func45;
322
fIdentFuncTable[46] := {$IFDEF FPC}@{$ENDIF}Func46;
323
fIdentFuncTable[48] := {$IFDEF FPC}@{$ENDIF}Func48;
324
fIdentFuncTable[52] := {$IFDEF FPC}@{$ENDIF}Func52;
325
fIdentFuncTable[54] := {$IFDEF FPC}@{$ENDIF}Func54;
326
fIdentFuncTable[57] := {$IFDEF FPC}@{$ENDIF}Func57;
327
fIdentFuncTable[58] := {$IFDEF FPC}@{$ENDIF}Func58;
328
fIdentFuncTable[59] := {$IFDEF FPC}@{$ENDIF}Func59;
329
fIdentFuncTable[60] := {$IFDEF FPC}@{$ENDIF}Func60;
330
fIdentFuncTable[61] := {$IFDEF FPC}@{$ENDIF}Func61;
331
fIdentFuncTable[62] := {$IFDEF FPC}@{$ENDIF}Func62;
332
fIdentFuncTable[64] := {$IFDEF FPC}@{$ENDIF}Func64;
333
fIdentFuncTable[65] := {$IFDEF FPC}@{$ENDIF}Func65;
334
fIdentFuncTable[66] := {$IFDEF FPC}@{$ENDIF}Func66;
335
fIdentFuncTable[67] := {$IFDEF FPC}@{$ENDIF}Func67;
336
fIdentFuncTable[68] := {$IFDEF FPC}@{$ENDIF}Func68;
337
fIdentFuncTable[69] := {$IFDEF FPC}@{$ENDIF}Func69;
338
fIdentFuncTable[71] := {$IFDEF FPC}@{$ENDIF}Func71;
339
fIdentFuncTable[74] := {$IFDEF FPC}@{$ENDIF}Func74;
340
fIdentFuncTable[75] := {$IFDEF FPC}@{$ENDIF}Func75;
341
fIdentFuncTable[76] := {$IFDEF FPC}@{$ENDIF}Func76;
342
fIdentFuncTable[78] := {$IFDEF FPC}@{$ENDIF}Func78;
343
fIdentFuncTable[79] := {$IFDEF FPC}@{$ENDIF}Func79;
344
fIdentFuncTable[81] := {$IFDEF FPC}@{$ENDIF}Func81;
345
fIdentFuncTable[82] := {$IFDEF FPC}@{$ENDIF}Func82;
346
fIdentFuncTable[85] := {$IFDEF FPC}@{$ENDIF}Func85;
347
fIdentFuncTable[86] := {$IFDEF FPC}@{$ENDIF}Func86;
348
fIdentFuncTable[88] := {$IFDEF FPC}@{$ENDIF}Func88;
349
fIdentFuncTable[89] := {$IFDEF FPC}@{$ENDIF}Func89;
350
fIdentFuncTable[92] := {$IFDEF FPC}@{$ENDIF}Func92;
351
fIdentFuncTable[97] := {$IFDEF FPC}@{$ENDIF}Func97;
352
fIdentFuncTable[98] := {$IFDEF FPC}@{$ENDIF}Func98;
353
fIdentFuncTable[100] := {$IFDEF FPC}@{$ENDIF}Func100;
354
fIdentFuncTable[101] := {$IFDEF FPC}@{$ENDIF}Func101;
355
fIdentFuncTable[102] := {$IFDEF FPC}@{$ENDIF}Func102;
356
fIdentFuncTable[104] := {$IFDEF FPC}@{$ENDIF}Func104;
357
fIdentFuncTable[105] := {$IFDEF FPC}@{$ENDIF}Func105;
358
fIdentFuncTable[106] := {$IFDEF FPC}@{$ENDIF}Func106;
359
fIdentFuncTable[107] := {$IFDEF FPC}@{$ENDIF}Func107;
360
fIdentFuncTable[109] := {$IFDEF FPC}@{$ENDIF}Func109;
361
fIdentFuncTable[110] := {$IFDEF FPC}@{$ENDIF}Func110;
362
fIdentFuncTable[115] := {$IFDEF FPC}@{$ENDIF}Func115;
363
fIdentFuncTable[116] := {$IFDEF FPC}@{$ENDIF}Func116;
364
fIdentFuncTable[123] := {$IFDEF FPC}@{$ENDIF}Func123;
365
fIdentFuncTable[125] := {$IFDEF FPC}@{$ENDIF}Func125;
366
fIdentFuncTable[141] := {$IFDEF FPC}@{$ENDIF}Func141;
367
fIdentFuncTable[206] := {$IFDEF FPC}@{$ENDIF}Func206;
308
fIdentFuncTable[17] := @Func17;
309
fIdentFuncTable[21] := @Func21;
310
fIdentFuncTable[32] := @Func32;
311
fIdentFuncTable[34] := @Func34;
312
fIdentFuncTable[36] := @Func36;
313
fIdentFuncTable[40] := @Func40;
314
fIdentFuncTable[42] := @Func42;
315
fIdentFuncTable[45] := @Func45;
316
fIdentFuncTable[46] := @Func46;
317
fIdentFuncTable[48] := @Func48;
318
fIdentFuncTable[52] := @Func52;
319
fIdentFuncTable[54] := @Func54;
320
fIdentFuncTable[57] := @Func57;
321
fIdentFuncTable[58] := @Func58;
322
fIdentFuncTable[59] := @Func59;
323
fIdentFuncTable[60] := @Func60;
324
fIdentFuncTable[61] := @Func61;
325
fIdentFuncTable[62] := @Func62;
326
fIdentFuncTable[64] := @Func64;
327
fIdentFuncTable[65] := @Func65;
328
fIdentFuncTable[66] := @Func66;
329
fIdentFuncTable[67] := @Func67;
330
fIdentFuncTable[68] := @Func68;
331
fIdentFuncTable[69] := @Func69;
332
fIdentFuncTable[71] := @Func71;
333
fIdentFuncTable[74] := @Func74;
334
fIdentFuncTable[75] := @Func75;
335
fIdentFuncTable[76] := @Func76;
336
fIdentFuncTable[78] := @Func78;
337
fIdentFuncTable[79] := @Func79;
338
fIdentFuncTable[81] := @Func81;
339
fIdentFuncTable[82] := @Func82;
340
fIdentFuncTable[85] := @Func85;
341
fIdentFuncTable[86] := @Func86;
342
fIdentFuncTable[88] := @Func88;
343
fIdentFuncTable[89] := @Func89;
344
fIdentFuncTable[92] := @Func92;
345
fIdentFuncTable[97] := @Func97;
346
fIdentFuncTable[98] := @Func98;
347
fIdentFuncTable[100] := @Func100;
348
fIdentFuncTable[101] := @Func101;
349
fIdentFuncTable[102] := @Func102;
350
fIdentFuncTable[104] := @Func104;
351
fIdentFuncTable[105] := @Func105;
352
fIdentFuncTable[106] := @Func106;
353
fIdentFuncTable[107] := @Func107;
354
fIdentFuncTable[109] := @Func109;
355
fIdentFuncTable[110] := @Func110;
356
fIdentFuncTable[115] := @Func115;
357
fIdentFuncTable[116] := @Func116;
358
fIdentFuncTable[123] := @Func123;
359
fIdentFuncTable[125] := @Func125;
360
fIdentFuncTable[141] := @Func141;
361
fIdentFuncTable[206] := @Func206;
370
364
function TSynCppSyn.KeyHash(ToHash: PChar): Integer;
737
731
for I := #0 to #255 do
739
'&': fProcTable[I] := {$IFDEF FPC}@{$ENDIF}AndSymbolProc;
740
#39: fProcTable[I] := {$IFDEF FPC}@{$ENDIF}AsciiCharProc;
741
'@': fProcTable[I] := {$IFDEF FPC}@{$ENDIF}AtSymbolProc;
742
'}': fProcTable[I] := {$IFDEF FPC}@{$ENDIF}BraceCloseProc;
743
'{': fProcTable[I] := {$IFDEF FPC}@{$ENDIF}BraceOpenProc;
744
#13: fProcTable[I] := {$IFDEF FPC}@{$ENDIF}CRProc;
745
':': fProcTable[I] := {$IFDEF FPC}@{$ENDIF}ColonProc;
746
',': fProcTable[I] := {$IFDEF FPC}@{$ENDIF}CommaProc;
747
'#': fProcTable[I] := {$IFDEF FPC}@{$ENDIF}DirectiveProc;
748
'=': fProcTable[I] := {$IFDEF FPC}@{$ENDIF}EqualProc;
749
'>': fProcTable[I] := {$IFDEF FPC}@{$ENDIF}GreaterProc;
750
'?': fProcTable[I] := {$IFDEF FPC}@{$ENDIF}QuestionProc;
751
'A'..'Z', 'a'..'z', '_': fProcTable[I] := {$IFDEF FPC}@{$ENDIF}IdentProc;
752
#10: fProcTable[I] := {$IFDEF FPC}@{$ENDIF}LFProc;
753
'<': fProcTable[I] := {$IFDEF FPC}@{$ENDIF}LowerProc;
754
'-': fProcTable[I] := {$IFDEF FPC}@{$ENDIF}MinusProc;
755
'%': fProcTable[I] := {$IFDEF FPC}@{$ENDIF}ModSymbolProc;
756
'!': fProcTable[I] := {$IFDEF FPC}@{$ENDIF}NotSymbolProc;
757
#0: fProcTable[I] := {$IFDEF FPC}@{$ENDIF}NullProc;
758
'0'..'9': fProcTable[I] := {$IFDEF FPC}@{$ENDIF}NumberProc;
759
'|': fProcTable[I] := {$IFDEF FPC}@{$ENDIF}OrSymbolProc;
760
'+': fProcTable[I] := {$IFDEF FPC}@{$ENDIF}PlusProc;
761
'.': fProcTable[I] := {$IFDEF FPC}@{$ENDIF}PointProc;
762
')': fProcTable[I] := {$IFDEF FPC}@{$ENDIF}RoundCloseProc;
763
'(': fProcTable[I] := {$IFDEF FPC}@{$ENDIF}RoundOpenProc;
764
';': fProcTable[I] := {$IFDEF FPC}@{$ENDIF}SemiColonProc;
765
'/': fProcTable[I] := {$IFDEF FPC}@{$ENDIF}SlashProc;
766
#1..#9, #11, #12, #14..#32: fProcTable[I] := {$IFDEF FPC}@{$ENDIF}SpaceProc;
767
']': fProcTable[I] := {$IFDEF FPC}@{$ENDIF}SquareCloseProc;
768
'[': fProcTable[I] := {$IFDEF FPC}@{$ENDIF}SquareOpenProc;
769
'*': fProcTable[I] := {$IFDEF FPC}@{$ENDIF}StarProc;
770
#34: fProcTable[I] := {$IFDEF FPC}@{$ENDIF}StringProc;
771
'~': fProcTable[I] := {$IFDEF FPC}@{$ENDIF}TildeProc;
772
'^': fProcTable[I] := {$IFDEF FPC}@{$ENDIF}XOrSymbolProc;
773
else fProcTable[I] := {$IFDEF FPC}@{$ENDIF}UnknownProc;
733
'&': fProcTable[I] := @AndSymbolProc;
734
#39: fProcTable[I] := @AsciiCharProc;
735
'@': fProcTable[I] := @AtSymbolProc;
736
'}': fProcTable[I] := @BraceCloseProc;
737
'{': fProcTable[I] := @BraceOpenProc;
738
#13: fProcTable[I] := @CRProc;
739
':': fProcTable[I] := @ColonProc;
740
',': fProcTable[I] := @CommaProc;
741
'#': fProcTable[I] := @DirectiveProc;
742
'=': fProcTable[I] := @EqualProc;
743
'>': fProcTable[I] := @GreaterProc;
744
'?': fProcTable[I] := @QuestionProc;
745
'A'..'Z', 'a'..'z', '_': fProcTable[I] := @IdentProc;
746
#10: fProcTable[I] := @LFProc;
747
'<': fProcTable[I] := @LowerProc;
748
'-': fProcTable[I] := @MinusProc;
749
'%': fProcTable[I] := @ModSymbolProc;
750
'!': fProcTable[I] := @NotSymbolProc;
751
#0: fProcTable[I] := @NullProc;
752
'0'..'9': fProcTable[I] := @NumberProc;
753
'|': fProcTable[I] := @OrSymbolProc;
754
'+': fProcTable[I] := @PlusProc;
755
'.': fProcTable[I] := @PointProc;
756
')': fProcTable[I] := @RoundCloseProc;
757
'(': fProcTable[I] := @RoundOpenProc;
758
';': fProcTable[I] := @SemiColonProc;
759
'/': fProcTable[I] := @SlashProc;
760
#1..#9, #11, #12, #14..#32: fProcTable[I] := @SpaceProc;
761
']': fProcTable[I] := @SquareCloseProc;
762
'[': fProcTable[I] := @SquareOpenProc;
763
'*': fProcTable[I] := @StarProc;
764
#34: fProcTable[I] := @StringProc;
765
'~': fProcTable[I] := @TildeProc;
766
'^': fProcTable[I] := @XOrSymbolProc;
767
else fProcTable[I] := @UnknownProc;
777
771
constructor TSynCppSyn.Create(AOwner: TComponent);
779
773
inherited Create(AOwner);
780
fAsmAttri := TSynHighlighterAttributes.Create(SYNS_AttrAssembler, SYNS_XML_AttrAssembler);
774
fAsmAttri := TSynHighlighterAttributes.Create(@SYNS_AttrAssembler, SYNS_XML_AttrAssembler);
781
775
AddAttribute(fAsmAttri);
782
fCommentAttri := TSynHighlighterAttributes.Create(SYNS_AttrComment, SYNS_XML_AttrComment);
776
fCommentAttri := TSynHighlighterAttributes.Create(@SYNS_AttrComment, SYNS_XML_AttrComment);
783
777
fCommentAttri.Style:= [fsItalic];
784
778
AddAttribute(fCommentAttri);
785
fIdentifierAttri := TSynHighlighterAttributes.Create(SYNS_AttrIdentifier, SYNS_XML_AttrIdentifier);
779
fIdentifierAttri := TSynHighlighterAttributes.Create(@SYNS_AttrIdentifier, SYNS_XML_AttrIdentifier);
786
780
AddAttribute(fIdentifierAttri);
787
fInvalidAttri := TSynHighlighterAttributes.Create(SYNS_AttrIllegalChar, SYNS_XML_AttrIllegalChar);
781
fInvalidAttri := TSynHighlighterAttributes.Create(@SYNS_AttrIllegalChar, SYNS_XML_AttrIllegalChar);
788
782
AddAttribute(fInvalidAttri);
789
fKeyAttri := TSynHighlighterAttributes.Create(SYNS_AttrReservedWord, SYNS_XML_AttrReservedWord);
783
fKeyAttri := TSynHighlighterAttributes.Create(@SYNS_AttrReservedWord, SYNS_XML_AttrReservedWord);
790
784
fKeyAttri.Style:= [fsBold];
791
785
AddAttribute(fKeyAttri);
792
fNumberAttri := TSynHighlighterAttributes.Create(SYNS_AttrNumber, SYNS_XML_AttrNumber);
786
fNumberAttri := TSynHighlighterAttributes.Create(@SYNS_AttrNumber, SYNS_XML_AttrNumber);
793
787
AddAttribute(fNumberAttri);
794
fSpaceAttri := TSynHighlighterAttributes.Create(SYNS_AttrSpace, SYNS_XML_AttrSpace);
788
fSpaceAttri := TSynHighlighterAttributes.Create(@SYNS_AttrSpace, SYNS_XML_AttrSpace);
795
789
fSpaceAttri.Foreground := clWindow;
796
790
AddAttribute(fSpaceAttri);
797
fStringAttri := TSynHighlighterAttributes.Create(SYNS_AttrString, SYNS_XML_AttrString);
791
fStringAttri := TSynHighlighterAttributes.Create(@SYNS_AttrString, SYNS_XML_AttrString);
798
792
AddAttribute(fStringAttri);
799
fSymbolAttri := TSynHighlighterAttributes.Create(SYNS_AttrSymbol, SYNS_XML_AttrSymbol);
793
fSymbolAttri := TSynHighlighterAttributes.Create(@SYNS_AttrSymbol, SYNS_XML_AttrSymbol);
800
794
AddAttribute(fSymbolAttri);
801
fDirecAttri := TSynHighlighterAttributes.Create(SYNS_AttrPreprocessor, SYNS_XML_AttrPreprocessor);
795
fDirecAttri := TSynHighlighterAttributes.Create(@SYNS_AttrPreprocessor, SYNS_XML_AttrPreprocessor);
802
796
AddAttribute(fDirecAttri);
803
SetAttributesOnChange({$IFDEF FPC}@{$ENDIF}DefHighlightChange);
797
SetAttributesOnChange(@DefHighlightChange);
805
799
MakeMethodTables;
806
800
fRange := rsUnknown;
1614
1604
EnumUserSettings(s);
1615
1605
if settingIndex >= s.Count then Result := false
1617
tmpStringAttri := TSynHighlighterAttributes.Create('');
1618
tmpNumberAttri := TSynHighlighterAttributes.Create('');
1619
tmpKeyAttri := TSynHighlighterAttributes.Create('');
1620
tmpSymbolAttri := TSynHighlighterAttributes.Create('');
1621
tmpAsmAttri := TSynHighlighterAttributes.Create('');
1622
tmpCommentAttri := TSynHighlighterAttributes.Create('');
1623
tmpIdentifierAttri:= TSynHighlighterAttributes.Create('');
1624
tmpInvalidAttri := TSynHighlighterAttributes.Create('');
1625
tmpSpaceAttri := TSynHighlighterAttributes.Create('');
1626
tmpDirecAttri := TSynHighlighterAttributes.Create('');
1607
tmpStringAttri := TSynHighlighterAttributes.Create(nil);
1608
tmpNumberAttri := TSynHighlighterAttributes.Create(nil);
1609
tmpKeyAttri := TSynHighlighterAttributes.Create(nil);
1610
tmpSymbolAttri := TSynHighlighterAttributes.Create(nil);
1611
tmpAsmAttri := TSynHighlighterAttributes.Create(nil);
1612
tmpCommentAttri := TSynHighlighterAttributes.Create(nil);
1613
tmpIdentifierAttri:= TSynHighlighterAttributes.Create(nil);
1614
tmpInvalidAttri := TSynHighlighterAttributes.Create(nil);
1615
tmpSpaceAttri := TSynHighlighterAttributes.Create(nil);
1616
tmpDirecAttri := TSynHighlighterAttributes.Create(nil);
1627
1617
tmpStringAttri .Assign(fStringAttri);
1628
1618
tmpNumberAttri .Assign(fNumberAttri);
1629
1619
tmpKeyAttri .Assign(fKeyAttri);