2013-06-18 27 views
8

Tôi làm việc trên trình phân tích cú pháp mã C trong Perl.Mã tiền xử lý trước trong Perl

Hiện tại tôi cần xử lý trước mã. Việc triển khai xử lý trước có vẻ là rất nhiều công việc, vì vậy tôi đang tìm kiếm một tập lệnh hoặc thư viện sẽ cho phép xử lý trước tệp.

tôi thấy các khả năng sau:

  1. Text::CPP
  2. Filter::CPP

Cả hai yêu cầu cpp mà tôi không có trên máy tính Windows của tôi. Có lựa chọn nào khác không?

+0

http://search.cpan.org/perldoc?Filter%3A%3Acpp nói 'Bộ lọc nguồn này dẫn tệp nguồn hiện tại qua bộ xử lý trước C (cpp) nếu có sẵn.' – devnull

+0

'Văn bản :: CPP' nói rằng nó đòi hỏi 'Một trình biên dịch C làm việc'. – devnull

+0

@devnull đó là một vấn đề ... – Alex

Trả lời

5

Tôi không chắc mình có hiểu nhu cầu của bạn hay không, nhưng bạn có quyền tự mình thực hiện điều này có lẽ là một lựa chọn không tốt. Gần đây tôi đã tìm kiếm các bộ tiền xử lý C thay thế.

Module Text::CPP chỉ nên đòi hỏi một trình biên dịch để biên dịch riêng của mình. Nếu bạn có thể tìm thấy một phiên bản biên dịch sẵn, nó sẽ làm việc cho bạn.

Các JCPP Java C Preprocessor của cùng tác giả có thể có thể được thực hiện để làm việc. Bạn có thể phải xử lý bên ngoài và sau đó tải kết quả.

Filepp là một chương trình Perl cũ khẳng định CPP tương thích. Có một bản nhị phân Windows được biên dịch sẵn để tải xuống.

Có một nhãn hiệu mới Lua C-Preprocessor LCPP có thể là thứ bạn có thể làm việc cùng. Có lẽ tốt nhất là độc lập, nhưng bạn có thể sử dụng Inline::Lua.

SWIG đi kèm với việc thực hiện tiền xử lý riêng của nó. Tôi đoán điều này sẽ có sẵn cho Windows.

Còn gì nữa? Boost Wave Preprocessor có thể hoạt động tốt và khả dụng cho Windows. Trình biên dịch MSVC có thể preprocess to a file.

Tuy nhiên, giải pháp dài hạn dễ nhất và tốt nhất có thể là chỉ cần cài đặt CPP. Nó là một phần của GCC, mà bạn có thể nhận được từ Cygwin hoặc MinGW.