Я хочу проанализировать список аргументов вызова функции Lua в C++, используя Qt (4.8), чтобы избежать зависимости от интерпретатора Lua. Можно предположить, что список аргументов, разделенных запятыми, состоит только из строковых литералов и чисел. В конце концов результат должен быть доступен как QStringList
. Сложность заключается в том, чтобы справиться с запятыми, которые являются частью строковых аргументов, а также с тем фактом, что строковые аргументы могут использовать одинарные или двойные кавычки. Пока я сам не приду к решению (используя регулярные выражения), возможно, кто-то уже имел дело с этой или похожей проблемой.
Пример:
Строка списка аргументов
"Foo", "not 'bar'", 'a, b ,c', 42, 1e-8
должен быть преобразован в строковый список, содержащий элементы
Foo
, not 'bar'
, a, b, c
, 42
и 1e-8
(опуская кавычки по пунктам, чтобы избежать путаницы)