Tôi đã tạo một tệp đơn giản, sử dụng flex, nó tạo ra một tệp lex.yy.c, bây giờ tôi muốn đưa nó vào chương trình C++.
%{
#include
%}
%%
dừng printf("Đã nhận được lệnh dừng\n");
start printf("Đã nhận lệnh bắt đầu\n");
%%
Khi tôi gõ bắt đầu hoặc dừng trên dòng lệnh, sẽ có kết quả. Điều tôi muốn làm là cung cấp đầu vào thông qua chương trình C++ của tôi và đầu ra của nó sẽ được gửi đến một biến trong chương trình của tôi, điều này có khả thi không? Cảm ơn!
Tôi biết đoạn mã tôi đăng rất đơn giản, nhưng kết quả tôi đang tưởng tượng là:
Tạo file c thông qua flex và bison, mình dùng làm header nên trong chương trình c++ mình chỉ cần gọi hàmlex_yacc()
Nó đã sẵn sàng để sử dụng. người tiền nhiệm. lex_yacc()
là một máy tính, vì vậy tôi gửi một biểu thức có các biến tới hàm này và nó trả về kết quả. Tôi muốn sử dụng chức năng này trong chương trình C++ và tôi thấy bối rối... Cảm ơn rất nhiều!
Xem về nhiều bộ đệm đầu vào phần có trong sách hướng dẫn. đặc biệt là về yy_scan_string
Và yy_scan_bytes
phần.
Tất nhiên, đối với "đầu ra", khi bạn đưa ra "dừng" hoặc "bắt đầu" làm đầu vào, bạn thực hiện điều đó một cách rõ ràng (tức là. printf
gọi). Bạn có thể đặt bất kỳ mã nào ở đó.
Tôi là một lập trình viên xuất sắc, rất giỏi!