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

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

?? main.pas

?? 編譯原理實驗 完整的
?? PAS
?? 第 1 頁 / 共 4 頁
字號:
             TypeDenoter(typebegsys,follows+[semicolon]);
             CheckFollow(follows,ord(semicolon))
           end
    end;
  begin
  if sy in firsts
  then begin
         ChePutGet(typesy);
         repeat
           TypeDefinition([ident],follows+[semicolon]);
           ChePutGet(semicolon)
         until sy<>ident;
         CheckFollow(follows,84)
       end
  end;

  procedure VarDefPart(firsts,follows:symset);
    procedure VarDefinition(firsts,follows:symset);
    begin
      CheckFirst(firsts,follows,ord(ident));
      if sy in firsts
      then begin
             NameList([ident],follows+[colon]);
             ChePutGet(colon);
             TypeDenoter(typebegsys,follows+[semicolon]);
             CheckFollow(follows,ord(semicolon))
           end
    end;
  begin
  if sy in firsts
  then begin
         ChePutGet(typesy);
         repeat
           VarDefinition([ident],follows+[semicolon]);
           ChePutGet(semicolon)
         until sy<>ident;
         CheckFollow(follows,85)
       end
  end{VarDefPart};

  procedure ProcFuncDefPart(firats,follows:symset);
    procedure ProcDefinition(firsts,follows:symset);
    begin
      CheckFirst(firsts,follows,ord(procsy));
      if sy in firsts
      then begin
             ChePutGet(procsy);
             ChePutGet(ident);
             block([lparent,semicolon],follows,procsy);
             CheckFollow(follows,ord(semicolon))
           end
    end;
    procedure FuncDefinition(firsts,follows:symset);
    begin
      CheckFirst(firsts,follows,ord(funcsy));
      if sy in firsts
      then begin
             ChePutGet(funcsy);
             ChePutGet(ident);
             block([lparent,colon],follows,funcsy);
             CheckFollow(follows,ord(semicolon))
           end
    end;
  begin{ProcFuncDefPart}
    if sy in firsts
    then begin
           repeat
             case sy of
               procsy:ProcDefinition([procsy],follows+[semicolon]);
               funcsy:FuncDefinition([funcsy],follows+[semicolon])
             end;
             ChePutGet(semicolon)
           until not (sy in[procsy,funcsy]);
           CheckFollow(follows,ord(semicolon))
         end
  end{ProcFuncDefPart};

  procedure StatPart(firsts,follows:symset);
    procedure expression(firsts,follows:symset);
    forward;
    procedure SelectorList(firsts,follows:symset);
    begin
      CheckFirst(firsts,follows,68);
      if sy in firsts
      then begin
             repeat
               case sy of
                 lbracket:
                   begin
                     PutGet(lbracket);
                     expression(exprbegsys,follows+[comma,rbracket]);
                     while sy=comma do
                       begin
                         PutSy(rbracket);
                         PutGet(lbracket);
                         expression(exprbegsys,follows+[comma,rbracket])
                       end;
                       ChePutGet(rbracket)
                   end;
                   period:
                   begin
                     PutGet(period);
                     ChePutGet(ident)
                   end
               end{of case};
             until not(sy in[lbracket,period]);
             CheckFollow(follows,87)
           end
    end{SelectorList};
    procedure ActualParamList(firsts,follows:symset);
      var comcols:symset;
    begin
      CheckFirst(firsts,follows,65);
      if sy in firsts
      then begin
             expression(exprbegsys,follows+[comma,rparent]);
             while sy=comma do
              begin
                PutGet(sy);
                expression(exprbegsys,follows+[comma,rparent])
              end;
              CheckFollow(follows,ord(rparent))
           end
    end{ActualPatamList};
    procedure factor(firsts,follows:symset);
    begin
      CheckFirst(firsts,follows,63);
      if sy in firsts
      then begin
             case sy of
               intconst,charconst,strconst:PutGet(sy);
               ident:
                 begin
                   PutGet(sy);
                   if sy in[lbracket,period,lparent]
                   then case sy of
                        lbracket,period:SelectorList([lbracket,period],follows);
                        lparent:
                          begin
                            ChePutGet(lparent);
                            ActualParamList(exprbegsys,follows+[rparent]);
                            ChePutGet(rparent)
                          end
                        end
                 end{ident};
               lparent:
                 begin
                   PutGet(lparent);
                   expression(exprbegsys,follows+[rparent]);
                   ChePutGet(rparent)
                 end;
               notop:
                 begin PutGet(notop);  factor(facbegsys,follows) end
             end{case};
             CheckFollow(follows,88)
           end
    end{factor};

    procedure term(firsts,follows:symset);
    begin
      CheckFirst(firsts,follows,64);
      if sy in firsts
      then begin
             factor(facbegsys,follows+mulops);
             while sy in mulops do
                begin PutGet(sy); factor(facbegsys,follows+mulops) end;
             CheckFollow(follows,89)
           end
    end{term};
    procedure SimExpression(firsts,follows:symset);
    begin
      CheckFirst(firsts,follows,65);
      if sy in firsts
      then begin
           if sy in signs then PutGet(sy);
               term(termbegsys,follows+addops);
               while sy in addops do
                  begin PutGet(sy); term(termbegsys,follows+addops) end;
                  CheckFollow(follows,90)
           end;
    end;

    procedure expression{(firsts,follows:symset)};
    begin
        CheckFirst(firsts,follows,65);
        if sy in firsts
        then begin
               SimExpression(simexprbegsys,follows+relops);
               if sy in relops
               then begin
                      PutGet(sy);
                      SimExpression(simexprbegsys,follows+relops)
                    end;
               CheckFollow(follows,91)
             end
    end;
    procedure statement(firsts,follows:symset);
    forward;
    procedure AssignProcStatement(firsts,follows:symset);
    begin
      CheckFirst(firsts,follows,65);
      if sy in firsts
      then begin
             save;
             GetSy;
             if sy in [lbracket,period,becomes]
             then
               begin
                 PutSave;
                 if sy in[lbracket,period]
                 then SelectorList([lbracket,period],follows+[becomes]);
                 ChePutGet(becomes);
                 expression(exprbegsys,follows)
               end
             else
               begin
                 PutSy(call);
                 PutSave;
                 if sy=lparent
                 then begin
                        ChePutGet(lparent);
                        ActualParamList(exprbegsys,follows+[rparent]);
                        ChePutGet(rparent)
                      end
               end;
               CheckFollow(follows,92)
           end
    end{AssignProcStatement};

    procedure CompoundStatement(firsts,follows:symset);
    begin
      CheckFirst(firsts,follows,ord(beginsy));
      if sy in firsts
      then begin
             PutGet(beginsy);
             statement(statbegsys+[semicolon,endsy],
                       follows   +[semicolon,endsy]);
             while sy in [semicolon]+statbegsys do
             begin
               if sy=semicolon
               then PutGet(semicolon)
               else SyntaxError(ord(semicolon));
               statement(statbegsys+[semicolon,endsy],
                         follows   +[semicolon,endsy]);
             end;
             ChePutGet(endsy);
             CheckFollow(follows,92)
           end
    end;

    procedure IfStatement(firsts,follows:symset);
    begin
      CheckFirst(firsts,follows,ord(ifsy));
      if sy in firsts
      then begin
             PutGet(ifsy);
             expression(exprbegsys,follows+[thensy]);
             ChePutGet(thensy);
             statement(statbegsys+[elsesy,semicolon,endsy],
                       follows   +[elsesy,semicolon,endsy]);
             if sy=elsesy
             then begin
                     PutGet(elsesy);
                     statement(statbegsys+[elsesy,semicolon,endsy],
                               follows   +[elsesy,semicolon,endsy]);
                  end;
             CheckFollow(follows,92)
           end
    end{IfStatement};
    procedure WhileStatement(firsts,follows:symset);
    begin
      CheckFirst(firsts,follows,ord(whilesy));
      if sy in firsts
      then begin
             ChePutGet(ifsy);
             expression(exprbegsys,follows+[dosy]);
             ChePutGet(dosy);
             statement(statbegsys+[elsesy,semicolon,endsy],
                       follows   +[elsesy,semicolon,endsy]);
             CheckFollow(follows,92)
           end
    end{WhileStatement};
    procedure ForStatement(firsts,follows:symset);
    begin
      CheckFirst(firsts,follows,ord(forsy));
      if sy in firsts
      then begin
             ChePutGet(forsy);
             ChePutGet(ident);
             ChePutGet(becomes);
             expression(exprbegsys,follows+[tosy,downtosy]);
             if sy=tosy then PutGet(tosy) else ChePutGet(downtosy);
             expression(exprbegsys,follows+[dosy]);
             ChePutGet(elsesy);
             statement(statbegsys+[semicolon,endsy],
                       follows   +[semicolon,endsy]);
             CheckFollow(follows,92)
           end
    end{ForStatement};

    procedure statement{(firsts,follows:symset)};
    begin
      CheckFirst(firsts,follows,62);
      if sy in firsts
      then begin
              case sy of
                ident    :AssignProcStatement ([ident  ],follows);
                beginsy  :CompoundStatement   ([beginsy],follows);
                ifsy     :IfStatement         ([ifsy   ],follows);
                whilesy  :WhileStatement      ([whilesy],follows);
                forsy    :ForStatement        ([forsy  ],follows);
                endsy,semicolon,elsesy
                         :PutSy(empty)
              end{case};
              CheckFollow(follows,92)
           end
    end{segment};
  begin
    CompoundStatement(firsts,follows)
  end{StatPart};

  begin{block}
    CheckFirst(firsts,follows,66);
    if sy in firsts
    then begin
            if(BlockClass<>programsy) and (sy=lparent)
            then begin
                    ChePutGet(lparent);
                    FormalParamList([varsy,ident],follows+[rparent]);
                    ChePutGet(rparent)
                 end;
            if BlockClass=funcsy
            then begin
                    ChePutGet(colon);  ChePutGet(ident)
                 end;
            ChePutGet(semicolon);
            repeat
              ConstDefPart   ([constsy],follows+defbegsys+[beginsy]);
              TypeDefPart    ([typesy], follows+defbegsys+[beginsy]);
              VarDefPart     ([varsy]  ,follows+defbegsys+[beginsy]);
              ProcFuncDefPart([procsy,funcsy],follows+defbegsys+[beginsy]);
              if sy in defbegsys then SyntaxError(ord(beginsy))
            until not(sy in defbegsys);
            StatPart([beginsy],follows+[period,semicolon]);
            CheckFollow(follows,93)
    end
  end{block};

  procedure programx(firsts,follows:symset);
  begin
    CheckFirst(firsts,follows,ord(programsy));
    if sy in firsts
    then begin
          ChePutGet(programsy);
          ChePutGet(ident);
          block([semicolon],follows+[period],programsy);
          ChePutGet(period);
          CheckFollow(follows,94)
        end
  end;

begin{SyntaxAnalysis}
  SyPos.LineNumber:=0;
  GetSy;
  programx([programsy],[eofile]);
end{SyntaxAnalysis};



procedure SemanticAnalysis(var IL2,IL3:ILFileType;var DSP:text);
begin
end;
procedure CodeGeneration(var IL3:ILFileType; var PTCode:PTCFileType;
                             var DSP:text);
begin
end;
procedure AsmCodeGeneration(var PTCode:PTCFileType;var ASN:text);
begin
end;




begin{PaxCompoiler}
  Initialization;
  OpenFiles;
  {display number }
  writeln;writeln;
  writeln('PASCAL-D Multi-Pass Teaching Compiler');
  writeln('       Developed By ZhouWei          ');
  writeln('          Jan 1, 2003                ');
  {Lexical Analysis}
  reset(PAS);rewrite(IL1);rewrite(DSP);
  PassHead(pass1); LexicalAnalysis(PAS,IL1,DSP);PassFinal;
  close(PAS);
  WriteTabToDsp(DSP,pass1);WriteSTabToSFile;
  {Syntax anlysis}
  reset(IL1); rewrite(IL2);
  PassHead(pass2); SyntaxAnalysis(IL1,IL2,DSP);PassFinal;
  {discard(IL1);}
  if ErrCount=0
  then begin
       end
  else writeln('Lexical or Syntax Analysis Error');
  close(DSP)
end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品一区二区三区福利 | 成人app网站| 亚洲1区2区3区4区| 亚洲欧美中日韩| 国产精品色一区二区三区| 久久久久国产精品厨房| 久久精品夜色噜噜亚洲a∨| 欧美变态tickling挠脚心| 日韩一区二区影院| 日韩免费一区二区| 精品美女在线播放| 精品av综合导航| 国产视频在线观看一区二区三区 | 国产成人精品免费在线| 国产一区二区日韩精品| 国产成人免费视频网站 | 亚洲一区二区三区四区在线观看 | 国产精品日韩成人| 成人欧美一区二区三区1314| 日韩一区欧美一区| 午夜成人在线视频| 精品一区二区久久久| 国产成人免费视频网站| 91视频一区二区| 欧美猛男超大videosgay| 欧美丰满美乳xxx高潮www| 日韩欧美国产三级| 国产精品久久久久久户外露出| 亚洲免费大片在线观看| 蜜桃精品视频在线| 成人精品视频.| 精品视频资源站| 日韩免费高清视频| 亚洲视频小说图片| 热久久免费视频| 成人激情免费视频| 五月婷婷另类国产| 欧美性猛交xxxxxx富婆| 777亚洲妇女| 国产欧美中文在线| 亚洲成人你懂的| 国产成人午夜视频| 91精品黄色片免费大全| 国产精品传媒视频| 国产一区二区调教| 欧美性大战久久久久久久| 26uuu精品一区二区在线观看| 亚洲视频精选在线| 国产一区二区影院| 7777精品伊人久久久大香线蕉超级流畅 | 日本亚洲三级在线| 成人午夜精品一区二区三区| 欧美日韩精品一二三区| 亚洲情趣在线观看| 国产精品一区2区| 51午夜精品国产| 一卡二卡三卡日韩欧美| 国产传媒一区在线| 日韩一级片网址| 亚洲一区二区欧美日韩| 91蝌蚪porny九色| 国产欧美一区二区三区鸳鸯浴| 偷拍一区二区三区| 91福利精品第一导航| 国产精品理论在线观看| 国产一区二区三区久久久| 欧美一区二区观看视频| 性久久久久久久| 欧美色图第一页| 亚洲国产wwwccc36天堂| 欧美最猛黑人xxxxx猛交| 亚洲欧洲精品一区二区三区 | 亚洲精品免费在线播放| 国产不卡在线一区| 久久久久97国产精华液好用吗| 蜜桃av一区二区三区| 91精品国产丝袜白色高跟鞋| 亚洲一区在线观看视频| 在线观看欧美日本| 亚洲一区欧美一区| 欧美视频中文一区二区三区在线观看 | 欧美日韩免费视频| 亚洲国产日韩精品| 在线成人高清不卡| 久久国产精品无码网站| 久久综合九色欧美综合狠狠| 国产毛片一区二区| 一本久久a久久免费精品不卡| 国产精品一区二区在线观看不卡| 本田岬高潮一区二区三区| 久久精品日产第一区二区三区高清版| 日本亚洲一区二区| 久久影视一区二区| 风间由美一区二区三区在线观看 | 午夜精品福利一区二区三区av| 欧美另类一区二区三区| 美女一区二区三区| 国产亚洲va综合人人澡精品 | 亚洲色图在线看| 欧美主播一区二区三区美女| 亚洲高清免费在线| 日韩免费观看高清完整版| 国产美女娇喘av呻吟久久| 中文字幕在线一区免费| 欧美三区在线观看| 精品一区二区日韩| 一区二区在线观看免费视频播放| 欧美日本一道本在线视频| 久久精品国产999大香线蕉| 国产精品萝li| 日韩午夜在线观看视频| va亚洲va日韩不卡在线观看| 亚洲大片精品永久免费| 国产婷婷色一区二区三区四区| 色乱码一区二区三区88| 韩国av一区二区三区在线观看| 亚洲精品国产无套在线观| 精品久久久久久久久久久久包黑料| 成人国产电影网| 秋霞国产午夜精品免费视频| 国产精品日韩成人| 日韩一区二区精品葵司在线 | 一区二区三区在线免费播放| 日韩精品专区在线影院重磅| 99在线精品一区二区三区| 日韩国产在线观看| 日韩美女视频19| 精品日韩成人av| 欧美日韩一区二区在线视频| 丁香一区二区三区| 美女爽到高潮91| 亚洲精品日韩综合观看成人91| 日韩久久久久久| 欧美日本在线看| 色国产综合视频| 成人一级片网址| 精品一区二区三区免费观看| 亚洲成a人v欧美综合天堂| 国产精品久久久久久久蜜臀| 欧美精品一区二区在线播放| 在线综合+亚洲+欧美中文字幕| 91视频免费播放| 成人免费黄色大片| 国产精品一二三区| 久久er精品视频| 免费的国产精品| 免费观看在线综合| 蜜桃久久久久久| 久久精品国产精品亚洲精品| 日日摸夜夜添夜夜添精品视频 | 欧美日韩精品一区二区三区四区 | 国产激情91久久精品导航| 久久av资源站| 国产综合成人久久大片91| 麻豆精品一区二区综合av| 日本一道高清亚洲日美韩| 日韩av一区二区三区| 手机精品视频在线观看| 日韩黄色免费电影| 奇米色一区二区| 毛片av一区二区| 韩国女主播一区二区三区| 激情深爱一区二区| 国产精品夜夜嗨| 99re亚洲国产精品| 欧美在线免费观看视频| 欧美日韩专区在线| 日韩视频国产视频| 久久色.com| 国产精品另类一区| 亚洲精品免费在线观看| 午夜国产不卡在线观看视频| 日本美女视频一区二区| 精品一区二区三区免费| 国产精品综合av一区二区国产馆| 国产成人在线视频网址| 99视频一区二区| 欧美性大战xxxxx久久久| 3d成人h动漫网站入口| 欧美tickling挠脚心丨vk| 国产亚洲综合性久久久影院| 亚洲视频在线观看一区| 偷拍自拍另类欧美| 懂色av一区二区三区免费观看| 91免费版pro下载短视频| 欧美美女bb生活片| 国产精品家庭影院| 日韩中文欧美在线| 床上的激情91.| 欧美精品vⅰdeose4hd| 国产欧美一区二区三区沐欲| 亚洲一二三区不卡| 国产精品一区二区在线看| 欧美日韩国产免费一区二区 | 亚洲精品一区在线观看| 亚洲色欲色欲www| 国产一区二区三区观看| 欧美性xxxxxxxx| 国产日韩欧美a| 日韩电影一区二区三区|