string interpolation with nested quotation marks
String interpolation in DDlog requires inner quotation marks to be backslashed, like this:
"${foo(\"bar\")}"
Other languages tend to use a different syntax that can avoid the need for the inner backslashes, in which the ${ introduces a new nested lexical context that ends only at } and not at any outer syntax, so that this interpolation could be expressed more naturally as:
"${foo("bar")}"
This would also be more ergonomic in DDlog, in my opinion.
I agree. This change will break existing code, which is annoying, but at least it won't break it silently.
Implementation-wise, we currently use parsec's built-in string literal parser. We will have to change this to implement nested expression parsing.