• <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>
            隨筆-341  評論-2670  文章-0  trackbacks-0
                接著上一篇的話題。開發智能提示首要的問題就是開發一個高性能的語法分析器。一個高性能的語法分析器總是包含一個高性能的詞法分析器的。本系列的第一篇已經提到了用C#和狀態機寫著色器對10萬行代碼進行著色只需要半秒。鑒于我們大部分的程序文件都只是幾千行,因此用相同的技術開發的詞法分析器顯然可以在幾十毫秒內完成對文件的分析,從而再也不需要擔心詞法分析器的性能問題了。

                著色器的狀態機一般都比詞法分析器的狀態機簡單,因為我們總是使用一個顏色來表達一些類型的記號(譬如操作符、數字和名字一般都用同樣的顏色——黑色)。因此我們每當支持一種新語言或者當語言升級的修改IDE的時候,總是要同時修改兩個狀態機。手寫狀態機是很容易出錯的,就如同手寫語法分析器也很容易出錯一樣。語法分析器的解決辦法是讓你給文法來生成語法分析器的代碼,因此詞法分析器和著色器也使用類似的方法:給狀態機生成代碼。

                目前這個狀態機只做了一半:只能畫狀態,暫時還不能指定顏色或者記號類型。當然添加一個指定顏色的功能是很簡單的,不過我還需要想一想如何用圖像來表達,讓狀態機顯得更清晰。今天做了一個晚上搞定了狀態機的編輯程序,如圖所示:

                接下來就可以開發兩個功能,第一個是生成著色器的代碼,第二個是生成詞法分析器的代碼。這樣就可以避免因為程序寫錯從而省下一大堆調試的時間了。
            posted on 2010-09-19 09:58 陳梓瀚(vczh) 閱讀(7169) 評論(6)  編輯 收藏 引用 所屬分類: 開發自己的IDE

            評論:
            # re: 開發自己的IDE(四) 2010-09-19 16:33 | 路青飛
            有個小小的疑問,為啥要用C#開發,為啥不用C++  回復  更多評論
              
            # re: 開發自己的IDE(四) 2010-09-19 17:45 | 空明流轉
            我說師祖啊,你每天都要被C++的擁躉折磨很長時間吶。其實我也希望你搞個C++的,然后我就可以用了。你現在這樣我咋移植。。。  回復  更多評論
              
            # re: 開發自己的IDE(四) 2010-09-19 19:04 | 陳梓瀚(vczh)
            @空明流轉
            我整個引擎都是C++寫的,只是IDE部分不是哈。你就讓linux用戶裝個mono,照樣移植。  回復  更多評論
              
            # re: 開發自己的IDE(四) 2010-09-19 19:04 | 陳梓瀚(vczh)
            @路青飛
            因為C++寫GUI吃力不討好,為什么不用C#呢。  回復  更多評論
              
            # re: 開發自己的IDE(四) 2010-09-20 02:43 | meax
            @陳梓瀚(vczh)
            大多數人都喜歡小巧快速,或者稱之為精致的東西。虛擬機目前還做不到這一點  回復  更多評論
              
            # re: 開發自己的IDE(四) 2010-09-20 18:07 | 陳梓瀚(vczh)
            @meax
            IDE本來就不精致,追求做IDE的東西要精致這顯然是不合理的哈。你看那個臃腫的java做eclipse和JBuilder不也是那么多人用。  回復  更多評論
              
            久久精品国产一区二区| 久久精品国产乱子伦| 久久精品无码一区二区日韩AV| 久久久国产精品| 精品蜜臀久久久久99网站| 久久se这里只有精品| 亚洲午夜久久久久妓女影院| 久久精品国产一区| 中文无码久久精品| 亚洲人成无码久久电影网站| 久久久久无码精品国产| 青青草原综合久久大伊人导航| 久久人人爽爽爽人久久久| 久久人妻无码中文字幕| 久久久久亚洲av毛片大| 久久青草国产手机看片福利盒子| 亚洲日本久久久午夜精品| 久久av免费天堂小草播放| 欧美一区二区精品久久| 久久香蕉超碰97国产精品| 国内精品久久久久影院亚洲| 久久激情五月丁香伊人| 久久国产精品99久久久久久老狼| 亚洲中文字幕久久精品无码喷水| 久久受www免费人成_看片中文| 久久精品一区二区影院| 久久久精品日本一区二区三区 | 国产—久久香蕉国产线看观看| 人妻久久久一区二区三区| 精品熟女少妇AV免费久久| yy6080久久| 人妻无码αv中文字幕久久琪琪布 人妻无码久久一区二区三区免费 人妻无码中文久久久久专区 | 精品蜜臀久久久久99网站| 久久狠狠高潮亚洲精品| 国产精品久久成人影院| 久久99热狠狠色精品一区| 久久久久免费精品国产| 久久精品这里热有精品| 久久久久无码精品| 思思久久99热只有频精品66| 中文字幕乱码久久午夜|