为一种非平凡的语言建立良好的支持是很多工作。考虑使用可以为您完成的库。其中大多数都不是免费的,但可能是要走的路,除非这个练习的重点是你学习编译器理论。
这种库的一个例子是Microsoft的C#编译器(Roslyn)。它可以作为免费的开源库使用,您可以在其他.NET应用程序中使用它。你给它一些代码作为输入(作为一个字符串),它告诉你关于那段代码的所有信息:符号和关键字在哪里,每个符号是什么,为自动完成提供什么,在哪里编译代码中的时间错误等等......
如果你想学习如何自己构建这样的东西,我建议你拿一本编译器理论书并预留几个月。虽然它不是火箭科学,但它也不是微不足道的。
一旦掌握了词法分析器和解析器,你就可能想要使用像Antlr这样的解析器/词法分析器来完成构建词法分析器和解析器的繁琐工作。之后,您仍然需要处理解析器为您提供的语法树。如果您正在构建自动完成(intellisense),请记住,当用户键入时,他们键入的代码可能无效,这可能会导致解析器关闭并导致错误的自动完成建议。正如我所说,要做到这一点还有很多工作要做。
也就是说,如果您只需要语法高亮,那么您可以使用已经拥有它的编辑器。根据您使用的技术,您可能可以使用 火花 要么 AvalonEdit 。但是,您不会获得智能感知(自动完成)或错误突出显示或依赖于理解代码含义(语义分析)的任何其他功能,但您可能会获得半个体面的语法突出显示。