2011-05-13 49 views
8

Tôi đang tìm cách triển khai trình phân tích cú pháp mã nguồn Java được viết bằng ngôn ngữ JavaScript. Bạn có biết gì không?Trình phân tích cú pháp Java được viết bằng JavaScript

+2

Vì mục đích gì? Giải thích mã và chạy nó? Colorize nó trong HTML? Ánh xạ nó vào một đối tượng JSON? – Jeff

+2

Chính xác thì bạn đang cố gắng làm gì? –

+0

@ Jeff Trong kết quả tôi muốn có một số loại cây cú pháp trừu tượng. –

Trả lời

9

Có một cái nhìn tại ANTLR có thể có Javascript như một mục tiêu, với Java 1.5 ngữ pháp tại http://www.antlr.org/grammar/1152141644268/Java.g

Chỉnh sửa: liên kết ngừng làm việc - thử https://github.com/antlr/grammars-v4/blob/master/java/Java.g4 :)

+0

Hm ... Ý tưởng hay! Cảm ơn, Chris.Tuy nhiên, tôi không chắc chắn rằng hiệu suất của trình phân tích cú pháp như vậy sẽ đủ để phân tích cú pháp một lượng lớn mã nguồn. –

+1

ok. Đây không phải là giải pháp mà tôi mong đợi, nhưng hiện tại nó chỉ là giải pháp giải quyết vấn đề này. –

+0

@Eliah: "... không chắc ... số lượng lớn mã nguồn" ANTLR tạo ra các trình phân tích cú pháp khá hiệu quả nói chung. (Cá nhân của tôi cá cược sẽ được cho nó, chứ không phải là chống lại nó.) Tôi nghi ngờ cách duy nhất để thực sự tìm ra là sản xuất như một phân tích cú pháp và thử nó. Và nếu bạn đang quan tâm, tại sao không làm điều này bằng cách sử dụng Java hoặc C + +? –

-3

Thử công cụ Rhino?

+3

OP đang tìm cách khác. –

+4

Tê giác giải quyết vấn đề ngược lại: nó phân tích cú pháp JavaScript trong môi trường Java. –

3

Tôi không biết của một phân tích cú pháp Java cho mỗi gia nhập, nhưng đây là một số máy phát điện phân tích cú pháp cho Javascript:

Nếu một trong số này sẵn sàng cho thời gian chính, bạn có thể dịch ngữ pháp cho Java thành biểu mẫu cần thiết và sau đó sử dụng PGS để tạo trình phân tích cú pháp Java trong Javascript.

Tất nhiên, điều đó sẽ chỉ cung cấp cho bạn trình phân tích cú pháp. Nếu bạn muốn làm phân tích kiểu (như bình luận của bạn dường như đang nói), đó không phải là những gì một trình phân tích cú pháp làm.

+0

Cảm ơn bạn đã trả lời, Stephen. Tôi đã làm việc với một số trình tạo trình phân tích cú pháp này. Tôi nghĩ hiệu suất của nó không đủ tốt để phân tích cú pháp một lượng lớn mã với cú pháp C++ giống như Java, không may. –

+2

@Eliah - nó có vẻ phản trực giác, nhưng các trình phân tích cú pháp được tạo ra có khuynh hướng nhanh hơn các trình phân tích cú pháp viết tay, đặc biệt nếu PGS trưởng thành. –

+1

Tôi nhận thấy rằng ANTLR cũng sẽ tạo các trình phân tích cú pháp trong Javascript. –

Các vấn đề liên quan