2011-12-12 4 views
3

Я хотел бы создать исходный код Java parsing в C++. Цель этого приложения состоит в том, чтобы сформировать syntax tree во внутреннюю структуру данных, чтобы я мог ходить по структуре дерева данных и анализировать ее самостоятельно.Анализ исходного кода Java с помощью C++

Какие инструменты могут помочь мне достичь моей цели?

+1

Для этого есть много инструментов. Google для генераторов парсера. –

+2

Очевидный вопрос: почему вы хотите это сделать? Возможно, вам проще и проще запустить 'javac' и проанализировать вместо него байт-код. –

+0

Выполнение подобных действий очень помогает в понимании основных принципов материала, над которым вы работаете. НАПРИМЕР. Я как-то написал полный синтаксический анализатор SGML, и это помогло мне ответить на множество вопросов, о которых я даже не знал. –

ответ

3

Возможно, ANTLR может вам помочь, но для понимания Java-программы необходимо загрузить соответствующие классы, на которые делается ссылка в этой программе.

+0

Кроме того, они могут быть существующими грамматиками для C++. – Agemen

+0

@Agemen: Я узнал, что ANTLR может генерировать исходный код на C++, но я решил, что я не буду использовать какой-либо язык, использующий виртуальную машину. :-) – melter

0

Вы также можете попробовать;

http://www.ssw.uni-linz.ac.at/Research/Projects/Coco/

Он имеет различные порты, такие как C#, Java, C++, F #, VB.Net, Oberon и т.д., и имеет хороший язык сканер & анализатор для различных охват языков. Таким образом, вы можете использовать его для разбора java из C++.

+0

Спасибо! Я проверю это. :-) – melter