亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? csregex.pas

?? Delphi script parser
?? PAS
?? 第 1 頁 / 共 5 頁
字號:
      Cnotwordbound:
      begin
        inc(p1);
        goto loop_p1;
      end;
    Cstart_memory,
      Cend_memory:
      begin
        inc(p1, 2);
        goto loop_p1;
      end;
    Cexact:
      begin
        inc(p1);
        ch := p1[0];
        inc(p1);
        if (map[ord(ch)]) <> #0 then
          goto make_normal_jump;
      end;
    Canychar:
      begin
        inc(p1);
        for b := 0 to 255 do
          if (b <> 10) and (map[b] <> #0) then // was 13
            goto make_normal_jump;
      end;
    Cset:
      begin
        inc(p1);
        for b := 0 to 255 do
            // Check This!!!!
          if ((ord(p1[b div 8]) and (1 shl (b and 7))) <> 0) and // integer > ord
            (map[b] <> #0) then
            goto make_normal_jump;
        inc(p1, 32);
      end;
  else
    goto make_normal_jump;
  end;

  //now we know that we can't backtrack.
  while p1 <> (p2 - 3) do begin
    inc(num_instructions);
    case regexp_compiled_ops(ord(p1[0])) of
      Cend: Exit;
      Cbol,
        Ceol,
        Canychar,
        Cbegbuf,
        Cendbuf,
        Cwordbeg,
        Cwordend,
        Cwordbound,
        Cnotwordbound: inc(p1);
      Cset: inc(p1, 33);
      Cexact,
        Cstart_memory,
        Cend_memory,
        Cmatch_memory,
        Csyntaxspec,
        Cnotsyntaxspec: inc(p1, 2);
      Cjump,
        Cstar_jump,
        Cfailure_jump,
        Cupdate_failure_jump,
        Cdummy_failure_jump: goto make_normal_jump;
    else
      Exit;
    end;
  end;
  //make_update_jump:
  dec(code, 3);
  inc(a, 3);
  code[0] := char(Cupdate_failure_jump);
  code[1] := char(a and 255);
  code[2] := char(a shr 8);
  if num_instructions > 1 then begin
    Result := True;
    Exit;
  end;
  assert(num_instructions = 1, 'No instructions found!');
  {/* if the only instruction matches a single character, we can do
  * better */}
  p1 := code + 3 + a; //start of sole instruction
  if (p1[0] = char(Cset)) or (p1[0] = char(Cexact)) or (p1[0] = char(Canychar)) or
    (p1[0] = char(Csyntaxspec)) or (p1[0] = char(Cnotsyntaxspec)) then
    code[0] := char(Crepeat1);
  Result := True;
  Exit;

  make_normal_jump:
  dec(code, 3);
  code[0] := char(Cjump);
  Result := True;
end;

function TcsReExpr.re_optimize: boolean;
var
  code: PChar;
begin
  Result := False;
  code := @regexp_t.buffer[1];
  while True do begin
    case regexp_compiled_ops(ord(code[0])) of
      Cend:
        begin
          Result := True;
          Exit;
        end;
      Canychar,
        Cbol,
        Ceol,
        Cbegbuf,
        Cendbuf,
        Cwordbeg,
        Cwordend,
        Cwordbound,
        Cnotwordbound: inc(code);
      Cset: inc(code, 33);
      Cexact,
        Cstart_memory,
        Cend_memory,
        Cmatch_memory,
        Csyntaxspec,
        Cnotsyntaxspec: inc(code, 2);
      Cstar_jump: begin
          inc(code);
          if not re_optimize_star_jump(code) then Exit;
        end;
      Cupdate_failure_jump,
        Cjump,
        Cdummy_failure_jump,
        Cfailure_jump,
        Crepeat1: inc(code, 3);
    else
      Exit;
    end;
  end;
end;

function TcsReExpr.hex_char_to_decimal(
  const ch: char): char;
begin
  Result := #16; // error
  if (ch >= '0') and (ch <= '9') then
    Result := char(ord(ch) - ord('0'));
  if (ch >= 'a') and (ch <= 'f') then
    Result := char(ord(ch) - ord('a') + 10);
  if (ch >= 'A') and (ch <= 'F') then
    Result := char(ord(ch) - ord('A') + 10);
end;

function TcsReExpr.Ansi_Translate(
  const ch: char; const size: integer; var pos: integer;
  const regex, translate: string): char;
var
  gethex_ch, gethex_value: char;
begin
  Result := #0;
  case ch of
    'a', 'A': Result := #7; // audible bell
    'b', 'B': Result := #8; // backspace
    'f', 'F': Result := #12; // form feed
    'n', 'N': Result := #10; // line feed
    'r', 'R': Result := #13; // carriage return
    't', 'T': Result := #9; // tab
    'v', 'V': Result := #11; // vertical tab
    'x', 'X': begin // hex code
        if Pos > Size then
          raise ERegularExpression.Create('Regular expression ends prematurely');
        gethex_ch := regex[pos];
        inc(pos);
        gethex_value := hex_char_to_decimal(gethex_ch);
        if (gethex_value = #16) then
          raise ERegularExpression.Create('No valid hex value');
        if Pos > Size then
          raise ERegularExpression.Create('Regular expression ends prematurely');
        gethex_ch := regex[pos];
        inc(pos);
        gethex_ch := hex_char_to_decimal(gethex_ch);
        if (gethex_value = #16) then
          raise ERegularExpression.Create('');
        Result := char(ord(gethex_value) * 16 + ord(gethex_ch));
      end;
  else
    if translate <> '' then
      Result := translate[ord(ch)];
  end;
end;

procedure TcsReExpr.re_compile_initialize;
var
  a, i: integer;
begin
//  FillChar(bufp.re_syntax_table, 256, 0); // not nessesary
  for a := ord('a') to ord('z') do re_syntax_table[a] := char(Sword);
  for a := ord('A') to ord('Z') do re_syntax_table[a] := char(Sword);
  for a := ord('0') to ord('9') do re_syntax_table[a] := char(Sword or Sdigit or Shexdigit);
  for a := ord('0') to ord('7') do re_syntax_table[a] := char(ord(re_syntax_table[a]) + Soctaldigit); // integer > ord
  for a := ord('a') to ord('f') do re_syntax_table[a] := char(ord(re_syntax_table[a]) + Shexdigit); // integer > ord
  for a := ord('A') to ord('F') do re_syntax_table[a] := char(ord(re_syntax_table[a]) + Shexdigit); // integer > ord
  re_syntax_table[ord('_')] := char(Sword);
  for a := 9 to 13 do re_syntax_table[a] := char(Swhitespace);
  re_syntax_table[ord(' ')] := char(Swhitespace);

  if (FStyle and RE_HIGHCHARSWHITESPACE) = RE_HIGHCHARSWHITESPACE then begin
    for a := 128 to 255 do re_syntax_table[a] := char(ord(re_syntax_table[a]) + Swhitespace);
  end;

  for i := 0 to 255 do begin
    regexp_plain_ops[i] := Rnormal;
    regexp_quoted_ops[i] := Rnormal;
  end;
  for a := ord('0') to ord('9') do regexp_quoted_ops[a] := Rmemory;
  regexp_plain_ops[ord('\')] := Rquote;
  if (FStyle and RE_NO_BK_PARENS) = RE_NO_BK_PARENS then begin
    regexp_plain_ops[ord('(')] := Ropenpar;
    regexp_plain_ops[ord(')')] := Rclosepar;
  end else begin
    regexp_quoted_ops[ord('(')] := Ropenpar;
    regexp_quoted_ops[ord(')')] := Rclosepar;
  end;

  if (FStyle and RE_NO_BK_VBAR) = RE_NO_BK_VBAR then
    regexp_plain_ops[ord('|')] := Ror
  else
    regexp_quoted_ops[ord('|')] := Ror;
  regexp_plain_ops[ord('*')] := Rstar;
  if (FStyle and RE_BK_PLUS_QM) = RE_BK_PLUS_QM then begin
    regexp_quoted_ops[ord('+')] := Rplus;
    regexp_quoted_ops[ord('?')] := Roptional;
  end else begin
    regexp_plain_ops[ord('+')] := Rplus;
    regexp_plain_ops[ord('?')] := Roptional;
  end;

  if (FStyle and RE_NEWLINE_OR) = RE_NEWLINE_OR then
    regexp_plain_ops[10] := Ror; // was 13
  regexp_plain_ops[ord('[')] := Ropenset;
  regexp_plain_ops[ord('^')] := Rbol;
  regexp_plain_ops[ord('$')] := Reol;
  regexp_plain_ops[ord('.')] := Ranychar;
  if not ((FStyle and RE_NO_GNU_EXTENSIONS) = RE_NO_GNU_EXTENSIONS) then begin
    regexp_quoted_ops[ord('d')] := RDigitChar; // RJ 2000-04-01 special for digits 0-9
    regexp_quoted_ops[ord('D')] := RNotDigitChar; // RJ 2000-04-01 special for digits 0-9
    regexp_quoted_ops[ord('w')] := Rwordchar;
    regexp_quoted_ops[ord('W')] := Rnotwordchar;
    regexp_quoted_ops[ord('<')] := Rwordbeg;
    regexp_quoted_ops[ord('>')] := Rwordend;
    regexp_quoted_ops[ord('b')] := Rwordbound;
    regexp_quoted_ops[ord('B')] := Rnotwordbound;
    regexp_quoted_ops[ord('`')] := Rbegbuf;
    regexp_quoted_ops[44] := Rendbuf; // '
  end;
  if (FStyle and RE_ANSI_HEX) = RE_ANSI_HEX then
    regexp_quoted_ops[ord('v')] := Rextended_memory;
  for a := 0 to ord(Rnum_ops) - 1 do
    regexp_precedences[a] := #4;
  if (FStyle and RE_TIGHT_VBAR) > 0 then begin
    regexp_precedences[ord(Ror)] := #3;
    regexp_precedences[ord(Rbol)] := #2;
    regexp_precedences[ord(Reol)] := #2;
  end else begin
    regexp_precedences[ord(Ror)] := #2;
    regexp_precedences[ord(Rbol)] := #3;
    regexp_precedences[ord(Reol)] := #3;
  end;
  regexp_precedences[ord(Rclosepar)] := #1;
  regexp_precedences[ord(Rend)] := #0;
  regexp_context_indep_ops := (FStyle and RE_CONTEXT_INDEP_OPS) > 0;
  regexp_ansi_sequences := (FStyle and RE_ANSI_HEX) > 0;

  re_compile_initialized := True;
end;

procedure TcsReExpr.Inser_Jump(
  const pos: integer; const opcode_type: regexp_compiled_ops;
  const addr: integer; var pattern_offset: integer; var pattern: string);
var
  a, disp: integer;
begin
  for a := pattern_offset - 1 downto pos do
    pattern[a + 3] := pattern[a];
  pattern[pos] := char(opcode_type);
  //PUT_ADDR(offset,addr)
  disp := addr - (pos + 1) - 2;
  pattern[pos + 1] := char(disp and 255);
  pattern[pos + 2] := char((disp shr 8) and 255);
  inc(pattern_offset, 3);
end;

{: This compiles the regexp (given in regex and length in regex_size).
   This empty string if the regexp compiled successfully, and an error message
   if an error was encountered.
   The translate field must be set to point to a valid translation table, or
   empty if it is not used. }

function TcsReExpr.re_compile_pattern: string;
label
  normal_char, store_opcode_and_arg, store_opcode;
var
  i, pos, current_level, level: integer;
  op: regexp_syntax_op;
  opcode: regexp_compiled_ops;
  pattern_offset: integer;
  starts: array[0..NUM_LEVELS * MAX_NESTING] of integer;
  starts_base: integer;
  future_jumps: array[0..MAX_NESTING] of integer;
  num_jumps: integer;
  a, ch: char;
  pattern: string;
  translate: string;
  next_register: integer;
  paren_depth: integer;
  num_open_registers: integer;
  open_registers: array[0..RE_NREGS] of integer;
  beginning_context: boolean;

  size, disp: integer;

  complement, firstchar, range: boolean;
  prev, offset: integer;
begin
  pattern_offset := 0;
  ch := #0;
  if not re_compile_initialized then
    re_compile_initialize;
  regexp_t.fastmap_accurate := false;
  regexp_t.uses_registers := True;
  regexp_t.num_registers := 1;
  translate := regexp_t.translate;
  pattern := '';
  pattern_offset := 1;
  try
    starts_base := 0;
    num_jumps := 0;
    current_level := 0;
    Starts[starts_base + current_level] := pattern_offset; {SET_LEVEL_START}
    num_open_registers := 0;
    next_register := 1;
    paren_depth := 0;
    beginning_context := True;
    op := Rnum_ops; // maybe wrong, just give it a try
    {we use Rend dummy to ensure that pending jumps are updated
     (due to low priority of Rend) before exiting the loop.}
    size := Length(FPattern);
    pos := 1;
    while op <> Rend do begin
      if pos > size then op := Rend
      else begin
        if pos > size then
          raise ERegularExpression.Create(SreEndPrem);
        ch := FPattern[pos];
        inc(pos);
        if translate <> '' then ch := translate[ord(ch)];
        op := regexp_plain_ops[ord(ch)];
        if op = RQuote then begin
          if pos > size then
            raise ERegularExpression.Create(SreEndPrem);
          ch := FPattern[pos];
          inc(pos);
          op := regexp_quoted_ops[ord(ch)];
          if (op = Rnormal) and regexp_ansi_sequences then

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久亚洲春色中文字幕久久久| 国产高清一区日本| 欧美日韩在线一区二区| 亚洲欧美日韩一区二区三区在线观看| 粉嫩在线一区二区三区视频| 国产精品美日韩| 91在线视频免费91| 一区二区三区四区在线| 欧美三级三级三级| 久久精品国产色蜜蜜麻豆| 国产午夜精品一区二区三区视频 | 亚洲另类在线视频| 欧美亚洲综合在线| 日韩avvvv在线播放| 337p日本欧洲亚洲大胆色噜噜| 国产精品综合视频| 亚洲欧美二区三区| 91精品国产综合久久香蕉的特点| 精品在线一区二区三区| 亚洲国产精品v| 精品1区2区3区| 国产精品一区二区久久不卡 | 欧美成人高清电影在线| 国产在线观看免费一区| 中文字幕在线播放不卡一区| 欧美制服丝袜第一页| 九色综合国产一区二区三区| 国产精品的网站| 这里只有精品99re| 99综合电影在线视频| 丝袜亚洲另类丝袜在线| 日本一区二区高清| 欧美日韩国产综合一区二区三区| 激情综合五月婷婷| 亚洲精品成人a在线观看| 欧美丰满嫩嫩电影| 99这里都是精品| 久久精品国产在热久久| 一区二区三区在线观看网站| 精品国产一区二区亚洲人成毛片| 99re热视频这里只精品| 激情文学综合插| 亚洲福利国产精品| 国产精品精品国产色婷婷| 9191久久久久久久久久久| jizz一区二区| 黄页网站大全一区二区| 婷婷成人激情在线网| 精品中文字幕一区二区| 中文字幕一区在线观看| 欧美mv和日韩mv国产网站| 色噜噜夜夜夜综合网| 国产一区二区三区高清播放| 日韩经典一区二区| 亚洲欧美色综合| 国产午夜三级一区二区三| 91精品国产综合久久精品app| 成人精品视频.| 国产一区二区在线视频| 日韩电影在线一区| 亚洲天天做日日做天天谢日日欢| 2020国产精品| 日韩欧美国产精品| 日韩一区二区在线观看视频播放| 色婷婷精品久久二区二区蜜臂av | 精品1区2区在线观看| 在线观看免费一区| 不卡区在线中文字幕| 国产馆精品极品| 精品亚洲porn| 美女视频网站久久| 美女性感视频久久| 日韩激情一区二区| 午夜精品一区二区三区三上悠亚| 亚洲欧美成aⅴ人在线观看| 中文字幕日韩av资源站| 国产无遮挡一区二区三区毛片日本| 日韩女同互慰一区二区| 91精品国产色综合久久不卡电影 | 国产精品蜜臀av| 国产亚洲精品超碰| 久久精品一区二区| 久久九九久久九九| 国产女人18水真多18精品一级做| 国产亚洲精品aa| 国产视频一区不卡| 亚洲国产岛国毛片在线| 国产精品丝袜黑色高跟| 国产精品毛片高清在线完整版| 国产人伦精品一区二区| 国产精品久久久久久久久动漫| 国产精品三级视频| 亚洲精品水蜜桃| 亚洲午夜激情网页| 蜜桃传媒麻豆第一区在线观看| 日本成人在线一区| 精品影院一区二区久久久| 国产一区二区三区黄视频 | 日韩视频在线你懂得| 日韩欧美中文字幕制服| 26uuu久久综合| 中文字幕一区二区三区精华液 | 日韩高清不卡一区二区| 久久精品噜噜噜成人88aⅴ| 国产伦精品一区二区三区免费迷| 国产精品亚洲专一区二区三区| 成人激情小说乱人伦| 99久久婷婷国产综合精品 | 男人的天堂亚洲一区| 韩国av一区二区三区在线观看| 制服视频三区第一页精品| 日韩欧美你懂的| 中文字幕不卡的av| 亚洲一区二区在线播放相泽| 热久久免费视频| 成人精品一区二区三区中文字幕| 色综合久久六月婷婷中文字幕| 777xxx欧美| 国产精品蜜臀在线观看| 亚洲一线二线三线视频| 国内精品久久久久影院薰衣草| 99在线精品观看| 日韩欧美美女一区二区三区| ●精品国产综合乱码久久久久| 婷婷成人综合网| 99精品久久99久久久久| 日韩女优制服丝袜电影| 亚洲综合在线第一页| 国产一区二区三区久久久| 欧美三级日本三级少妇99| 久久一区二区视频| 午夜精品国产更新| 成人av片在线观看| 欧美一级一区二区| 亚洲一区二区精品久久av| 国产一区 二区 三区一级| 欧美视频在线观看一区| 国产精品成人网| 精品一区二区国语对白| 在线观看视频一区二区欧美日韩| 欧美大白屁股肥臀xxxxxx| 一区二区三区四区精品在线视频| 国产剧情av麻豆香蕉精品| 欧美日韩精品免费| 亚洲美女屁股眼交| 成人丝袜18视频在线观看| 日韩精品中文字幕一区二区三区 | 91精品国产91综合久久蜜臀| 亚洲人成亚洲人成在线观看图片 | 中文字幕视频一区| 极品少妇一区二区三区精品视频| 欧美午夜寂寞影院| 亚洲柠檬福利资源导航| 成人手机电影网| 国产亚洲欧美日韩俺去了| 久久精品久久久精品美女| 欧美一区二区日韩一区二区| 婷婷成人激情在线网| 欧美日韩你懂得| 一二三区精品视频| 91黄色免费版| 一区二区三区精品在线观看| 色呦呦国产精品| 亚洲精品中文在线| 色综合中文字幕| 亚洲欧美日韩一区二区三区在线观看| 成人一级片网址| 国产精品国产a级| 成人午夜视频网站| 亚洲国产精品精华液ab| 国产福利电影一区二区三区| 久久免费的精品国产v∧| 韩国三级中文字幕hd久久精品| 日韩女同互慰一区二区| 国内精品在线播放| 欧美国产精品劲爆| eeuss影院一区二区三区 | 黄色资源网久久资源365| 欧美成人激情免费网| 久久精品国产久精国产爱| 欧美一级专区免费大片| 欧美videossexotv100| 国产欧美日韩精品一区| 日韩一级二级三级| 91社区在线播放| 国产精品1024| 国产一区二区三区四区五区美女 | 国产精品久久久一区麻豆最新章节| 99热99精品| 欧美色偷偷大香| 欧美日韩另类一区| 欧美蜜桃一区二区三区| 成人免费av资源| 久久精品国产第一区二区三区| 日本一区二区三区四区在线视频 | 青青草91视频| 婷婷激情综合网| 日韩在线a电影| 蜜桃一区二区三区在线| 亚洲国产日韩a在线播放|