Tôi đang tìm ngữ pháp C trong mã nguồn GCC, cụ thể hơn cho ngữ pháp ở dạng yacc/bison.C ngữ pháp trong mã nguồn GCC
Trả lời
Tìm thấy ngữ pháp C trong đặc tả Yacc trong phiên bản GCC 3.3 trong file "c-parse.y"
http://yaxx.googlecode.com/svn/branches/yaxx-proc/gcc-3.4.0/gcc/c-parse.y –
GCC của phiên bản 4.3 không chứa ngữ pháp C được viết rõ ràng. Phân tích cú pháp và phân tích ngữ nghĩa được thực hiện đồng thời, mà không trình bày cây cú pháp như một cấu trúc dữ liệu riêng biệt.
Nguồn thông tin: Tôi đọc mã nguồn GCC.
Bạn sẽ không tìm thấy tệp Caccmar yacc/bison trong mã nguồn GCC hiện tại. Nó đã được thực hiện trong quá khứ, trước khi các công cụ ngã ba egcs. Tôi không thể cung cấp cho bạn phiên bản chính xác và vị trí, nhưng tôi có thể cho bạn biết rằng nó phải được trong phiên bản 2.x
Phiên bản hiện tại của GCC có phân tích cú pháp C riêng của mình
Vì vậy, có một đặc tả ngữ pháp trong mã nguồn GCC, phải không? Người được phân tích cú pháp bằng trình phân tích cú pháp C của GCC. Bạn có biết trong đó tập tin tôi tìm thấy nó? – Haruki
@Hurkai bạn có thể tìm thấy nó trong các bình luận cho các chương trình con thực hiện phân tích cú pháp :-) –
g của GCC++ chuyển từ một yacc (bison) dựa trên phân tích cú pháp năm trước (có lẽ ít nhất 5 năm). Họ bắt đầu sử dụng một trình phân tích cú pháp phong nha đệ quy vì C++ rất khó trong yacc.
Sau khi sử dụng trình phân tích cú pháp này trong C++ trong vài năm, họ đã chuyển C sang phân tích cú pháp bằng cách sử dụng đệ quy phong nha.
Bạn sẽ phải quay lại một số phiên bản để định vị ngữ pháp ở định dạng bison, nhưng ở ngoài đó. Bạn nên cố gắng tìm kiếm mã google với
gcc yyparse
Cập nhật: Google Code Search Shutdown trong 2012
http://en.wikipedia.org/wiki/Google_Code_Search
Cũ: http://yaxx.googlecode.com/svn/branches/yaxx-proc/gcc-3.4.0/gcc/c-parse.y
để tìm một phiên bản của gcc có nó và sau đó bạn sẽ có thể tìm thấy tập tin nguồn yacc/bison trong đó. Nó sẽ là cũ, mặc dù.
Tôi nghĩ bạn có nghĩa là _descent_, mặc dù trình phân tích cú pháp là _decent_ đủ :) –
GCC không sử dụng trình phân tích cú pháp được tạo; trình phân tích cú pháp của nó là một trình phân tích cú pháp đệ quy bằng tay đệ quy.
nó đúng từ phiên bản 4.6+ – Jack
@Jack: Thú vị! Bạn có thể chỉ cho tôi bất kỳ tài liệu nào không? Tôi biết họ đã chuyển * từ * một trình phân tích cú pháp được tạo thành * thành văn bản mới cho hiệu suất và (quan trọng hơn) các lý do bảo trì, có thể ở đâu đó trong khoảng thời gian 3.4–4.2 (tôi không nhớ chính xác). Những lý do để chuyển đổi trở lại và họ sử dụng trình tạo trình phân tích cú pháp nào? –
Cũng ANSI C Yacc grammar
C ngữ pháp có thể được tìm thấy trong chú thích của c-phân tích cú pháp. c tệp trong các nguồn GCC. Nó không phải là một yacc/bison mặc dù như nó đã được nói.
- 1. gcc để phân tích cú pháp mã
- 2. Trình kiểm tra ngữ pháp nguồn mở
- 3. C# ANTLR ngữ pháp?
- 4. Ngữ pháp ngữ cảnh miễn phí cho C
- 5. Tự động trích xuất đường dẫn -Tôi gcc cho mã nguồn lập chỉ mục trong Emacs
- 6. một số con trỏ để hiểu mã nguồn GCC
- 7. Giải mã ngôn ngữ hoặc cú pháp này là
- 8. Sử dụng mã nguồn Unicode trong C++
- 9. C Mã nguồn trong tài liệu Latex
- 10. Các phương pháp quản lý mã nguồn
- 11. mã nguồn của các hàm c/C++
- 12. Mã nguồn phương pháp gốc Java
- 13. Đặc điểm kỹ thuật mã hóa nguồn charset trong MSVC++, như gcc "-finput-charset = charset"
- 14. Hiển thị mã nguồn C/C++?
- 15. C#, ANTLR, ECMAScript vấn đề ngữ pháp
- 16. C# mã nguồn mở NMEA parser
- 17. Thư viện kiểm tra ngữ pháp tiếng Anh cho C++
- 18. Ngữ nghĩa của thuộc tính nóng GCC
- 19. Ngữ pháp và cú pháp của typedef bằng ngôn ngữ C
- 20. Làm việc trên mã nguồn "ngôn ngữ khác"
- 21. Có ngữ pháp C++ chuẩn nào không?
- 22. phương pháp Gọi Hub trong C# mã
- 23. Có tệp ngữ pháp C++ hoạt động cho ANTLR không?
- 24. C++ 0x regex trong GCC
- 25. Trình biên dịch ngược C/C++ mã nguồn mở
- 26. Cách đọc biến CMake trong mã nguồn C++
- 27. Trình duyệt mã nguồn tốt cho C
- 28. Mã phân tích cú pháp C#
- 29. Tùy chọn GCC cho mã C nghiêm ngặt nhất?
- 30. libxml2 (từ mã nguồn xsd đến C)
Đó là một tuyên bố nhiều hơn câu hỏi? (Tôi đã quyết định đáp lại bằng cách diễn đạt câu nói của tôi như một câu hỏi. Vui vẻ!) –
Bạn đã thử googling? Tôi đã tìm kiếm "ngữ pháp yacc c" và đưa ra http://www.lysator.liu.se/c/ANSI-C-grammar-y.html trong số nhiều lần truy cập khác. –
@Neil, có lẽ nó không phải là những gì Hurkai có nghĩa, nhưng GCC có một số phần mở rộng C, và ngữ pháp C chung chung sẽ không chính xác phù hợp với nó. –