У меня есть простой синтаксический анализатор языков, использующий Bison / Flex, и я хочу читать два отдельных числа из командной строки, которые выглядят так: ./compile
У меня есть чтение во входных данных из main и сохранение их в массив. Насколько я могу судить, эта часть работает нормально, у меня возникают проблемы, когда я пытаюсь сохранить входные данные (и имя входных данных), и я пытаюсь поместить их в несортированную карту, но я могу только выяснить, как сделать один ввод, но потом не может попасть на другой ввод.
Я попытался сохранить входные данные в вектор, а затем удалить верхний элемент для сохранения на карту, но у компилятора возникла проблема с вектором, поскольку он говорит, что не может преобразовать вектор в двойное число (я не могу понять, почему попытка удалить двойник из вектора вернула бы вектор)
Вероятно, это потому, что я еще не слишком знаком с Bison / Flex, и я мало что делал с C ++ уже несколько лет, поэтому извините, если решение очевидно. Я искал ответ около дня, но ничего не могу найти. Пожалуйста, дайте мне знать, если вы можете мне помочь.
Это главное:
и для этого нужно сохранить каждый ввод из командной строки с типом «параметр:»
Я пробовал несколько способов (список, стек, массив), но пока единственным способом, который не вызывает ошибку, является массив, подобный: параметр: INDENTIFIER ':' type {symbols.insert ( $ 1, params [0]);};
Но очевидно, что это даст только один из входов (так как он имеет доступ только к первой части массива), что я могу сделать, чтобы добавить более одного входа?
Это класс для символов, где есть функция insert (). Необходимо сохранить каждый идентификатор и ввести данные на карту. Спасибо вам за помощь.