我最近使用 flex 和 bison 开发了一种特定领域的语言。我想创建一个用户界面来使用这种语言编辑脚本文件。特别是我想要一些通用的功能,比如文件处理、菜单、按钮、语法高亮、错误检查等等。您知道任何可用于开发此类应用程序的工具吗?我更喜欢一个可以快速给我原型的。
1 回答
例如文件处理、菜单、按钮、语法高亮、错误检查
我认为文件处理、菜单、按钮和突出显示是您最不关心的问题。另一方面,您所谓的“错误检查”。这可能是一个棘手的问题。当用户在编辑器中输入源代码时,我将尝试为您提供一些指示,说明如何(以某种原始方式)即时检测错误。
我假设您希望在编辑器中对编写的代码进行实时分析,例如 Eclipses(至少对于 java)?我不熟悉 Eclipse 如何在内部工作,但这可能是通过一些预编译过程完成的,当您更改它时,它会一次又一次地处理所有源代码。
对此进行原型制作(实际上也是构建非原型)的一种方法是使用 Flex 和 Bison,我注意到您已经熟悉这些工具。您可以为所有有趣的部分构建语法并创建操作代码,这样您就可以相当容易地发现语法偏差。在此之后,当用户在您的 IDE 中编写源代码并通过某种方式显示输出时,您可以让您的编辑器运行 flex 和 bison 生成的 c 代码。无论是在类似终端的状态窗口中还是直接在文本编辑字段中(就像 Eclipse 所做的那样)(后一种情况可能很难构建,但绝不是不可能的,并且会给您的 IDE 带来专业的感觉)。
假设您想为 ADA 95 构建一个 IDE,下面的 Flex 和 Bison(实际上是 Lex 和 Yacc)代码可以帮助您做到这一点(它是一个不错的语法分析器,可以报告错误(什么和在哪里)): http://www .adaic.org/resources/add_content/standards/95lrm/lexer9x.l http://www.adaic.org/resources/add_content/standards/95lrm/grammar9x.y
希望这可以帮助。
编辑:要在 IDE 的文本编辑器字段中突出显示很酷的错误等,您可以让野牛生成的语法分析器生成易于解析的内容,例如 XML,其中包含错误的类型及其所在的位置(行和列例如)然后用它来显示错误...您只需在 IDE 中嵌入一个 XML 解析器(有很多免费的可用)并提取您需要的数据并相应地更改显示...这不应该是火箭科学当我想到它。