Могу ли я использовать eclipse JDT/AST для других языков программирования?

Могу ли я использовать AST/JDT для других языков? Например, написать свой парсер для C#, который каким-то образом использует технологию AST?


person Ido    schedule 09.12.2009    source источник
comment
Если вам просто нужно отладить C#, я считаю, что есть хороший отладчик, доступный для Mono на платформах, отличных от Windows.   -  person Thorbjørn Ravn Andersen    schedule 09.12.2009


Ответы (3)


Если вы посмотрите на статью «Eclipse JDT — абстрактное синтаксическое дерево (AST) и модель Java - Tutorial", JDT и его AST адаптированы для Java.

Eclipse Java Development Tools (JDT) предоставляет API для доступа к исходному коду Java и управления им.
AST представляет собой подробное древовидное представление исходного кода Java. AST определяет API для изменения, создания, чтения и удаления исходного кода.
Пакет для AST — org.eclipse.jdt.core.dom в подключаемом модуле Eclipse org.eclipse.jdt.core.

Другие AST существуют для других языков, а для создания собственного вы можно использовать XText

http://www.eclipse.org/Xtext/images/screenshot-title.png

Но пакет jdt предназначен для Java.
Его можно просмотреть с помощью ASTView

альтернативный текст

См. также статью Exploring Eclipse's ASTParser в качестве еще одной иллюстрации Java. -ориентированный аспект манипулирования затмением AST.

person VonC    schedule 09.12.2009

Вы не можете использовать JDT для других языков (если вы не определите встроенную грамматику, см. комментарии Марка), он предназначен только для Java, как следует из его названия. Если вы хотите создать синтаксический анализатор для C#, antlr — хороший инструмент, который может дать вам видимое дерево после заполнения в грамматике. Здесь представлена ​​грамматика, используемая в Antlr для C#.

person Ryan    schedule 14.03.2013
comment
Вы можете расширить JDT для пользовательских языков, подобных Java: blog.objectteams.org/2010/02/ - person Mark Proctor; 17.03.2013
comment
Спасибо, что указали на это, и статья, на которую вы ссылаетесь, интересна. Он спросил, можно ли использовать JDT для другого языка. Технически да, я согласен с этим вопросом, но я думаю, что цена высока, так как он хочет обрабатывать только один язык. - person Ryan; 17.03.2013

вы можете использовать ANTLR (другой инструмент для распознавания языка), это очень мощный инструмент, который генерирует лексер и парсер из вашего файла грамматики. хорошая новость заключается в том, что вы найдете файлы грамматики с открытым исходным кодом, доступные на github. https://www.antlr.org/ https://github.com/antlr/grammars-v4

Вам нужно будет создать собственную модель AST.

person user2928296    schedule 18.10.2019