(f) lex, у тебя может быть несколько выражений в одном состоянии? - PullRequest
0 голосов
/ 23 февраля 2011

возможно ли иметь несколько выражений в одном состоянии, которые похожи?Я надеялся сгруппировать несколько выражений, чтобы облегчить себе жизнь.Я хочу сделать что-то похожее ниже, но оно не работает и распознает только 1-е выражение, и хотя оно совпадает с выражением, которое не сохраняет в массив с использованием yytext.Я предполагаю, что я делаю что-то не так, поэтому любая помощь будет оценена. Спасибо

<some_state>"Milk;" |
"Honey;"    |
"Cinnamon;" |
"Cardamon;" |
"Rum;"      |
"Brandy;"   |
"Whiskey;"  |
"Aquavit;"  |
"Kahula;"   { printf("Example"); array[i].addition = yytext;BEGIN(amount_state);}

1 Ответ

0 голосов
/ 24 февраля 2011

Если flex разрешено, вы можете использовать область условий запуска, как показано ниже:

<some_state>{
"Milk;"         |
"Honey;"        |
...             |
"Kahula;"       { printf("Example"); ... }
}

Если разрешено только AT&T lex, к сожалению, это может быть недействительным ...

...