Đây không phải là bản sao của this question vì giải pháp không sử dụng trình phân tích cú pháp!Kết hợp Trình phân tích cú pháp Yacc/Bison với chương trình C++
Tôi có trình phân tích cú pháp Bison mà tôi có thể chạy bằng cách thực hiện ./parser < file_to_parse
. Tôi muốn gọi trình phân tích cú pháp Bison từ bên trong chương trình C++ của tôi. Những gì tôi không muốn là làm system(./parser < file_to_parse)
vì điều đó sẽ cho rằng trình phân tích cú pháp được biên dịch trước và sau đó toàn bộ chương trình của tôi sẽ không là nền độc lập.
Nếu tôi có một chức năng:
void foo(file_name) {
// call parser on file_name
}
thì cách này có thể thực hiện? Bất kỳ ý tưởng? Tôi nghĩ rằng đó là trường hợp gọi yyparse hoặc một cái gì đó nhưng tôi không nhận được bất cứ nơi nào với nó!
Cảm ơn bạn :).
Cảm ơn Ernest .. vẫn đang vật lộn nhưng hy vọng tôi sẽ đến đó. Tôi không thực sự có một yylex() trong lexer của tôi - Flex tạo ra một mặc định một trong đó có thể làm các getchar(). Tôi đoán tôi cần phải viết của riêng tôi trong lexer hoặc một cái gì đó. – ale