У меня есть эта строка:
0, 6 -> W(1) L(#);
или
\# -> @shift_right R W(1) L
Я должен проанализировать эту строку с помощью flex, взять каждый элемент из каждой части стрелки и поместить его всписок.Я знаю, как сопоставлять простые вещи, но я не знаю, как сопоставить несколько вещей с одним и тем же правилом.Мне не разрешено увеличивать лимит для правил.У меня есть подсказка: разобрать кусочки, затем соединить кусочки, и я могу использовать состояния, но я не знаю, как это сделать, и я не могу найти примеры в сети.Кто-нибудь может мне помочь?
Итак, вот пример:
{
a -> W (b) #invert_loop;
b -> W(a) #invert_loop;
-> L (#)
}
Когда начинается этот раздел, мне нужно создать структуру для каждой строки, куда я помещаю то, чтоСлева от -> в векторе - это некоторые параметры, а справа - список, где каждый член является своего рода другой структурой.Для того, что справа, я написал правила:
writex W ([a-zA-Z0-9. #]) Для W (что угодно).
Так что мне нужно разобрать этилинии, так что я могу поместить параметры и структуры в большую структуру.Примерно так (для первой строки):
new bigStruc с param = a и списком struct = W (что угодно), #invert (это запись для ссылки на другую структуру)
Итак, мне нужно знать, как анализировать эти строки, чтобы я мог создавать, создавать и заполнять эти bigStruct, также используя правила для простой структуры (у меня есть все, что мне нужно для этих структур, но я не знаю, каканализирую, чтобы я мог использовать эти методы).
Извините за мой английский, и я надеюсь, что на этот раз я был более ясен в том, что я хочу.строка с правилом, а затем работать над ним с помощью strtok.Есть способ использовать предыдущие правила, чтобы увидеть, какой тип структуры я должен создать?Я имею в виду не остаться и поставить много, если, но использовать writex W ([a-zA-Z0-9. #]), Чтобы знать, что я должен создать такую структуру?