• <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++博客 :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

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

            1. 在放置bison.exe的目錄下新建一個(gè)文件test.y(擴(kuò)展名是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 );
             }

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

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

            欧美午夜A∨大片久久 | 久久线看观看精品香蕉国产| 看久久久久久a级毛片| 国内精品久久久久| 久久综合成人网| 久久精品aⅴ无码中文字字幕重口| 久久―日本道色综合久久| 久久久久久亚洲精品不卡| WWW婷婷AV久久久影片| 亚洲欧美一级久久精品| 久久久久人妻一区二区三区vr | 少妇高潮惨叫久久久久久 | 人妻精品久久久久中文字幕69| 成人午夜精品久久久久久久小说| 国内精品伊人久久久影院| a高清免费毛片久久| 综合网日日天干夜夜久久 | 青青草国产97免久久费观看| 久久国产精品无码一区二区三区| 热RE99久久精品国产66热| 麻豆精品久久久一区二区| 久久精品国产亚洲av高清漫画| 久久91精品国产91久| 久久久久久青草大香综合精品| 久久成人影院精品777| 日产精品久久久久久久性色| 狠狠色丁香婷婷久久综合五月| 天天做夜夜做久久做狠狠| 国产精品欧美久久久久天天影视| 国内精品久久人妻互换| 久久不见久久见免费视频7| 精品无码久久久久国产动漫3d| 麻豆久久| 久久综合亚洲色HEZYO社区| 日日狠狠久久偷偷色综合96蜜桃| 久久成人永久免费播放| 久久综合一区二区无码| 少妇无套内谢久久久久| 伊人久久大香线焦AV综合影院| 国产成人久久精品一区二区三区 | 久久综合久久综合九色|