labath added a comment.

In https://reviews.llvm.org/D26883#601638, @jingham wrote:

> The outermost quote character is syntactically significant in the lldb 
> command language.  If you say:
>
> memory read -c `count_var` 0x123345
>
> then lldb evaluates the expression in the backticks, replacing the argument 
> with the result of the expression.  So you can't get rid of the quote 
> character altogether.  The other use is in completion to figure out what an 
> unterminated quoted string should be completed with.
>
> Since only the outermost quoting character is important, I think the problem 
> is more tractable than your examples would suggest.


I didn't mention backticks, as (to use bash parlor) command substitution and 
word splitting are two separate passes. backticks can be embedded into a single 
word, which also contains other kinds of quote characters, so storing the quote 
character alongside the word-split argument is not going to help you implement 
command substitution. LLDB actually handles this mostly correctly now (notice 
that in each case the input gets parsed as a single word):

  (lldb) `1+1`
  error: '2' is not a valid command.
  error: Unrecognized command '2'.
  (lldb) a`1+1`a
  error: 'a2a' is not a valid command.
  error: Unrecognized command 'a2a'.
  (lldb) `1+1`a`2+2`
  error: '2a4' is not a valid command.
  error: Unrecognized command '2a4'.
  (lldb) "a a"`1+1`"b a"
  error: unknown command shorthand suffix: ' a'
  error: Unrecognized command 'a a2b a'.

The reason this works is because the command substitution is done in a 
different place in the code, so I still hold my view that the Args class does 
not need to differentiate between the different quote characters as it is just 
a holder for a word-split input.

That said, none of this should affect this patch. If the quote char field has 
been there until now, it can stay a little longer.


Repository:
  rL LLVM

https://reviews.llvm.org/D26883



_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to