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

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

?? cs2_utl.pas

?? Delphi script parser
?? PAS
?? 第 1 頁 / 共 2 頁
字號:
    #75, #76, #77, #78, #79, #80, #81, #82, #83, #84, #85, #86, #87, #88, #89,
    #90, #123, #124, #125, #126, #127, #128, #129, #130, #131, #132, #133, #134,
    #135, #136, #137, #138, #139, #140, #141, #142, #143, #144, #145, #146,
    #147, #148, #149, #150, #151, #152, #153, #154, #155, #156, #157, #158,
    #159, #160, #161, #162, #163, #164, #165, #166, #167, #168, #169, #170,
    #171, #172, #173, #174, #175, #176, #177, #178, #179, #180, #181, #182,
    #183, #184, #185, #186, #187, #188, #189, #190, #191, #192, #193, #194,
    #195, #196, #197, #198, #199, #200, #201, #202, #203, #204, #205, #206,
    #207, #208, #209, #210, #211, #212, #213, #214, #215, #216, #217, #218,
    #219, #220, #221, #222, #223, #224, #225, #226, #227, #228, #229, #230,
    #231, #232, #233, #234, #235, #236, #237, #238, #239, #240, #241, #242,
    #243, #244, #245, #246, #247, #248, #249, #250, #251, #252, #253, #254,
    #255);

function FastUpperCase(const s: string): string;
{Fast uppercase}
var
  i: Integer;
begin
  FastUpperCase := s;
  for i := 1 to Length(s) do FastUpperCase[i] := chartab[s[i]]; {Fast uppercase}
end;

function CheckIdent(data: PCs2PascalParser): Boolean;
{Check if an identifier is a reserved word}
var
  s: string;
begin
  s := FastUppercase(GetToken(Data));
  if s = 'AND' then
    Data^.CurrTokenId := CSTII_and else ;

  if s = 'BEGIN' then
    Data^.CurrTokenId := CSTII_begin
  else

    if s = 'CASE' then
      Data^.CurrTokenId := CSTII_case
    else

      if s = 'CONST' then
        Data^.CurrTokenId := CSTII_const
      else

        if s = 'DIV' then
          Data^.CurrTokenId := CSTII_div
        else

          if s = 'DO' then
            Data^.CurrTokenId := CSTII_do
          else

            if s = 'DOWNTO' then
              Data^.CurrTokenId := CSTII_downto
            else

              if s = 'ELSE' then
                Data^.CurrTokenId := CSTII_else
              else

                if s = 'END' then
                  Data^.CurrTokenId := CSTII_end
                else

                  if s = 'FOR' then
                    Data^.CurrTokenId := CSTII_for
                  else

                    if s = 'FUNCTION' then
                      Data^.CurrTokenId := CSTII_function
                    else

                      if s = 'IF' then
                        Data^.CurrTokenId := CSTII_if
                      else

                        if s = 'IN' then
                          Data^.CurrTokenId := CSTII_in
                        else

                          if s = 'MOD' then
                            Data^.CurrTokenId := CSTII_mod
                          else

                            if s = 'NOT' then
                              Data^.CurrTokenId := CSTII_not
                            else

                              if s = 'OF' then
                                Data^.CurrTokenId := CSTII_of
                              else

                                if s = 'OR' then
                                  Data^.CurrTokenId := CSTII_or
                                else

                                  if s = 'PROCEDURE' then
                                    Data^.CurrTokenId := CSTII_procedure
                                  else

                                    if s = 'PROGRAM' then
                                      Data^.CurrTokenId := CSTII_program
                                    else

                                      if s = 'REPEAT' then
                                        Data^.CurrTokenId := CSTII_repeat
                                      else

                                        if s = 'SET' then
                                          Data^.CurrTokenId := CSTII_set
                                        else

                                          if s = 'SHL' then
                                            Data^.CurrTokenId := CSTII_shl
                                          else

                                            if s = 'SHR' then
                                              Data^.CurrTokenId := CSTII_shr
                                            else

                                              if s = 'THEN' then
                                                Data^.CurrTokenId := CSTII_then
                                              else

                                                if s = 'TO' then
                                                  Data^.CurrTokenId := CSTII_to
                                                else

                                                  if s = 'TYPE' then
                                                    Data^.CurrTokenId := CSTII_type else

                                                    if s = 'UNTIL' then
                                                      Data^.CurrTokenId := CSTII_until else

                                                      if s = 'USES' then
                                                        Data^.CurrTokenId := CSTII_uses else

                                                        if s = 'VAR' then
                                                          Data^.CurrTokenId := CSTII_var else

                                                          if s = 'WHILE' then
                                                            Data^.CurrTokenId := CSTII_while else

                                                            if s = 'WITH' then
                                                              Data^.CurrTokenId := CSTII_with else

                                                              if s = 'XOR' then
                                                                Data^.CurrTokenId := CSTII_xor else

                                                              begin
                                                                CheckIdent := False;
                                                                Exit;
                                                              end;
  CheckIdent := True;
end;

procedure ParseToken(data: PCs2PascalParser);
{Parse the token}
var
  ct, ci: LongInt;
  hs: Boolean;
begin

  ct := data^.CurrTokenPos;
  case data^.Text[ct] of
    #0:
      begin
        Data^.CurrTokenId := CSTI_EOF;
        Data^.CurrTokenLen := 0;
      end;
    'A'..'Z', 'a'..'z', '_':
      begin
        ci := ct + 1;
        while (data^.Text[ci] in ['_', '0'..'9', 'a'..'z', 'A'..'Z']) do begin
          Inc(ci);
        end;
        Data^.CurrTokenLen := ci - ct;
        if not CheckIdent(data) then
        begin
          Data^.CurrTokenId := CSTI_Identifier;
        end;
      end;
    '$':
      begin
        ci := ct + 1;
        while (data^.Text[ci] in ['0'..'9', 'a'..'z', 'A'..'Z']) do begin
          Inc(ci);
        end;
        Data^.CurrTokenId := CSTI_HexInt;
        Data^.CurrTokenLen := ci - ct;
      end;

    '0'..'9':
      begin
        hs := False;
        ci := ct;
        while (data^.Text[ci] in ['0'..'9']) do begin
          Inc(ci);
          if (data^.Text[ci] = '.') and (not hs) then
          begin
            hs := True;
            Inc(ci);
          end;
        end;
        if hs then
          Data^.CurrTokenId := CSTI_Real
  else

    Data^.CurrTokenId := CSTI_Integer;
    Data^.CurrTokenLen := ci - ct;
  end;
  #39:
  begin
    ci := ct + 1;
    while (data^.Text[ci] <> #0) and (data^.Text[ci] <> #13) and
      (data^.Text[ci] <> #10) and (data^.Text[ci] <> #39)
      do begin
      Inc(ci);
    end;
    if data^.Text[ci] = #39 then
      Data^.CurrTokenId := CSTI_String
    else

      Data^.CurrTokenId := CSTI_StringError;
    Data^.CurrTokenLen := ci - ct + 1;
  end;
  '#':
  begin
    ci := ct + 1;
    if data^.Text[ci] = '$' then
    begin
      while (data^.Text[ci] in ['A'..'Z', 'a'..'z', '0'..'9']) do begin
        Inc(ci);
      end;
      Data^.CurrTokenId := CSTI_Char;
      Data^.CurrTokenLen := ci - ct - 1;
    end else
    begin
      while (data^.Text[ci] in ['0'..'9']) do begin
        Inc(ci);
      end;
      if data^.Text[ci] in ['A'..'Z', 'a'..'z', '_'] then
        Data^.CurrTokenId := CSTI_CharError
      else

        Data^.CurrTokenId := CSTI_Char;
      Data^.CurrTokenLen := ci - ct;
    end;
  end;
  '=':
  begin
    Data^.CurrTokenId := CSTI_Equal;
    Data^.CurrTokenLen := 1;
  end;
  '>':
  begin
    if data^.Text[ct + 1] = '=' then
    begin
      Data^.CurrTokenid := CSTI_GreaterEqual;
      Data^.CurrTokenLen := 2;
    end else
    begin
      Data^.CurrTokenid := CSTI_Greater;
      Data^.CurrTokenLen := 1;
    end;
  end;
  '<':
  begin
    if data^.Text[ct + 1] = '=' then
    begin
      Data^.CurrTokenId := CSTI_LessEqual;
      Data^.CurrTokenLen := 2;
    end else
      if data^.Text[ct + 1] = '>' then
      begin
        Data^.CurrTokenId := CSTI_NotEqual;
        Data^.CurrTokenLen := 2;
      end else
      begin
        Data^.CurrTokenId := CSTI_Less;
        Data^.CurrTokenLen := 1;
      end;
  end;
  ')':
  begin
    Data^.CurrTokenId := CSTI_CloseRound;
    Data^.CurrTokenLen := 1;
  end;
  '(':
  begin
    if Data^.Text[ct + 1] = '*' then
    begin
      ci := ct + 1;
      while (Data^.Text[ci] <> #0) do begin
        if (Data^.Text[ci] = '*') and (Data^.Text[ci + 1] = ')') then
          Break;
        Inc(ci);
      end;
      if (Data^.Text[ci] = #0) then
        Data^.CurrTokenId := CSTI_CommentEOFError
      else
      begin
        Data^.CurrTokenId := CSTI_Comment;
        Inc(ci);
      end;
      Data^.CurrTokenLen := ci - ct;
    end
    else
    begin
      Data^.CurrTokenId := CSTI_OpenRound;
      Data^.CurrTokenLen := 1;
    end;
  end;
  '[':
  begin
    Data^.CurrTokenId := CSTI_OpenBlock;
    Data^.CurrTokenLen := 1;
  end;
  ']':
  begin
    Data^.CurrTokenId := CSTI_CloseBlock;
    Data^.CurrTokenLen := 1;
  end;
  ',':
  begin
    Data^.CurrTokenId := CSTI_Comma;
    Data^.CurrTokenLen := 1;
  end;
  '.':
  begin
    Data^.CurrTokenId := CSTI_Period;
    Data^.CurrTokenLen := 1;
  end;
  ';':
  begin
    Data^.CurrTokenId := CSTI_Semicolon;
    Data^.CurrTokenLen := 1;
  end;
  ':':
  begin
    if Data^.Text[ct + 1] = '=' then
    begin
      Data^.CurrTokenId := CSTI_Assignment;
      Data^.CurrTokenLen := 2;
    end else
    begin
      Data^.CurrTokenId := CSTI_Colon;
      Data^.CurrTokenLen := 1;
    end;
  end;
  '+':
  begin
    Data^.CurrTokenId := CSTI_Plus;
    Data^.CurrTokenLen := 1;
  end;
  '-':
  begin
    Data^.CurrTokenId := CSTI_Minus;
    Data^.CurrTokenLen := 1;
  end;
  '*':
  begin
    Data^.CurrTokenId := CSTI_Multiply;
    Data^.CurrTokenLen := 1;
  end;
  '/':
  begin
    if data^.Text[ct + 1] = '/' then
    begin
      ci := ct + 1;
      while (Data^.Text[ci] <> #0) and (Data^.Text[ci] <> #13) and
        (Data^.Text[ci] <> #10) do begin
        Inc(ci);
      end;
      if (Data^.Text[ci] = #0) then
        Data^.CurrTokenId := CSTI_CommentEOFError
      else
      begin
        if Data^.Text[ci + 1] = #10 then
          Inc(ci) else

          if Data^.Text[ci + 1] = #13 then
            Inc(ci);
        Data^.CurrTokenId := CSTI_Comment;
      end;
      Data^.CurrTokenLen := ci - ct + 1;
    end else
    begin
      Data^.CurrTokenId := CSTI_Divide;
      Data^.CurrTokenLen := 1;
    end;
  end;
  #32, #9, #13, #10:
  begin
    ci := ct + 1;
    while (Data^.Text[ci] in [#32, #9, #13, #10]) do begin
      Inc(ci);
    end;
    Data^.CurrTokenId := CSTI_Whitespace;
    Data^.CurrTokenLen := ci - ct;
  end;
  '{':
  begin
    ci := ct + 1;
    while (Data^.Text[ci] <> #0) and (Data^.Text[ci] <> '}') do begin
      Inc(ci);
    end;
    if (Data^.Text[ci] = #0) then
      Data^.CurrTokenId := CSTI_CommentEOFError
    else
      Data^.CurrTokenId := CSTI_Comment;
    Data^.CurrTokenLen := ci - ct + 1;
  end;
  else
    Data^.CurrTokenId := CSTI_SyntaxError;
    Data^.CurrTokenLen := 1;
end;
end;

function GetToken(data: PCs2PascalParser): string;
{Return the token}
var
  i: LongInt;
  len: LongInt;
  s: string;
begin
  len := data^.CurrTokenLen;
{$IFDEF SS}
  len := len and $FF;
  s[0] := Chr(len);
{$ELSE}
  setlength(s, len);
{$ENDIF}
  for i := 1 to Len do begin
    s[i] := data^.Text[data^.CurrTokenPos + i - 1];
  end;
  GetToken := s;
end;

procedure NextNoJunk(data: PCs2PascalParser);
{Next no junk}
begin
  Data^.CurrTokenPos := Data^.CurrTokenPos + Data^.CurrTokenLen;
  ParseToken(data);
  while (Data^.CurrTokenId = CSTI_COMMENT) or (Data^.CurrTokenId =
    CSTI_WHITESPACE) do
  begin
    if (Data^.CurrTokenId = CSTI_EOF) or (Data^.CurrTokenId = CSTI_SyntaxError)
      or
      (Data^.CurrTokenId = CSTI_CommentEOFError) or (Data^.CurrTokenId =
      CSTI_CharError) or
      (Data^.CurrTokenId = CSTI_StringError)
      then
    begin
      Break;
    end;
    Data^.CurrTokenPos := Data^.CurrTokenPos + Data^.CurrTokenLen;
    ParseToken(data);
  end;
end;


end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美成人a视频| 欧美综合亚洲图片综合区| 成人性色生活片| 久久综合九色欧美综合狠狠| 亚洲精品高清在线| 乱中年女人伦av一区二区| 99国产精品久久久久久久久久 | 麻豆高清免费国产一区| 奇米色777欧美一区二区| caoporn国产精品| 婷婷综合五月天| 久久激情五月激情| 日韩专区一卡二卡| 91老师国产黑色丝袜在线| 久久这里只有精品首页| 五月开心婷婷久久| 91一区二区在线观看| 中文av一区二区| 国产在线不卡一区| 精品嫩草影院久久| 男人操女人的视频在线观看欧美| 欧美午夜影院一区| 亚洲国产成人av网| 欧美在线观看视频在线| 不卡的av在线| 蜜桃精品在线观看| 51精品秘密在线观看| 亚洲成a天堂v人片| 在线精品亚洲一区二区不卡| 亚洲色图在线看| 色婷婷综合激情| 亚洲一区二区三区四区在线观看| 91同城在线观看| 亚洲最新视频在线播放| 欧美专区在线观看一区| 午夜视频一区二区| 欧美mv和日韩mv国产网站| 国内国产精品久久| 亚洲国产精品高清| 91网站最新网址| 天天操天天干天天综合网| 91精品国产91久久久久久一区二区 | 91精品国产综合久久精品麻豆| 亚洲乱码国产乱码精品精可以看| av亚洲精华国产精华精| 亚洲精品日韩专区silk| 欧美性猛片aaaaaaa做受| 五月天欧美精品| 26uuu色噜噜精品一区二区| 粉嫩高潮美女一区二区三区 | bt7086福利一区国产| 国产精品不卡在线观看| 欧洲一区在线电影| 久久电影网站中文字幕| 中文字幕中文字幕一区| 欧美日韩视频不卡| 国产中文字幕精品| 亚洲精品午夜久久久| 91.麻豆视频| 成人免费毛片aaaaa**| 亚洲无人区一区| 久久蜜臀精品av| 欧美日韩专区在线| 国产精品一区二区x88av| 亚洲色图欧美偷拍| 精品国产伦一区二区三区观看方式| 国产成人在线观看| 午夜精品福利一区二区三区av | 免播放器亚洲一区| 国产精品初高中害羞小美女文| 欧美日韩一二三| 高清不卡在线观看| 美女视频黄a大片欧美| 国产精品高潮呻吟久久| 欧美va日韩va| 在线观看不卡一区| 不卡的av电影在线观看| 美女在线视频一区| 亚洲图片欧美色图| 成人欧美一区二区三区小说| 精品少妇一区二区三区| 在线视频一区二区免费| 成人激情小说乱人伦| 美日韩黄色大片| 亚洲成在人线免费| 1024成人网色www| 国产日韩欧美一区二区三区乱码 | 亚洲高清在线精品| 亚洲色图第一区| 欧美激情综合在线| 欧美一二三四在线| 欧美嫩在线观看| 欧美午夜精品久久久久久超碰| 国产成人精品www牛牛影视| 毛片av中文字幕一区二区| 亚洲尤物视频在线| 一区二区三区欧美视频| 中文字幕中文字幕一区| 国产欧美一区二区精品性色| xfplay精品久久| 26uuu另类欧美亚洲曰本| 日韩一区二区精品在线观看| 欧美久久一区二区| 欧美日韩在线播| 欧洲在线/亚洲| 精品视频在线免费| 欧美色图天堂网| 欧美专区在线观看一区| 欧美在线999| 91高清视频免费看| 欧美日韩免费不卡视频一区二区三区| 色94色欧美sute亚洲线路一ni| 色综合久久中文综合久久97| 95精品视频在线| 一区二区三区四区国产精品| 国产欧美一区视频| 精品国产乱码久久久久久牛牛 | 国产精品一区二区三区四区| 日韩国产在线一| 日本不卡一二三| 久久精品国产免费看久久精品| 免费观看一级欧美片| 人人精品人人爱| 九九在线精品视频| 国产成人精品亚洲777人妖 | 日韩一区二区三区高清免费看看| 911精品产国品一二三产区| 91精品久久久久久蜜臀| 日韩欧美一级精品久久| 欧美mv日韩mv| 久久久午夜精品理论片中文字幕| 国产欧美一区在线| 一区二区在线观看视频| 免费在线观看视频一区| 国产肉丝袜一区二区| 舔着乳尖日韩一区| 日本三级亚洲精品| 精品一区二区三区在线观看国产| 国产一区二区剧情av在线| 成人深夜福利app| 99久久综合精品| 884aa四虎影成人精品一区| 精品国产成人系列| 亚洲视频一区在线| 日本美女一区二区三区| 白白色亚洲国产精品| 欧美另类高清zo欧美| 国产日韩欧美综合一区| 亚洲成av人综合在线观看| 国内外精品视频| 欧美性受xxxx| 久久久久久久久久久久久女国产乱 | 欧美日韩在线直播| 久久免费视频一区| 亚洲午夜激情av| 成人一区二区三区在线观看| 6080国产精品一区二区| 中文字幕一区日韩精品欧美| 男人的j进女人的j一区| 色诱亚洲精品久久久久久| 欧美精品一区二区三区蜜臀| 亚洲综合av网| 成人免费av在线| 欧美电影免费观看完整版| 亚洲欧美精品午睡沙发| 国产一区二区精品久久| 51精品秘密在线观看| ...xxx性欧美| 成人性生交大片免费看在线播放 | 国产一区二区三区精品视频| 在线精品视频小说1| 国产精品午夜久久| 经典三级一区二区| 欧美日韩黄色一区二区| 亚洲精品va在线观看| 成人久久18免费网站麻豆| 久久久亚洲午夜电影| 免播放器亚洲一区| 欧美一区二区三区四区视频| 专区另类欧美日韩| 欧美三级在线播放| 亚洲综合一区在线| 99久久精品国产观看| 国产精品你懂的| 成人综合婷婷国产精品久久| 久久综合九色综合97婷婷女人 | 激情综合色综合久久| 欧美另类久久久品| 午夜精品久久久久久久久久| 欧美视频第二页| 一区二区三区四区在线免费观看 | 亚洲自拍偷拍图区| 日本精品一级二级| 亚洲欧美日韩国产另类专区| 99久久久无码国产精品| 国产精品卡一卡二卡三| 色综合天天综合网天天狠天天| 国产精品福利电影一区二区三区四区| 成人手机在线视频| 亚洲人成在线观看一区二区|