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

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

?? evfunction.pas

?? 表達式計算DEMO 利用詞法分析器原理 以及后綴表達式計算 暫不支持函數以及乘號省略
?? PAS
?? 第 1 頁 / 共 2 頁
字號:
unit EvFunction;

interface

uses
  SysUtils, Classes, Contnrs;

type
    TTokenType = (
      tkNumber,
      tkAdd,
      tkSub,
      tkMul,
      tkDiv,
      tkLBracket,
      tkRBracket);

    PToken = ^TToken;
    TToken = record
      Token: TTokenType;
      DValue: Double;
    end;

procedure Push(Stack: TStack;
               sData: String);
function Pop(Stack: TStack): String;
function Peek(Stack: TStack): String;
function IsEmpty(Stack: TStack): Boolean;
function CompareSymbol(SymA, SymB: String): Boolean;
function NewToken(Token: PToken): PToken;
function ParseExpression(InExpr: String;
                         InList: TList): Integer;
function InsideToSuffix(InList: TList): String;
function Evaluate(SuExpr: String): Double;

implementation

procedure Push(Stack: TStack;
               sData: String);
begin
     Stack.Push(StrNew(PChar(sData)));
end;

function Pop(Stack: TStack): String;
begin
     Result := StrPas(PChar(Stack.Pop));
end;

function Peek(Stack: TStack): String;
begin
     Result := StrPas(PChar(Stack.Peek));
end;

function IsEmpty(Stack: TStack): Boolean;
begin
     Result := Stack.Count = 0;
end;

function CompareSymbol(SymA, SymB: String): Boolean;
begin
     Result := True;
     Case SymA[1] of
       '*',
       '/': if SymB[1] in ['*', '/'] then
               Result := False;
     end;
end;

function NewToken(Token: PToken): PToken;
var
   Size: Integer;
begin
     Size := SizeOf(Token^);
     GetMem(Result, Size);
     Move(Token^, Result^, Size);
end;

function ParseExpression(InExpr: String;
                         InList: TList): Integer;
var
   Token: TToken;
   sTemp: String;
   IsExists: Boolean;
   I, iLen, iBracket: Integer;
   NextToken: set of TTokenType;
begin
     I := 1;
     Result := 0;
     iBracket := 0;
     iLen := Length(InExpr);
     NextToken := [tkNumber, tkLBracket];
     While I <= iLen do
           begin
                Case InExpr[I] of
                  '0'..'9': begin
                                 sTemp := '';
                                 IsExists := False;
                                 if not (tkNumber in
                                        NextToken) then
                                    begin
                                         Result := I;
                                         InList.Clear;
                                         Break;
                                    end;
                                 While I <= iLen do
                                       begin
                                            Case InExpr[I] of
                                              '0'..'9': sTemp := sTemp +
                                                                 InExpr[I];
                                              '.': if IsExists then
                                                      begin
                                                           Result := I;
                                                           I := iLen;
                                                           InList.Clear;
                                                           Break;
                                                      end
                                                      else
                                                      begin
                                                           sTemp := sTemp +
                                                                    InExpr[I];
                                                           IsExists := True;
                                                      end;
                                              else begin
                                                        Dec(I);
                                                        Break;
                                                   end;
                                            end;
                                            Inc(I);
                                       end;
                                 if sTemp[Length(sTemp)] = '.' then
                                    begin
                                         Result := I;
                                         InList.Clear;
                                         Break;
                                    end;
                                 Token.Token := tkNumber;
                                 Token.DValue := StrToFloat(sTemp);
                                 InList.Add(NewToken(@Token));
                                 NextToken := [tkAdd,
                                               tkSub,
                                               tkMul,
                                               tkDiv,
                                               tkRBracket];
                            end;
                  '+': begin
                            if not (tkAdd in
                                   NextToken) then
                               begin
                                    Result := I;
                                    InList.Clear;
                                    Break;
                               end;
                            Token.Token := tkAdd;
                            InList.Add(NewToken(@Token));
                            NextToken := [tkNumber,
                                          tkLBracket];
                       end;
                  '-': begin
                            if not (tkSub in
                                   NextToken) then
                               begin
                                    Result := I;
                                    InList.Clear;
                                    Break;
                               end;
                            Token.Token := tkSub;
                            InList.Add(NewToken(@Token));
                            NextToken := [tkNumber,
                                          tkLBracket];
                       end;
                  '*': begin
                            if not (tkMul in
                                   NextToken) then
                               begin
                                    Result := I;
                                    InList.Clear;
                                    Break;
                               end;
                            Token.Token := tkMul;
                            InList.Add(NewToken(@Token));
                            NextToken := [tkNumber,
                                          tkLBracket];
                       end;
                  '/': begin
                            if not (tkDiv in
                                   NextToken) then
                               begin
                                    Result := I;
                                    InList.Clear;
                                    Break;
                               end;
                            Token.Token := tkDiv;
                            InList.Add(NewToken(@Token));
                            NextToken := [tkNumber,
                                          tkLBracket];
                       end;
                  '(': begin
                            if not (tkLBracket in
                                   NextToken) then
                               begin
                                    Result := I;
                                    InList.Clear;
                                    Break;
                               end;
                            Inc(iBracket);
                            Token.Token := tkLBracket;
                            InList.Add(NewToken(@Token));

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
蜜桃av一区二区三区电影| 丝袜a∨在线一区二区三区不卡| 欧美顶级少妇做爰| 欧美日韩一区二区三区四区五区 | 欧美四级电影网| 91女厕偷拍女厕偷拍高清| av中文字幕不卡| 在线观看日韩毛片| 欧美性大战久久久久久久蜜臀| 91国产丝袜在线播放| 欧美特级限制片免费在线观看| 欧美巨大另类极品videosbest| 欧美性受xxxx| 欧美一级片在线| 久久久久久**毛片大全| 国产日韩欧美一区二区三区综合 | 亚洲激情中文1区| 亚洲一区二区四区蜜桃| 日本特黄久久久高潮| 国产一区二区三区免费在线观看| 国产成人精品免费一区二区| 色婷婷综合久久久久中文一区二区| 91麻豆高清视频| 欧美一级一区二区| 国产精品女上位| 丝袜脚交一区二区| 夫妻av一区二区| 在线一区二区三区做爰视频网站| 91精品在线一区二区| 久久久久国产精品麻豆| 一区二区三区av电影| 久久av资源网| 在线精品视频小说1| 久久综合色综合88| 一区二区三区加勒比av| 青草av.久久免费一区| 成人av手机在线观看| 9191成人精品久久| 国产精品福利一区二区三区| 无码av免费一区二区三区试看 | 91精品福利在线一区二区三区 | 久久精品夜色噜噜亚洲aⅴ| 亚洲日本va午夜在线电影| 青草国产精品久久久久久| 99亚偷拍自图区亚洲| 欧美一级理论片| 亚洲欧美激情插| 国产麻豆视频精品| 欧美三级乱人伦电影| 国产精品久久久久久户外露出| 午夜久久电影网| 91免费在线视频观看| 国产欧美日韩三区| 日本视频一区二区三区| 一本久久a久久免费精品不卡| 精品国产乱码久久久久久久久| 亚洲精品免费看| 成人99免费视频| 久久久不卡影院| 久久99国产精品久久| 91.com视频| 偷拍日韩校园综合在线| 日本韩国欧美一区| 综合色天天鬼久久鬼色| 不卡电影免费在线播放一区| 国产亚洲1区2区3区| 国产剧情一区在线| 日韩美女一区二区三区四区| 午夜私人影院久久久久| 欧美性色aⅴ视频一区日韩精品| 中文字幕在线不卡| 91亚洲精品久久久蜜桃网站| 欧美激情中文不卡| 成人av在线网| 中文字幕巨乱亚洲| 成人黄色软件下载| 国产精品美女久久久久aⅴ国产馆| 国产精品综合网| 中文字幕国产一区| 白白色亚洲国产精品| 中日韩av电影| 99久久99久久精品国产片果冻| 中文子幕无线码一区tr| 成人一级视频在线观看| 亚洲欧美怡红院| 欧美无乱码久久久免费午夜一区| 一区二区三区日韩欧美| 一本大道久久a久久综合婷婷| 亚洲精品国产一区二区精华液 | 日韩一区二区电影在线| 免费一级片91| 欧美国产1区2区| 91在线你懂得| 亚洲高清免费观看 | 欧美视频在线观看一区二区| 亚洲国产sm捆绑调教视频| 欧美一区二区三区喷汁尤物| 国产精品99精品久久免费| 中文字幕日韩av资源站| 精品视频资源站| 国产久卡久卡久卡久卡视频精品| 国产精品久久免费看| 在线观看免费成人| 国产一区二区在线影院| 亚瑟在线精品视频| 欧美一区二区三区成人| 成人性生交大片免费看中文网站| 专区另类欧美日韩| 欧美夫妻性生活| 国产99久久久国产精品潘金网站| 玉足女爽爽91| 精品国产1区二区| 在线观看av一区| 国产曰批免费观看久久久| 亚洲精品国产品国语在线app| 91精品国产免费久久综合| 国产乱码精品一区二区三区五月婷| 欧美激情一区二区三区蜜桃视频| 欧美日韩一区不卡| 成人午夜激情片| 精品影院一区二区久久久| 亚洲一区二区免费视频| 欧美极品xxx| 欧美一区二区啪啪| 91视频xxxx| 国产91在线观看丝袜| 日本欧美在线观看| 亚洲愉拍自拍另类高清精品| 欧美激情中文不卡| 精品国内片67194| 欧美三级电影在线看| 91一区二区在线| 国模一区二区三区白浆| 日日欢夜夜爽一区| 伊人婷婷欧美激情| 国产精品国产精品国产专区不片| 精品久久久网站| 国产欧美精品国产国产专区| 在线不卡免费欧美| 欧美色偷偷大香| 日本韩国欧美在线| 色呦呦日韩精品| 成人高清在线视频| 成人福利视频在线| 成人妖精视频yjsp地址| 国产成人免费高清| 国产精品综合在线视频| 国产最新精品免费| 国产精品自在在线| 国产精品99久久久久久宅男| 韩国成人福利片在线播放| 美女视频免费一区| 极品少妇xxxx偷拍精品少妇| 激情久久久久久久久久久久久久久久 | 欧美日韩中文精品| 欧美日韩综合不卡| 欧美日韩卡一卡二| 5858s免费视频成人| 91精品国产欧美日韩| 日韩欧美三级在线| 久久免费午夜影院| 中文字幕免费在线观看视频一区| 国产精品色婷婷久久58| 国产精品初高中害羞小美女文| 中文字幕一区二区三区在线播放| 国产精品情趣视频| 亚洲免费观看高清完整版在线观看| 亚洲男同性视频| 亚洲午夜久久久久中文字幕久| 亚洲一区二区av电影| 蜜臀久久久99精品久久久久久| 国精产品一区一区三区mba视频| 国产精品911| 色成人在线视频| 日韩一区二区影院| 国产日韩av一区| 亚洲综合一二区| 久国产精品韩国三级视频| 国产成人一区在线| 欧美综合亚洲图片综合区| 欧美精品免费视频| 国产亚洲欧洲997久久综合 | 六月丁香婷婷久久| 成人免费看片app下载| 欧美人妖巨大在线| 精品久久久久香蕉网| 1024精品合集| 久久精品国产澳门| 99精品欧美一区二区三区综合在线| 欧美人与禽zozo性伦| 国产精品无码永久免费888| 婷婷亚洲久悠悠色悠在线播放 | 色综合久久久久久久| 日韩一级免费观看| 亚洲精品亚洲人成人网在线播放| 免费观看30秒视频久久| 欧洲一区二区av| 久久夜色精品一区| 秋霞影院一区二区| 91久久精品网|