Я создаю простой файл, используя 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 ++, я в замешательстве … Большое спасибо!
Смотрите раздел о несколько входных буферов в руководстве. Особенно раздел о yy_scan_string
а также yy_scan_bytes
,
Для «output», конечно, это «output», когда вы даете «stop» или «start» в качестве входных данных, вы явно делаете это (т.е. printf
звонки). Вы можете поместить любой код, который вы хотите там.
Других решений пока нет …