Поместите код, сгенерированный flex, в обычную программу на C ++

Я создаю простой файл, используя flex, он генерирует файл lex.yy.c, сейчас я хочу поместить его в программу C ++.

%{

#include < stdio.h>

%}

%%

stop    printf("Stop command received\n");

start   printf("Start command received\n");

%%

Когда я набираю start или stop в командной строке, появляется вывод. Что я хочу сделать, так это дать ввод моей программой на C ++, и вывод этой информации должен быть отправлен в переменную моей программы, возможно ли это? Большое спасибо!

Я знаю, что код, который я публикую, довольно прост, но я представляю результат:

создать файл c с помощью flex и bison, и я использую его в качестве заголовка, поэтому в программе на c ++ мне просто нужно вызвать функцию lex_yacc() использовать это. ех. lex_yacc() это калькулятор, поэтому я отправил выражение с переменными в эту функцию, и она вернет результат. Я хочу использовать эту функцию в программе на C ++, я в замешательстве … Большое спасибо!

1

Решение

Смотрите раздел о несколько входных буферов в руководстве. Особенно раздел о yy_scan_string а также yy_scan_bytes,

Для «output», конечно, это «output», когда вы даете «stop» или «start» в качестве входных данных, вы явно делаете это (т.е. printf звонки). Вы можете поместить любой код, который вы хотите там.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]