После моего предыдущего вопроса мне нужно проанализировать аргументы директивы, например:
Listen 80
Параметры могут быть немного сложными, с любым видом пробела между аргументами, а также с экранированными аргументами.
Моя цель - получить «сложный» список аргументов, подобный этому:
cmd "C:\Documents and Settings\..." "msg=\"hello\"" msg="hello" "msg=""hello"""
в TStringList из:
N | Text
--+-------------------------------
0 | cmd
1 | C:\Documents and Settings\...
2 | msg="hello"
3 | msg="hello"
4 | msg="hello"
Один из моих вопросов касается того, как избежать кавычек. У меня есть два примера выше, аргумент 2 и аргумент 4. В первом случае экранирование выполняется путем добавления косой черты перед кавычкой, а второй - путем преобразования двойных (двойных) кавычек в одну кавычку, синтаксис которой связан паскаль (я думаю?)
Как мне эффективно разбирать аргументы в объективном паскале (Delphi)?