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

时间:2019-01-20 09:53:27

标签: unix sml smlnj ansi-escape

这是我的编译器课程的第二周,我被分配了一个语法突出显示工具。由于我是Standard ML的新手,因此我尝试打印以下内容:print("\033[1;31m hello world\n");。在C / C ++中,这种类型的语句可以正常工作,即,它产生彩色输出,而在SML中,它只是打印它们。请帮帮我。

1 个答案:

答案 0 :(得分:2)

问题可能是八进制表示法的\033转义序列。八进制数字是SML不支持的类似C的语言的旧功能。您可以使用十进制(\027)或十六进制(\u001b)表示法。

还值得注意的是,您打算使用的控制序列不是相应语言的功能。而是由程序将在其中运行并输出到的 terminal 解释它们。特别是只有带有ANSI / VT100 emulation的终端才能理解这一点。