如何为标准 ML 中的文本输出着色?

How to colourise the text output in Standard ML?

这是我的编译器课程的第二周,我接到了一项任务,要做一个语法高亮器。由于我是 Standard ML 的新手,所以我尝试打印类似:print("3[1;31m hello world\n"); 的内容。在 C/C++ 中,这种类型的语句工作正常,也就是说,它产生彩色输出,但在 SML 中它只是打印它们。请帮帮我。

问题可能出在八进制表示法中的 3 转义序列。八进制数是 SML 不支持的类 C 语言的遗留功能。您可以改用十进制 (7) 或十六进制 (\u001b) 表示法。

同样值得注意的是,您打算使用的控制序列并不是相应语言的特性。相反,它们由 终端 解释,程序将 运行 输入并输出到。特别是这个只有 ANSI / VT100 emulation.

的终端才能理解