语言文字支持

时间:2010-06-29 03:52:08

标签: compiler-construction constructor literals

是否有任何语言支持轻松扩展编译器以支持新的文字示例,例如json / xml / yaml /不同的字符串编码/额外数字类型。 我知道你总是可以分叉编译器,编写一个dsl,但这不是我所要求的。我知道像smalltalk和lisp这样的语言非常灵活,但是我不是在寻找一个团队可以做得相当简单的事情,而是试图将它带到整个语言并允许它作为常规练习。您也可以分享关于类似想法的任何研究。

或者有任何语言通过字符串参数alla在对象中通过特殊方法支持文字(在这种情况下,“”表示要传递给Xml.newFromTripleString(字符串a)的字符串的开头和结尾。< / p>

Xml exapmleXml =“”“                      #{名称}             #{标题}          “”” 我知道许多语言通过做类似的事情来支持这类事情 XMl exapmleXml = Xml.newFromTripleString(“”+“\ n”         “+”\ n“+         “#{name} +”\ n“+         “#{title} +”\ n“+         “”) 但是,任何语言都试图通过隐式转换等方式使这更容易吗?有关这些技术的研究吗?

关于如何在语言中引入更灵活的文字或文字支持的其他想法的任何链接和解释也会很好。

3 个答案:

答案 0 :(得分:3)

答案 1 :(得分:2)

听起来像C++ 0x中的用户定义的文字(§2.14.8)(警告:大型PDF)非常接近(或者可能正好)你正在寻找的东西。

答案 2 :(得分:1)

D programming language具有at compile time所需的构造,转换包含JSON into the corresponding object/struct/arrays的字符串文字。它甚至可以load the string at compile time from a external file。我不知道有任何代码可以做,但写起来并不是特别难。

如果你想在运行时做同样的事情,D有Associative arraysdynamic arrays以及标准的OO功能集,所以构建遗传JSON DOM模型应该不难。

我不知道其他任何编码,但如果它们比JSON更重要,我会感到惊讶。

简短回答: D本身并不支持它,但要让它起作用并不困难。