我使用flex作爲詞法分析器和野牛作爲解析器生成器,但兩者的結果都是 控制檯窗口,並且我想爲它創建一個gui(如ide) 那麼該怎麼做。 謝謝如何爲我的編譯器創建一個gui?
回答
不要。將編譯器留作命令行應用程序,而是教一些現有的IDE如何調用它並解析其輸出。
解析命令行輸出?呸。如何爲第三方提供一個API來獲得解析的AST或評估代碼等等。 – 2010-01-12 11:22:05
公平的建議,但是大多數開源IDE沒有太多辦法來處理這種事情。 – 2010-01-12 11:24:44
如果您將它作爲命令行來使用,您可以使用開源GUI並將您的編譯器插入它 - 免費爲您的編譯器獲得一個精彩的IDE;)。
對於IDE的,可以用自定義語言順利:
您將有一個很多無論如何編寫你的自定義插件是有趣的,但它會比編寫一個你想要的IDE少很多如果。
但是,另一個話題是爲你的語言寫一個解釋器,但我認爲這不是你想要的。如果是這樣,但是,您應該瞭解readline。
如果你是真的確定要編寫一個簡單的IDE你的語言(寫一個複雜的是老少咸宜的任務),嘗試至少使用適合於快速GUI語言開發(C#,Java,其他),併爲基礎獲得一個類似Notepad的應用程序。你可以從那裏開始。
但請記住,幾乎所有已知的編譯器都是命令行 - IDE只是執行並解析結果。這是有原因的,你知道。
理由命令行:
- 容易插入任何多用途IDE
- 易於實現自動化編譯(生成文件等)
- 易於實現自動化的其他任務(批量建設,發佈,部署,測試)
你在什麼操作系統?我會假設linux bc我很難在Windows上運行野牛,儘管我可以在Windows中編譯我的野牛輸出。
我沒有IDE。我在VMWare中使用了linux(所以我在windows7窗口或windows7窗口下有linux窗口),並使用程序員記事本編輯這些文件作爲我的首選簡單IDE。它有一些自動完成等。對於我的Windows編譯我的編譯器我可以設置一個批處理文件到Pnotepad,並在更改源時,我可以按F5運行bat文件並編譯我的來源,它有輸出。然而開發編譯器我使用alt-tab切換到我的linux終端並在那裏運行構建。
當我在linux上構建編譯器時,它會運行自動化腳本來查看是否有任何事情發生,並且我的linux編譯器以不同的顏色生成輸出錯誤。我不需要IDE。我希望我可以爲視覺工作室製作一些語言插件,我已經看過。它看起來很難,但是這傢伙在視覺工作室Native PHP support in Visual Studio 2010?
在闡述科內爾的答案的一部分的Eclipse PHP語法高亮顯示;這裏有一個指導你怎麼教 Eclipse是你的語言的IDE: http://www.eclipse.org/articles/article.php?file=Article-BuildYourOwnDSL/index.html
- 1. 我如何爲SharpDX創建一個GUI
- 2. 如何爲我的程序創建一個GUI
- 3. 單 - 編譯器爲服務,如何創建編譯
- 4. 我如何着手在Eclipse中創建編譯器/編輯器?
- 5. 編譯器是如何創建的
- 6. 如何爲C++創建一個命令行模擬器GUI
- 7. 如何爲Linux創建一個交叉編譯sysroot?
- 8. 如何以編程方式創建一個GUI併爲我的Windows窗體創建它?
- 9. 試圖創建一個菜單,我得到編譯器錯誤
- 10. 如何在java中創建一個gui?
- 11. 在ubuntu上爲C編寫的軟件創建一個GUI
- 12. Qt + VS2010編譯器:如何創建一個簡單的項目,將使用編譯爲VC staticaly鏈接提升?
- 13. 如何在我的GUI中使用python創建一個RadioButton?
- 14. 爲什麼我得到一個警告:觸發器編譯錯誤創建?
- 15. 最佳GUI編譯器爲C++
- 16. 爲應用程序創建一個GUI
- 17. 如何創建一個好的GUI爲歡迎屏幕
- 18. 如何爲每個編譯元素創建個人範圍?
- 19. 如何在GUI中爲一個按鈕創建多個偵聽器?
- 20. 如何創建GUI
- 21. 如何在gui中創建一個子gui(?)?
- 22. 如何爲SBT創建編譯器操作
- 23. 如何爲F#編譯器(Fsc.exe)創建快捷方式?
- 24. 如何使用Shell腳本爲c編譯器創建別名?
- 25. 如何在Jess中創建一個Java gui作爲applet?
- 26. 編譯器如何編譯編譯器?
- 27. 幾個OpenMP編譯器如何創建線程?
- 28. 無法看到編譯器如何使用他創建了類爲我關閉
- 29. 我的Java代碼顯示一個編譯器錯誤,當我爲我上面的Java代碼創建方法
- 30. 爲BeanShell創建一個編譯的Java命令
請注意Flex標籤是爲adobe產品。至於你如何提供一個gui,當然,你設計和編寫一個gui。請讓你的問題更具體。 – 2010-01-12 11:04:56
尼爾他的問題很好。他正在討論如何爲編譯器特別創建一個GUI。不是如何創建一個GUI。 – 2010-01-13 11:33:09