2010-03-04 12 views
8

Doxygen stili C++ yorum dizesini ayrıştırmak için bir python modülünü bilen var mı?Python'da Doxygen C++ yorum dizesi ayrıştırıcı mı?

/** 
    * A constructor. 
    * A more elaborate description of the constructor. 
    * @param param1 test1 
    * @param param2 test2 
    */ 

ve ben şu anda kullanarak dize yöntemleri ve düzenli yapıyorum vs kısa, uzun bir açıklama parametreleri, dönüş değeri ayıklamak istiyorum: Ben bu (basit örnekte) gibi bir dize demek ifadeler ama çözümüm çok sağlam değil. Alternatif olarak, hızlı bir şekilde kurulabilen, kullanımı kolay bir python çözümleyici lib kimseyi önerebilir mi? peşin

cevap

4

Sen SimpleParse modülünü kullanarak bir şey kurmak mümkün olabilir, ancak bu ilgilendiğiniz daha yatırım olabilecek bir EBNF gramer oluşturarak gerektirir.

Sfenks/Doxygen köprüsü (Breathe) kullanan xml Oksijen çıkışı ve bunun yerine hareket eder. Belki de benzer bir yaklaşım burada çalışabilir - xml formatlı dokümanlar çıkarmak için Doxygen'i çalıştırın ve daha sonra ihtiyacınız olan verilere ulaşmak için Breathe kodunun bir kısmını kullanın.

1

yılında

Teşekkür Sen doxygen Ayrıştırma kolları nasıl olduğunu görmek için nasıl uygulandığını bakmak gerekir. Ben regex kullanır çok şüphe ediyorum.

+1

Yaptım ve bu aslında bu soru için motivasyon oldu. Bir lexer oluşturmak için lex ve 179kb büyük kaynak dosyasını kullanır. Burada daha basit bir çözüm arıyorum (böylece basit bir python ayrıştırıcı lib hakkında ek sorum olacak). – Sebastian