⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 synhighlighterperl.pas

📁 SynEditStudio delphi 代码编辑器
💻 PAS
📖 第 1 页 / 共 5 页
字号:
  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 + -