Могу ли я использовать AST/JDT для других языков? Например, написать свой парсер для C#, который каким-то образом использует технологию AST?
Могу ли я использовать eclipse JDT/AST для других языков программирования?
Ответы (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
в подключаемом модуле Eclipseorg.eclipse.jdt.core
.
Другие AST существуют для других языков, а для создания собственного вы можно использовать XText
http://www.eclipse.org/Xtext/images/screenshot-title.png
Но пакет jdt предназначен для Java.
Его можно просмотреть с помощью ASTView
См. также статью Exploring Eclipse's ASTParser в качестве еще одной иллюстрации Java. -ориентированный аспект манипулирования затмением AST.
Вы не можете использовать JDT для других языков (если вы не определите встроенную грамматику, см. комментарии Марка), он предназначен только для Java, как следует из его названия. Если вы хотите создать синтаксический анализатор для C#, antlr — хороший инструмент, который может дать вам видимое дерево после заполнения в грамматике. Здесь представлена грамматика, используемая в Antlr для C#.
вы можете использовать ANTLR (другой инструмент для распознавания языка), это очень мощный инструмент, который генерирует лексер и парсер из вашего файла грамматики. хорошая новость заключается в том, что вы найдете файлы грамматики с открытым исходным кодом, доступные на github. https://www.antlr.org/ https://github.com/antlr/grammars-v4
Вам нужно будет создать собственную модель AST.