<div dir="ltr">It's really hard to grasp the unquoting rules right.<div>It would be easier for programmers to implement the spec if there was a list of examples that could be easily made into unittests on the target language. Like this:</div><div><br></div><div>assert( unescape(`\\$`) == `\$` )</div><div>assert( unquote( unescape(`progname "\\$"`) ) == [`progname`, `$`] ) // clearly say that we need to do both unescape and unquote</div><div>/*same story with escaping and quoting*/<br></div><div><br></div><div>Here I used backticks instead quotes to denote strings to avoid escaping on the language level. It's called raw strings in some programming languages.</div><div><br></div><div>Fallible examples also could be added, like this:</div><div><br></div><div>assertThrown( unquote(`progname "--dir=%k"`) ) // Field codes must not be used inside a quoted argument</div><div><br></div><div>We could a prepared set of such examples, so anyone who is interested in implementing the spec could copy this pseudo-code and adapt it to the language in use and have the ready set of unittests. Also current implementations could check if their assumptions were right.</div></div>