Я создаю ФАЙЛ .exe, который может анализировать выражение, сгенерированное lex и yacc. Но я просто получаю ввод с экрана и просто возвращаю результат парсера с экрана. Я видел несколько предложений по использованию YY_BUFFER_STATE yy_scan_buffer(char *base, yy_size_t size)
, но так и не смог найти хороший способ сделать это.
Возможно ли, что я поместил некоторые заголовки (которые скомпилированы lex yacc) в свою основную программу C++, а затем я могу использовать yylex() для ее вызова, передавая строку в качестве входных данных и получая возвращаемое значение в основной программе? Спасибо за вашу помощь, я не понимаю, как это реализовать. Спасибо.
gnu-flex
предназначен для GNU Flex. - person Jonathan Leffler   schedule 23.09.2012.exe
) из кода Lex и Yacc, то вы не сможете использовать его в качестве подпрограммы в программе на C++, поэтому я запутался в этой части вашего вопроса. Если вы спрашиваете, можете ли вы организовать лексический сканер так, чтобы вместо чтения со стандартного ввода он читал из строки, ответ будет «да, но как это зависит от того, используете ли вы AT&T Lex, GNU Flex или какой-то другой». другой вариант Лекса. Просьба уточнить. - person Jonathan Leffler   schedule 23.09.2012gnu-flex
был назначен для обозначения различий между Adobe Flex и Flex. Если бы это зависело от меня, я бы использовалadobe-flex
иflex
, но было бы много людей, не уделяющих должного внимания тому, чтобы использоватьflex
вместоadobe-flex
. - person Jonathan Leffler   schedule 02.10.2012