寻找与ANTLR 4或MPlex / MPPG兼容的C90语法

时间:2013-08-09 06:26:58

标签: c visual-studio antlr yacc lex

我在C#中为朋友的自定义CPU编写了一个C90交叉编译器,它生成了一个包含汇编语言的文本文件。然后我将它提供给他用Python编写的汇编程序,它生成一个包含机器代码的文本文件。然后我们通过串行连接将其传送到他的机器,此时他的自定义CPU运行该程序。

我想将整个过程捆绑到像“编译”按钮一样简单的过程,就像在任何现代IDE中一样。此外,谈到现代IDE,在记事本之外的其他东西开发我们的C代码并享受这些现代IDE必须提供的一些设施,例如文件管理,就地编译,语法高亮和智能,这将是很好的。

现在,我在开发的大部分时间都使用Visual Studio,因此我很清楚它已经与C / C ++编译器捆绑在一起。能够使用Visual C ++为我们的自定义CPU开发C代码并覆盖它的'compile'功能以便它调用我的编译器工具链而不是它的C ++编译器将是非常好的。

我用这种方法设想的问题是:

  1. 我认为不可能覆盖'compile'功能和
  2. 语法高亮/智能将不符合C90标准。我可以和#2一起生活,但我想知道#1是否可行。
  3. 如果不这样做,我需要咬紧牙关并将我的自定义编译器集成到Visual Studio中,这样做需要我有一个与ANTLR或MPlex / MPPG兼容的C90语法文件,以便我可以输出一个解析器/扫描器Visual Studio可以使用的C#语法高亮/智能。

    我在ANTLR网站上看到的语法文件是C99;有谁知道C90的实施? http://slps.github.io/zoo/#ANSI_C90似乎有一个,但语法是BGF,EBNF,DMS BNF和SDF格式,我认为这些格式与我提到的任何一种工具都不兼容。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

从Visual Studio 2010开始提供的基于MSBuild的新Visual C ++工具链为非Microsoft工具链提供了框架级支持。您仍然需要提供特定于编译器的构建文件,但您可以将结果干净地集成到Visual Studio中。

我不知道有人真的完成这个。