Я работаю над программой, которую можно использовать непосредственно из командной строки с параметрами и входными файлами, или полностью интерактивно, как оболочка. Для начального выполнения я использую Getopt GNU для разбора параметров командной строки.
При использовании файла я использую Flex и Bison. Это значительно упрощает синтаксический анализ, поскольку грамматика очень проста, но я не совсем уверен, как мне следует решать аспект оболочки. Я использовал библиотеки GNU readline и history прежде, когда я делал это, я полагался исключительно на strtok и множество сравнений с вложенными операторами switch. Это сработало, но я тоже выглядело как халтура ...
Есть ли лучший способ решить эту проблему?
Для ввода данных, который позволила бы оболочка, я думал о том, чтобы передать его напрямую во временный файл и снова использовать Flex и Bison, но для различных параметров (таких как параметры командной строки, которые Getopt сейчас анализирует для меня) есть лучший способ?
Я возился с идеей попытаться переработать мой getopt-код, поскольку он гибок для захвата всего, и если это не вариант, я мог бы принять его данные и передать их. Но я бы хотел второе мнение.
Спасибо