是否可以设计一种不需要在字符串文字中转义引号的语言?

| 在C ++(以及翻译后的大多数语言)中,以下内容当然是语法错误:
std::string str = \"Hello \"Jesus\"\"; // oopsquotes
是否可以创建不需要这些引号转义的类似C ++的语言?在一般情况下,编译器能否看到上面的一行并明智地确定我不希望字符串在
Hello
之后终止? 语言和编译器喜欢要求我们编写精确的语法以避免歧义,但是我似乎无法想到一个类似于上面的非人为的示例,其中的含义可能不是“请在字符串中加上2” ”。在C ++中,\“ Jesus \”必须是一个预处理器宏,该宏必须扩展为某个字符串文字
\"x\"
,以上内容可能表示任何其他含义。在不存在这种扩展的代码中支持这种潜在情况是否非常重要? 那么,是否可以在不需要转义字符串文字的地方创建一种语言?您能想到任何非人为的反例吗?这样的语言应该存在吗?也许已经有人...? 讨论。     
已邀请:
利用其无限的超前功能,在基于PEG的解析器中实现起来相对容易。但是,正如其他人已经提到的那样,这样做是没有意义的,因为并非总是能够解决歧义,特别是在要将格式正确的代码嵌入字符串中的情况下。如果您禁止多行字符串,则可能会更容易一些。     
在Python中,您可以毫无问题地执行
str = \'Hello \"Jesus\"\'
str = \"\"\"Hello \"Jesus\".\"\"\"
    
某些语言使用不同类型的引号,因此可以在字符串文字中使用不同类型的引号。例如,Python具有双引号,单引号和三个双引号。 Bash具有某种形式的“用户可定制”的报价机制:
cat <<EOF
Hello \"World\"
EOF
我喜欢这样,因为在您的字符串文字包含EOF的情况下,您可以选择对“引号结尾”定界符使用其他内容。     

要回复问题请先登录注册