Tôi đang cố gắng sử dụng flex và bò rừng để tạo ra một bộ lọc, bởi vì tôi muốn nhận được một số yếu tố ngữ pháp từ một ngôn ngữ phức tạp. Kế hoạch của tôi là sử dụng flex + bison để nhận ra ngữ pháp và loại bỏ vị trí của các yếu tố quan tâm. (Sau đó sử dụng một kịch bản để lấy văn bản theo các địa điểm đổ.)Flex hỗ trợ chính xác vị trí bison?
tôi thấy flex có thể hỗ trợ một tính năng gọi là bò rừng bison-địa điểm, nhưng làm thế nào nó hoạt động chính xác. Tôi đã thử các ví dụ trong tài liệu flex, có vẻ như yylloc không được thiết lập tự động bởi flex, tôi luôn luôn nhận được (1,0)-(1,0)
. Có thể tự động tính toán vị trí của từng mã thông báo không? Nếu không, chức năng giao diện nào được định nghĩa để tôi thực hiện? Có ví dụ nào không?
Bất kỳ giải pháp nào tốt hơn về công cụ?
Best Regards, Kevin
Edit:
Bây giờ giao diện đến lượt yylex tới:
tay bò rừng bizonint yylex(YYSTYPE * yylval_param,YYLTYPE * yylloc_param);
không xác định như thế nào lexer nên thực hiện để thiết lập một cách chính xác yylloc_param. Đối với tôi rất khó để theo dõi số cột của mỗi mã thông báo theo cách thủ công.
I figured rằng chỉ số dòng là nhập khẩu đối với tôi. –