我最近使用flex和bison开发了一种特定于域的语言。我想创建一个用户界面来使用这种语言编辑脚本文件。特别是我希望有一些常见的功能,如文件处理,菜单,按钮,语法高亮,错误检查等。你知道任何可以用来开发这种应用的工具吗?我更喜欢能够快速给我原型的那个。
答案 0 :(得分:1)
例如文件处理,菜单,按钮,语法高亮,错误 检查强>
我认为文件处理,菜单,按钮和突出显示是您最不关心的问题。你称之为“错误检查”的另一方面。这可能是一个棘手的问题。我将尝试向您提供一些指示,指出当用户在编辑器中输入源代码时,您可以(以某种原始方式)检测错误。
我假设您希望在编辑器中对日食(至少对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的文本编辑器字段中显示很酷的错误,您可以让您的bison生成的语法分析器生成易于解析的内容,如XML,其中包含错误类型及其所在位置(例如行和列) )然后使用它来显示错误...你只需在IDE中嵌入一个XML解析器(大量免费的解析器)并提取你需要的数据并相应地改变显示......这不应该是火箭科学的时候我想一想。