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

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

?? pl0-1.pas

?? PL0 源文件ni yao mad nainai
?? PAS
?? 第 1 頁 / 共 2 頁
字號:
               if addop=plus then gen(opr,0,2) else gen(opr,0,3)
            end
      end {expression};

      procedure condition(fsys: symset);
         var relop: symbol;
      begin
         if sym  = oddsym then
         begin getsym; expression(fsys); gen(opr, 0, 6)
         end else
         begin expression([eql, neq, lss, gtr, leq, geq]+fsys);
            if not(sym in [eql, neq, lss, leq, gtr, geq]) then
               error(20) else
            begin relop := sym; getsym; expression(fsys);
               case relop of
                  eql: gen(opr, 0, 8);
                  neq: gen(opr, 0, 9);
                  lss: gen(opr, 0, 10);
                  geq: gen(opr, 0, 11);
                  gtr: gen(opr, 0, 12);
                  leq: gen(opr, 0, 13);
               end
            end
         end
      end {condition};

   begin {statement}
      if sym = ident then
      begin i := position(id);
         if i = 0 then error(11) else
         if table[i].kind <> varible then
            begin {assignment to non-varible} error(12); i := 0
            end;
         getsym; if sym = becomes then getsym else error(13);
         expression(fsys);
         if i <> 0 then
            with table[i] do gen(sto, lev-level, adr)
      end else
      if sym = callsym then
      begin getsym;
         if sym <> ident then error(14) else
            begin i := position(id);
               if i = 0 then error(11) else
               with table[i] do
                  if kind=proc then gen(cal, lev-level, adr)
                  else error(15);
               getsym
            end
      end else
      if sym = ifsym then
      begin getsym; condition([thensym, dosym]+fsys);
         if sym = thensym then getsym else error(16);
         cx1 := cx; gen(jpc, 0, 0);
         statement(fsys); code[cx1].a := cx
      end else
      if sym = beginsym then
      begin getsym; statement([semicolon, endsym]+fsys);
         while sym in [semicolon]+statbegsys do
         begin
            if sym = semicolon then getsym else error(10);
            statement([semicolon, endsym]+fsys)
         end;
         if sym = endsym then getsym else error(17)
      end else
      if sym = whilesym then
      begin cx1 := cx; getsym; condition([dosym]+fsys);
         cx2 := cx; gen(jpc, 0, 0);
         if sym = dosym then getsym else error(18);
         statement(fsys); gen(jmp, 0, cx1); code[cx2].a := cx
      end;
      test(fsys, [], 19)
   end {statement};
 
begin {block}
   dx:=3;
   tx0:=tx;
   table[tx].adr:=cx;
   gen(jmp,0,0);
   if lev > levmax then error(32);
   repeat
      if sym = constsym then
      begin getsym;
         repeat constdeclaration;
            while sym = comma do
               begin getsym; constdeclaration
               end;
            if sym = semicolon then getsym else error(5)
         until sym <> ident
      end;
      if sym = varsym then
      begin getsym;
         repeat vardeclaration;
            while sym = comma do
               begin getsym; vardeclaration
               end;
            if sym = semicolon then getsym else error(5)
         until sym <> ident;
      end;
      while sym = procsym do
      begin getsym;
         if sym = ident then
            begin enter(proc); getsym
            end
         else error(4);
         if sym = semicolon then getsym else error(5);
         block(lev+1, tx, [semicolon]+fsys);
         if sym = semicolon then
            begin getsym;test(statbegsys+[ident,procsym],fsys,6)
            end
         else error(5)
      end;
      test(statbegsys+[ident], declbegsys, 7)
   until not(sym in declbegsys);
   code[table[tx0].adr].a := cx;
   with table[tx0] do
      begin adr := cx; {start adr of code}
      end;
   cx0 := 0{cx}; gen(int, 0, dx);
   statement([semicolon, endsym]+fsys);
   gen(opr, 0, 0); {return}
   test(fsys, [], 8);
   listcode;
end {block};
 
procedure interpret;
   const stacksize = 500;
   var p,b,t: integer; {program-, base-, topstack-registers}
      i: instruction; {instruction register}
      s: array [1..stacksize] of integer; {datastore}
   function base(l: integer): integer;
      var b1: integer;
   begin b1 := b; {find base l levels down}
      while l > 0 do
         begin b1 := s[b1]; l := l - 1
         end;
      base := b1
   end {base};
 
begin writeln(' start pl/0');
   t := 0; b := 1; p := 0;
   s[1] := 0; s[2] := 0; s[3] := 0;
   repeat i := code[p]; p := p + 1;
      with i do
      case f of
      lit: begin t := t + 1; s[t] := a
           end;
      opr: case a of {operator}
           0: begin {return}
                 t := b - 1; p := s[t + 3]; b := s[t + 2];
              end;
           1: s[t] := -s[t];
           2: begin t := t - 1; s[t] := s[t] + s[t + 1]
              end;
           3: begin t := t - 1; s[t] := s[t] - s[t + 1]
              end;
           4: begin t := t - 1; s[t] := s[t] * s[t + 1]
              end;
           5: begin t := t - 1; s[t] := s[t] div s[t + 1]
              end;
           6: s[t] := ord(odd(s[t]));
           8: begin t := t - 1; s[t] := ord(s[t] = s[t + 1])
              end;
           9: begin t := t - 1; s[t] := ord(s[t] <> s[t + 1])
              end;
          10: begin t := t - 1; s[t] := ord(s[t] < s[t + 1])
              end;
          11: begin t := t - 1; s[t] := ord(s[t] >= s[t + 1])
              end;
          12: begin t := t - 1; s[t] := ord(s[t] > s[t + 1])
              end;
          13: begin t := t - 1; s[t] := ord(s[t] <= s[t + 1])
              end;
          end;
      lod: begin t := t + 1; s[t] := s[base(l) + a]
           end;
      sto: begin s[base(l)+a] := s[t]; writeln(s[t]); t := t - 1
           end;
      cal: begin {generate new block mark}
              s[t + 1] := base(l); s[t + 2] := b; s[t + 3] := p;
              b := t + 1; p := a
           end;
      int: t := t + a;
      jmp: p := a;
      jpc: begin if s[t] = 0 then p := a; t := t - 1
           end
      end {with, case}
   until p = 0;
   write(' end pl/0');
end {interpret};

begin {main program}
   writeln('please input source program file name:');
   readln(sfile);
   assign(fin,sfile);
   reset(fin);

   for ch := chr(0) to chr(255) do ssym[ch] := nul;
   word[ 1] := 'begin     ';      word[ 2] := 'call      ';
   word[ 3] := 'const     ';      word[ 4] := 'do        ';
   word[ 5] := 'end       ';      word[ 6] := 'if        ';
   word[ 7] := 'odd       ';      word[ 8] := 'procedure ';
   word[ 9] := 'then      ';      word[10] := 'var       ';
   word[11] := 'while     ';
   wsym[ 1] := beginsym;     wsym[ 2] := callsym;
   wsym[ 3] := constsym;     wsym[ 4] := dosym;
   wsym[ 5] := endsym;       wsym[ 6] := ifsym;
   wsym[ 7] := oddsym;       wsym[ 8] := procsym;
   wsym[ 9] := thensym;      wsym[10] := varsym;
   wsym[11] := whilesym;
   ssym[ '+'] := plus;       ssym[ '-'] := minus;
   ssym[ '*'] := times;      ssym[ '/'] := slash;
   ssym[ '('] := lparen;     ssym[ ')'] := rparen;
   ssym[ '='] := eql;        ssym[ ','] := comma;
   ssym[ '.'] := period;     ssym[ '#'] := neq;
   ssym[ '<'] := lss;        ssym[ '>'] := gtr;
   ssym[ '['] := leq;        ssym[ ']'] := geq;
   ssym[ ';'] := semicolon;
   mnemonic[lit] := '  lit';   mnemonic[opr] := '  opr';
   mnemonic[lod] := '  lod';   mnemonic[sto] := '  sto';
   mnemonic[cal] := '  cal';   mnemonic[int] := '  int';
   mnemonic[jmp] := '  jmp';   mnemonic[jpc] := '  jpc';
   declbegsys := [constsym, varsym, procsym];
   statbegsys := [beginsym, callsym, ifsym, whilesym];
   facbegsys  := [ident, number, lparen];
   {page(output);}
   err := 0;
   cc := 0;
   cx := 0;
   ll := 0;
   ch := ' ';
   kk := al;
   getsym;
   block(0, 0, [period]+declbegsys+statbegsys);
   if sym <> period then error(9);
  if err=0 then interpret else write(' errors in pl/0 program');
99: writeln
end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
av高清久久久| 日韩精品一区二区在线观看| 欧美综合欧美视频| 久久综合久久鬼色中文字| 亚洲理论在线观看| 国产91精品一区二区麻豆亚洲| 欧美在线啊v一区| 国产精品久久久久影院色老大| 免费精品视频在线| 欧美专区亚洲专区| 国产精品日韩精品欧美在线| 久草精品在线观看| 欧美老肥妇做.爰bbww视频| 日韩美女视频19| 国产乱子伦一区二区三区国色天香| 欧美日韩一区二区在线视频| 亚洲欧美在线视频观看| 成人一道本在线| 国产欧美精品在线观看| 国产在线一区二区综合免费视频| 欧美一区二区在线观看| 亚洲成人免费在线| 欧美色手机在线观看| 一区二区三区中文字幕精品精品| 丰满少妇在线播放bd日韩电影| 精品国产区一区| 久久99国内精品| 欧美一区中文字幕| 日韩高清不卡一区二区| 欧美电影在线免费观看| 天天影视网天天综合色在线播放| 欧洲在线/亚洲| 亚洲国产裸拍裸体视频在线观看乱了| 色婷婷一区二区三区四区| 亚洲色图一区二区三区| 色狠狠桃花综合| 一区二区三区资源| 欧美日韩精品一二三区| 天堂va蜜桃一区二区三区漫画版| 欧美在线视频全部完| 亚洲电影一区二区| 欧美一区二区精品| 久久99国产精品尤物| 国产日韩成人精品| 99vv1com这只有精品| 亚洲午夜久久久久久久久久久| 欧美性欧美巨大黑白大战| 石原莉奈在线亚洲二区| 欧美成人一区二区| 成人性生交大片免费| 亚洲三级在线观看| 欧美精品九九99久久| 国产在线视视频有精品| 国产精品国产三级国产a| 日本久久电影网| 日本va欧美va精品发布| 国产日韩欧美一区二区三区乱码| aa级大片欧美| 日韩—二三区免费观看av| 久久一夜天堂av一区二区三区| a在线欧美一区| 亚瑟在线精品视频| 国产清纯白嫩初高生在线观看91 | 国产精品一区二区果冻传媒| 久久精品欧美日韩精品| 色综合天天综合色综合av| 日韩成人午夜精品| 中文子幕无线码一区tr| 在线观看成人免费视频| 国产乱理伦片在线观看夜一区| 亚洲欧美综合在线精品| 欧美精品久久一区| www.色精品| 久久超级碰视频| 一区二区三区影院| 久久久久久97三级| 欧美色视频在线观看| 成人亚洲精品久久久久软件| 午夜精品久久久久久久| 国产精品久久久久久久第一福利| 91精品国产综合久久久蜜臀图片| 成人亚洲精品久久久久软件| 日本va欧美va精品发布| 一区二区三区在线观看动漫| 日韩理论片中文av| 日韩欧美123| 欧美主播一区二区三区美女| 国产成人亚洲综合色影视 | 欧美激情一二三区| 制服丝袜日韩国产| 色老头久久综合| 99国产欧美另类久久久精品| 久久aⅴ国产欧美74aaa| 亚洲最大成人综合| 中文字幕一区二区三区在线观看| 精品剧情在线观看| 欧美理论片在线| 欧美色爱综合网| 日本精品一级二级| 91免费看`日韩一区二区| 国产精品18久久久久久久久久久久| 视频在线观看一区二区三区| 一区二区三区精品在线| 国产精品初高中害羞小美女文| 欧美mv和日韩mv的网站| 欧美一区二区黄| 欧美浪妇xxxx高跟鞋交| 欧美日韩一区二区三区在线看| 色综合天天狠狠| 99天天综合性| 99久久夜色精品国产网站| 国产成人自拍高清视频在线免费播放| 久久99精品国产.久久久久| 免费亚洲电影在线| 久久99九九99精品| 精品午夜久久福利影院| 蜜桃久久久久久久| 九色|91porny| 国产精品主播直播| 国产成人福利片| 成人午夜电影久久影院| 国产成人精品网址| 成年人午夜久久久| 97成人超碰视| 欧美日韩在线播放三区四区| 欧美日韩国产一二三| 91精品国产高清一区二区三区| 欧美一区二区三区免费| 日韩一区二区三区av| 精品国产精品一区二区夜夜嗨| 精品国产亚洲一区二区三区在线观看| 26uuu亚洲综合色| 中文字幕高清一区| 一区二区三区日韩| 日韩精品欧美成人高清一区二区| 理论电影国产精品| 国产91精品在线观看| 在线免费观看视频一区| 欧美精品自拍偷拍| 国产亚洲人成网站| 一区二区三区四区蜜桃| 日本伊人午夜精品| 国产a久久麻豆| 欧美色中文字幕| xvideos.蜜桃一区二区| 日韩美女视频一区二区| 天天av天天翘天天综合网| 国产中文字幕一区| 欧美在线综合视频| 91精品啪在线观看国产60岁| 久久麻豆一区二区| 亚洲线精品一区二区三区| 久久se精品一区精品二区| 91在线小视频| 欧美大片顶级少妇| 亚洲精品中文在线影院| 久久国内精品自在自线400部| av电影天堂一区二区在线观看| 欧美久久一区二区| 国产精品免费视频网站| 婷婷国产v国产偷v亚洲高清| 国产不卡在线视频| 日韩一区二区精品| 亚洲欧美日韩一区二区| 国产麻豆成人传媒免费观看| 91高清在线观看| 欧美激情一区二区三区全黄| 日韩经典中文字幕一区| hitomi一区二区三区精品| 欧美不卡激情三级在线观看| 一区二区三区中文字幕精品精品 | 日韩一区二区高清| 一区二区日韩av| 波多野结衣亚洲| 26uuu国产日韩综合| 日韩电影在线免费看| 在线观看一区日韩| 国产精品国产a级| 国产精品自拍网站| 精品乱人伦小说| 日韩主播视频在线| 欧美少妇性性性| 一区二区三区成人| 91美女精品福利| 中文字幕一区二区三区不卡在线| 韩国毛片一区二区三区| 欧美一级欧美三级| 天堂在线一区二区| 欧美性三三影院| 亚洲愉拍自拍另类高清精品| 91丨九色丨黑人外教| 中文字幕欧美激情一区| 国产99精品视频| 国产日韩欧美麻豆| 成人午夜免费av| 亚洲视频免费观看| 欧美v国产在线一区二区三区| 亚洲 欧美综合在线网络| 欧美中文字幕一区| 亚洲午夜久久久久久久久电影网|