• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Prayer

            在一般中尋求卓越
            posts - 1256, comments - 190, trackbacks - 0, articles - 0
              C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

            聽說Yacc很久了,今天下下來試了一下,下載地址
            httpwww.monmouth.com~wstreettlex-yacclex-yacc.html 是gnu的開源項目,用C實現(xiàn)的,有源碼,并且基于Windows的
            注意,除了下bison.exe, flex.exe還要下載bison.simple文件并將其與bison.exe放于同一目錄下,
            下面進行簡單的測試:

            1. 在放置bison.exe的目錄下新建一個文件test.y(擴展名是y), 并在其中加入以下內(nèi)容:
            %{
             #include ctype.h
            %}
            %token NUMBER
            %left '+' '-'
            %%

            line  expression 'n'                 {printf( %dn, $1 ); }
            expression  expression '+' expression { $$ = $1 + $3; }
                         expression '-' expression { $$ = $1 - $3; }
                         '(' expression ')'        { $$ = $2; }
                         NUMBER                    { $$ = $1; }
                        ;
            %%

            yylex() {
              int c;
              c = getchar();
              if ( isdigit( c ) ) {
               yylval = c - '0';
               return NUMBER;
              }
             return( c );
             }

            保存后,進入Dos命令行,進入相應目錄后敲入bison test.y后回車,目錄下會多一個test_tab.c文件,
            這個便是bison自動生成的解釋器的代碼,不過還要自己加點代碼
            打開在文件最后加入以下代碼:
            main()
            {
                 yyparse();
            }

            yyerror(char msg)
            {
                printf(error %s encounteredn, msg);
            }
            可 以自己設計的,這里只是給出最簡單的例子,加入上述代碼后將test_tab.c文件進行編譯,如果沒錯的話就會生成一個test_tab.exe文件, 在Dos命令行下敲入test_tab后回車會出現(xiàn)一個空行,敲入3+4(不要加空格)后回車,將會出現(xiàn)結果7,再敲回車會報錯并退出,這就完成了一個簡 單的解釋器。
            參考網(wǎng)站:httpdinosaur.compilertools.net
            簡單試驗了一下Yacc和Lex,今后再慢慢研究一下它的語法和源代碼!

            欧美日韩中文字幕久久伊人| 久久狠狠爱亚洲综合影院| 精品亚洲综合久久中文字幕| 99热精品久久只有精品| 一极黄色视频久久网站| 99久久久国产精品免费无卡顿| 精品久久久久久国产牛牛app| 伊人久久久AV老熟妇色| 狠狠色丁香久久婷婷综| 亚洲一级Av无码毛片久久精品| 国产情侣久久久久aⅴ免费| 四虎影视久久久免费| 精品国产一区二区三区久久久狼| 国产免费福利体检区久久| 一本一道久久综合狠狠老| 久久久久国产精品嫩草影院| 日产精品久久久一区二区| 思思久久99热免费精品6| 久久本道伊人久久| 99国产精品久久久久久久成人热| 亚洲国产精品无码久久九九| 国产成人精品久久亚洲高清不卡 | 无码人妻精品一区二区三区久久 | 看全色黄大色大片免费久久久| 久久夜色精品国产噜噜麻豆| 99久久精品国产一区二区 | 久久无码专区国产精品发布| 国产一区二区精品久久凹凸| 色偷偷888欧美精品久久久| 97精品久久天干天天天按摩| 久久国产亚洲精品无码| 久久久亚洲欧洲日产国码aⅴ| 久久SE精品一区二区| 国色天香久久久久久久小说| 狠狠色丁香久久婷婷综合蜜芽五月| 久久精品人妻一区二区三区| 国产免费久久久久久无码| 久久精品国产欧美日韩| 久久综合五月丁香久久激情| 伊人久久大香线蕉精品不卡| 蜜桃麻豆www久久|