• <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) 閱讀(7142) 評論(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| 久久亚洲av无码精品浪潮| 中文字幕久久波多野结衣av| 久久久久亚洲AV片无码下载蜜桃 | 亚洲国产日韩欧美综合久久| 久久人人爽人人爽人人av东京热 | 久久国产精品免费一区二区三区| 久久国产视屏| 精品999久久久久久中文字幕| 久久人妻少妇嫩草AV蜜桃| 亚洲中文久久精品无码ww16| 激情五月综合综合久久69| 99久久做夜夜爱天天做精品| 久久精品一区二区| 无码精品久久久天天影视| 久久久黄片| 国产午夜福利精品久久| 久久夜色精品国产亚洲| 国产精品免费看久久久香蕉| 国产午夜福利精品久久2021| 亚洲欧美伊人久久综合一区二区 | 国产69精品久久久久99| 久久久久久毛片免费播放| 久久人妻少妇嫩草AV蜜桃| 久久久久久久久久免免费精品| 99久久精品午夜一区二区| 久久狠狠高潮亚洲精品| 久久久久久午夜精品| 无码8090精品久久一区| 国产精品久久久久久久午夜片| 久久99精品久久久久久| av无码久久久久不卡免费网站| 亚洲AV成人无码久久精品老人| 91麻豆国产精品91久久久| 久久久久亚洲av毛片大| 久久国产高清一区二区三区| 一级做a爰片久久毛片16| 国产一区二区三精品久久久无广告| 免费国产99久久久香蕉| 久久精品国产69国产精品亚洲| 99久久99久久久精品齐齐|