我使用 flex 作为词法分析器,使用 bison 作为解析器生成器,但是两者的结果都是控制台窗口,我想要一个 gui(如 ide),所以如何做到这一点。谢谢
4 回答
不。将编译器保留为命令行应用程序,而是教一些现有的 IDE 如何调用它并解析它的输出。
如果您将其保留为命令行,则可以使用开源 GUI 并将您的编译器插入其中 - 免费为您的编译器提供出色的 IDE ;)。
对于可以很好地使用自定义语言的 IDE:
无论如何,编写自定义插件会很有趣,但这比自己编写 IDE 要少得多。
然而,另一个主题是为您的语言编写解释器,但我认为这不是您的目标。但是,如果是这样,您应该了解readline。
如果您真的确定要为您的语言编写一个简单的IDE(编写一个复杂的 IDE 是一项长期的任务),请尝试至少使用一种适合快速 GUI 开发的语言(C#、Java 等) , 并获得一个可工作的类似记事本的应用程序作为基础。你可以从那里开始。
但是请记住,几乎所有已知的编译器都是命令行的——IDE 只是执行和解析结果。这是有原因的,你知道的。
命令行的原因:
- 易于插入任何多功能 IDE
- 易于自动化编译(makefile等)
- 易于自动化其他任务(批量构建、发布、部署、测试)
你在什么操作系统上?我假设 linux bc 我很难让野牛在 Windows 上运行,尽管我可以在 Windows 中编译我的野牛输出。
我没有IDE。我在 VMWare 中有 linux 并启用了 unity(所以我在 windows7 windows 上或下都有 linux windows),并使用程序员记事本来编辑文件作为我首选的简单 IDE。它具有一些自动完成功能等。对于我的编译器的 Windows 构建,我可以将批处理文件设置为 pnotepad,并且在更改源时我可以按 F5 运行 bat 文件并编译我的源并且它具有输出。但是开发编译器时我使用 alt-tab 切换到我的 linux 终端并在那里运行构建。
当我在 linux 上构建编译器时,它会运行自动脚本以查看是否有任何损坏,并且我的 linux 编译器会以不同的颜色构建输出错误。我不需要 IDE。我确实希望我可以为我已经研究过的视觉工作室提供某种语言插件。看起来很困难,但是这家伙在 Visual Studio 中使用 php 语法高亮Visual Studio 2010 中的原生 PHP 支持?
详细阐述 Kornel 答案的 Eclipse 部分;这里有一个指针指向如何教 Eclipse 成为您的语言的 IDE:http: //www.eclipse.org/articles/article.php? file=Article-BuildYourOwnDSL/index.html