📄 synhighlighterperl.pas
字号:
SynEditStrConst;
{$ENDIF}
var
Identifiers: array[#0..#255] of ByteBool;
mHashTable: array[#0..#255] of Integer;
procedure MakeIdentTable;
var
I: Char;
begin
for I := #0 to #255 do
begin
Case I of
'_', '0'..'9', 'a'..'z', 'A'..'Z': Identifiers[I] := True;
else Identifiers[I] := False;
end;
Case I in['%', '@', '$', '_', 'a'..'z', 'A'..'Z'] of
True:
begin
if (I > #64) and (I < #91) then mHashTable[I] := Ord(I) - 64 else
if (I > #96) then mHashTable[I] := Ord(I) - 95;
end;
else mHashTable[I] := 0;
end;
end;
end;
procedure TSynPerlSyn.InitIdent;
var
I: Integer;
begin
for I := 0 to 2167 do
Case I of
109: fIdentFuncTable[I] := Func109;
113: fIdentFuncTable[I] := Func113;
196: fIdentFuncTable[I] := Func196;
201: fIdentFuncTable[I] := Func201;
204: fIdentFuncTable[I] := Func204;
207: fIdentFuncTable[I] := Func207;
209: fIdentFuncTable[I] := Func209;
211: fIdentFuncTable[I] := Func211;
214: fIdentFuncTable[I] := Func214;
216: fIdentFuncTable[I] := Func216;
219: fIdentFuncTable[I] := Func219;
221: fIdentFuncTable[I] := Func221;
224: fIdentFuncTable[I] := Func224;
225: fIdentFuncTable[I] := Func225;
226: fIdentFuncTable[I] := Func226;
230: fIdentFuncTable[I] := Func230;
232: fIdentFuncTable[I] := Func232;
233: fIdentFuncTable[I] := Func233;
248: fIdentFuncTable[I] := Func248;
254: fIdentFuncTable[I] := Func254;
255: fIdentFuncTable[I] := Func255;
257: fIdentFuncTable[I] := Func257;
262: fIdentFuncTable[I] := Func262;
263: fIdentFuncTable[I] := Func263;
269: fIdentFuncTable[I] := Func269;
280: fIdentFuncTable[I] := Func280;
282: fIdentFuncTable[I] := Func282;
306: fIdentFuncTable[I] := Func306;
307: fIdentFuncTable[I] := Func307;
310: fIdentFuncTable[I] := Func310;
314: fIdentFuncTable[I] := Func314;
317: fIdentFuncTable[I] := Func317;
318: fIdentFuncTable[I] := Func318;
320: fIdentFuncTable[I] := Func320;
322: fIdentFuncTable[I] := Func322;
325: fIdentFuncTable[I] := Func325;
326: fIdentFuncTable[I] := Func326;
327: fIdentFuncTable[I] := Func327;
330: fIdentFuncTable[I] := Func330;
331: fIdentFuncTable[I] := Func331;
333: fIdentFuncTable[I] := Func333;
335: fIdentFuncTable[I] := Func335;
337: fIdentFuncTable[I] := Func337;
338: fIdentFuncTable[I] := Func338;
340: fIdentFuncTable[I] := Func340;
345: fIdentFuncTable[I] := Func345;
346: fIdentFuncTable[I] := Func346;
368: fIdentFuncTable[I] := Func368;
401: fIdentFuncTable[I] := Func401;
412: fIdentFuncTable[I] := Func412;
413: fIdentFuncTable[I] := Func413;
415: fIdentFuncTable[I] := Func415;
419: fIdentFuncTable[I] := Func419;
420: fIdentFuncTable[I] := Func420;
421: fIdentFuncTable[I] := Func421;
424: fIdentFuncTable[I] := Func424;
425: fIdentFuncTable[I] := Func425;
426: fIdentFuncTable[I] := Func426;
428: fIdentFuncTable[I] := Func428;
430: fIdentFuncTable[I] := Func430;
431: fIdentFuncTable[I] := Func431;
432: fIdentFuncTable[I] := Func432;
433: fIdentFuncTable[I] := Func433;
434: fIdentFuncTable[I] := Func434;
436: fIdentFuncTable[I] := Func436;
437: fIdentFuncTable[I] := Func437;
438: fIdentFuncTable[I] := Func438;
439: fIdentFuncTable[I] := Func439;
440: fIdentFuncTable[I] := Func440;
441: fIdentFuncTable[I] := Func441;
442: fIdentFuncTable[I] := Func442;
444: fIdentFuncTable[I] := Func444;
445: fIdentFuncTable[I] := Func445;
447: fIdentFuncTable[I] := Func447;
448: fIdentFuncTable[I] := Func448;
456: fIdentFuncTable[I] := Func456;
458: fIdentFuncTable[I] := Func458;
470: fIdentFuncTable[I] := Func470;
477: fIdentFuncTable[I] := Func477;
502: fIdentFuncTable[I] := Func502;
522: fIdentFuncTable[I] := Func522;
523: fIdentFuncTable[I] := Func523;
525: fIdentFuncTable[I] := Func525;
527: fIdentFuncTable[I] := Func527;
530: fIdentFuncTable[I] := Func530;
531: fIdentFuncTable[I] := Func531;
534: fIdentFuncTable[I] := Func534;
535: fIdentFuncTable[I] := Func535;
536: fIdentFuncTable[I] := Func536;
537: fIdentFuncTable[I] := Func537;
539: fIdentFuncTable[I] := Func539;
542: fIdentFuncTable[I] := Func542;
543: fIdentFuncTable[I] := Func543;
545: fIdentFuncTable[I] := Func545;
546: fIdentFuncTable[I] := Func546;
547: fIdentFuncTable[I] := Func547;
548: fIdentFuncTable[I] := Func548;
549: fIdentFuncTable[I] := Func549;
552: fIdentFuncTable[I] := Func552;
555: fIdentFuncTable[I] := Func555;
556: fIdentFuncTable[I] := Func556;
557: fIdentFuncTable[I] := Func557;
562: fIdentFuncTable[I] := Func562;
569: fIdentFuncTable[I] := Func569;
570: fIdentFuncTable[I] := Func570;
622: fIdentFuncTable[I] := Func622;
624: fIdentFuncTable[I] := Func624;
627: fIdentFuncTable[I] := Func627;
630: fIdentFuncTable[I] := Func630;
632: fIdentFuncTable[I] := Func632;
637: fIdentFuncTable[I] := Func637;
640: fIdentFuncTable[I] := Func640;
642: fIdentFuncTable[I] := Func642;
643: fIdentFuncTable[I] := Func643;
645: fIdentFuncTable[I] := Func645;
647: fIdentFuncTable[I] := Func647;
648: fIdentFuncTable[I] := Func648;
649: fIdentFuncTable[I] := Func649;
650: fIdentFuncTable[I] := Func650;
651: fIdentFuncTable[I] := Func651;
652: fIdentFuncTable[I] := Func652;
655: fIdentFuncTable[I] := Func655;
656: fIdentFuncTable[I] := Func656;
657: fIdentFuncTable[I] := Func657;
658: fIdentFuncTable[I] := Func658;
665: fIdentFuncTable[I] := Func665;
666: fIdentFuncTable[I] := Func666;
667: fIdentFuncTable[I] := Func667;
672: fIdentFuncTable[I] := Func672;
675: fIdentFuncTable[I] := Func675;
677: fIdentFuncTable[I] := Func677;
687: fIdentFuncTable[I] := Func687;
688: fIdentFuncTable[I] := Func688;
716: fIdentFuncTable[I] := Func716;
719: fIdentFuncTable[I] := Func719;
727: fIdentFuncTable[I] := Func727;
728: fIdentFuncTable[I] := Func728;
731: fIdentFuncTable[I] := Func731;
734: fIdentFuncTable[I] := Func734;
740: fIdentFuncTable[I] := Func740;
741: fIdentFuncTable[I] := Func741;
743: fIdentFuncTable[I] := Func743;
746: fIdentFuncTable[I] := Func746;
749: fIdentFuncTable[I] := Func749;
750: fIdentFuncTable[I] := Func750;
752: fIdentFuncTable[I] := Func752;
753: fIdentFuncTable[I] := Func753;
754: fIdentFuncTable[I] := Func754;
759: fIdentFuncTable[I] := Func759;
761: fIdentFuncTable[I] := Func761;
762: fIdentFuncTable[I] := Func762;
763: fIdentFuncTable[I] := Func763;
764: fIdentFuncTable[I] := Func764;
765: fIdentFuncTable[I] := Func765;
768: fIdentFuncTable[I] := Func768;
769: fIdentFuncTable[I] := Func769;
773: fIdentFuncTable[I] := Func773;
774: fIdentFuncTable[I] := Func774;
775: fIdentFuncTable[I] := Func775;
815: fIdentFuncTable[I] := Func815;
821: fIdentFuncTable[I] := Func821;
841: fIdentFuncTable[I] := Func841;
842: fIdentFuncTable[I] := Func842;
845: fIdentFuncTable[I] := Func845;
853: fIdentFuncTable[I] := Func853;
855: fIdentFuncTable[I] := Func855;
857: fIdentFuncTable[I] := Func857;
860: fIdentFuncTable[I] := Func860;
864: fIdentFuncTable[I] := Func864;
867: fIdentFuncTable[I] := Func867;
868: fIdentFuncTable[I] := Func868;
869: fIdentFuncTable[I] := Func869;
870: fIdentFuncTable[I] := Func870;
873: fIdentFuncTable[I] := Func873;
874: fIdentFuncTable[I] := Func874;
876: fIdentFuncTable[I] := Func876;
877: fIdentFuncTable[I] := Func877;
878: fIdentFuncTable[I] := Func878;
881: fIdentFuncTable[I] := Func881;
883: fIdentFuncTable[I] := Func883;
890: fIdentFuncTable[I] := Func890;
892: fIdentFuncTable[I] := Func892;
906: fIdentFuncTable[I] := Func906;
933: fIdentFuncTable[I] := Func933;
954: fIdentFuncTable[I] := Func954;
956: fIdentFuncTable[I] := Func956;
965: fIdentFuncTable[I] := Func965;
968: fIdentFuncTable[I] := Func968;
974: fIdentFuncTable[I] := Func974;
978: fIdentFuncTable[I] := Func978;
981: fIdentFuncTable[I] := Func981;
985: fIdentFuncTable[I] := Func985;
986: fIdentFuncTable[I] := Func986;
988: fIdentFuncTable[I] := Func988;
1056: fIdentFuncTable[I] := Func1056;
1077: fIdentFuncTable[I] := Func1077;
1079: fIdentFuncTable[I] := Func1079;
1084: fIdentFuncTable[I] := Func1084;
1086: fIdentFuncTable[I] := Func1086;
1091: fIdentFuncTable[I] := Func1091;
1093: fIdentFuncTable[I] := Func1093;
1095: fIdentFuncTable[I] := Func1095;
1103: fIdentFuncTable[I] := Func1103;
1105: fIdentFuncTable[I] := Func1105;
1107: fIdentFuncTable[I] := Func1107;
1136: fIdentFuncTable[I] := Func1136;
1158: fIdentFuncTable[I] := Func1158;
1165: fIdentFuncTable[I] := Func1165;
1169: fIdentFuncTable[I] := Func1169;
1172: fIdentFuncTable[I] := Func1172;
1176: fIdentFuncTable[I] := Func1176;
1202: fIdentFuncTable[I] := Func1202;
1211: fIdentFuncTable[I] := Func1211;
1215: fIdentFuncTable[I] := Func1215;
1218: fIdentFuncTable[I] := Func1218;
1223: fIdentFuncTable[I] := Func1223;
1230: fIdentFuncTable[I] := Func1230;
1273: fIdentFuncTable[I] := Func1273;
1277: fIdentFuncTable[I] := Func1277;
1283: fIdentFuncTable[I] := Func1283;
1327: fIdentFuncTable[I] := Func1327;
1343: fIdentFuncTable[I] := Func1343;
1361: fIdentFuncTable[I] := Func1361;
1379: fIdentFuncTable[I] := Func1379;
1396: fIdentFuncTable[I] := Func1396;
1402: fIdentFuncTable[I] := Func1402;
1404: fIdentFuncTable[I] := Func1404;
1409: fIdentFuncTable[I] := Func1409;
1421: fIdentFuncTable[I] := Func1421;
1425: fIdentFuncTable[I] := Func1425;
1440: fIdentFuncTable[I] := Func1440;
1520: fIdentFuncTable[I] := Func1520;
1523: fIdentFuncTable[I] := Func1523;
1673: fIdentFuncTable[I] := Func1673;
1752: fIdentFuncTable[I] := Func1752;
1762: fIdentFuncTable[I] := Func1762;
1768: fIdentFuncTable[I] := Func1768;
2167: fIdentFuncTable[I] := Func2167;
else fIdentFuncTable[I] := AltFunc;
end;
end;
function TSynPerlSyn.KeyHash(ToHash: PChar): Integer;
begin
Result := 0;
while ToHash^ in ['%', '@', '$', '_', '0'..'9', 'a'..'z', 'A'..'Z'] do
begin
inc(Result, Integer(ToHash^));
inc(ToHash);
end;
fStringLen := ToHash - fToIdent;
end; { KeyHash }
function TSynPerlSyn.KeyComp(const aKey: String): Boolean;
var
I: Integer;
Temp: PChar;
begin
Temp := fToIdent;
if Length(aKey) = fStringLen then
begin
Result := True;
for i := 1 to fStringLen do
begin
if Temp^ <> aKey[i] then
begin
Result := False;
break;
end;
inc(Temp);
end;
end else Result := False;
end; { KeyComp }
function TSynPerlSyn.Func109: TtkTokenKind;
begin
if KeyComp('m') then Result := tkKey else Result := tkIdentifier;
end;
function TSynPerlSyn.Func113: TtkTokenKind;
begin
if KeyComp('q') then Result := tkKey else Result := tkIdentifier;
end;
function TSynPerlSyn.Func196: TtkTokenKind;
begin
if KeyComp('$NR') then Result := tkVariable else Result := tkIdentifier;
end;
function TSynPerlSyn.Func201: TtkTokenKind;
begin
if KeyComp('$RS') then Result := tkVariable else Result := tkIdentifier;
end;
function TSynPerlSyn.Func204: TtkTokenKind;
begin
if KeyComp('ge') then Result := tkOperator else Result := tkIdentifier;
end;
function TSynPerlSyn.Func207: TtkTokenKind;
begin
if KeyComp('lc') then Result := tkKey else
if KeyComp('if') then Result := tkKey else Result := tkIdentifier;
end;
function TSynPerlSyn.Func209: TtkTokenKind;
begin
if KeyComp('le') then Result := tkOperator else Result := tkIdentifier;
end;
function TSynPerlSyn.Func211: TtkTokenKind;
begin
if KeyComp('ne') then Result := tkOperator else
if KeyComp('do') then Result := tkKey else Result := tkIdentifier;
end;
function TSynPerlSyn.Func214: TtkTokenKind;
begin
if KeyComp('eq') then Result := tkOperator else Result := tkIdentifier;
end;
function TSynPerlSyn.Func216: TtkTokenKind;
begin
if KeyComp('uc') then Result := tkKey else Result := tkIdentifier;
end;
function TSynPerlSyn.Func219: TtkTokenKind;
begin
if KeyComp('gt') then Result := tkOperator else Result := tkIdentifier;
end;
function TSynPerlSyn.Func221: TtkTokenKind;
begin
if KeyComp('no') then Result := tkKey else Result := tkIdentifier;
end;
function TSynPerlSyn.Func224: TtkTokenKind;
begin
if KeyComp('lt') then Result := tkOperator else Result := tkIdentifier;
end;
function TSynPerlSyn.Func225: TtkTokenKind;
begin
if KeyComp('or') then Result := tkOperator else Result := tkIdentifier;
end;
function TSynPerlSyn.Func226: TtkTokenKind;
begin
if KeyComp('qq') then Result := tkKey else Result := tkIdentifier;
end;
function TSynPerlSyn.Func230: TtkTokenKind;
begin
if KeyComp('tr') then Result := tkKey else
if KeyComp('my') then Result := tkKey else Result := tkIdentifier;
end;
function TSynPerlSyn.Func232: TtkTokenKind;
begin
if KeyComp('qw') then Result := tkKey else Result := tkIdentifier;
end;
function TSynPerlSyn.Func233: TtkTokenKind;
begin
if KeyComp('qx') then Result := tkKey else Result := tkIdentifier;
end;
function TSynPerlSyn.Func248: TtkTokenKind;
begin
if KeyComp('$GID') then Result := tkVariable else Result := tkIdentifier;
end;
function TSynPerlSyn.Func254: TtkTokenKind;
begin
if KeyComp('$ARG') then Result := tkVariable else Result := tkIdentifier;
end;
function TSynPerlSyn.Func255: TtkTokenKind;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -