Я создаю предметно-ориентированный язык. Один из вызовов макроса выглядит примерно так:
(мой макрос foo (bar "baz" qux) yay)
С учетом того, как я написал свой макрос, вторым аргументом здесь должен быть список строк в паре круглых скобок. Таким образом, мой макрос работает до тех пор, пока bar и qux оцениваются как строки. Давайте просто скажем, что они эквивалентны "bar" и "qux", а my-macro обрабатывает второй аргумент как "bar baz qux".
Но теперь я понял, что я действительно хочу, чтобы «баз» сохранил свои кавычки; Я хочу, чтобы мой макрос обрабатывал второй аргумент как "bar \"baz\" qux". Это возможно? Могу ли я сказать внутри моего макроса, когда я могу просто использовать строку как есть, а когда мне нужно добавить двойные кавычки?
Заранее спасибо!