是否可以设计一种不需要在字符串文字中转义引号的语言?
|
在C ++(以及翻译后的大多数语言)中,以下内容当然是语法错误:
std::string str = \"Hello \"Jesus\"\"; // oopsquotes
是否可以创建不需要这些引号转义的类似C ++的语言?在一般情况下,编译器能否看到上面的一行并明智地确定我不希望字符串在Hello
之后终止?
语言和编译器喜欢要求我们编写精确的语法以避免歧义,但是我似乎无法想到一个类似于上面的非人为的示例,其中的含义可能不是“请在字符串中加上2” ”。在C ++中,\“ Jesus \”必须是一个预处理器宏,该宏必须扩展为某个字符串文字\"x\"
,以上内容可能表示任何其他含义。在不存在这种扩展的代码中支持这种潜在情况是否非常重要?
那么,是否可以在不需要转义字符串文字的地方创建一种语言?您能想到任何非人为的反例吗?这样的语言应该存在吗?也许已经有人...?
讨论。
没有找到相关结果
已邀请:
3 个回复
嗜蒂谷尘旱
襄挟款籍
或
赐黄
我喜欢这样,因为在您的字符串文字包含EOF的情况下,您可以选择对“引号结尾”定界符使用其他内容。