Відкрити головне меню

Парсер Java — програма, що виконує синтаксичний аналіз коду написаного мовою Java.

Головна програма, яка має таку фунціональність — компілятор мови Java javac,[1] який входить до JDK. Javac використовує написаний вручну LALR парсер. Оскільки написаний вручну код складніший для розуміння та змін ніж згенерований із граматики, існує проект створення експериментальної версії javac, яка використовує генератор парсерів Antlr.[2]

NetBeans використовує код javac, модифікований для зручнішого використання в IDE.[3]. У версії NetBeans 6.0 інфраструктура, яка надає доступ до Java коду була повністю переписана, старий код (Java JMI/MDR) було прибрано, написано новий, так званий Retouche APIs.[4]

Eclipse JDT використовує парсер згенерований за допомогою генератора парсерів Jikes.[5] JDT надає об'єктну модель документу (Document Object Model, DOM), аналогічну до добре відомого XML DOM — реалізацію абстрактного синтаксичного дерева — Abstract Syntax Tree (AST).[6][7][8][9] Eclipse має додаток, що відображає AST для Java коду — AST View.[10]. Парсер Eclipse може використовуватися для аналізу та перетворення коду на Java,[11] у тому числі незалежно від середовища Eclipse.[12] Його використано для аналізу змін у початковому коді у проекті ChangeDistiller,[13][14][15][16] а також як фронтенд для GCJ.[17]

Існує проект javaparser, який використовує генератор парсерів javacc.[18]

ПриміткиРедагувати

  1. OpenJDK: The Java programming-language compiler (javac) group
  2. OpenJDK: Compiler Grammar
  3. NetBeans Java parser[недоступне посилання з липень 2019]
  4. NetBeans Java Language Infrastructure Tutorial
  5. JDT Core/HowTo: Generate the Parser
  6. IBM developerworks: Exploring Eclipse's ASTParser
  7. Eclipse Corner: Abstract Syntax Tree
  8. EclipseCon 2005, Java Tool Smithing: Extending the Eclipse Java Development Tools
  9. Eclipse 3.4 JDT Plug-in Developer Guide: Manipulating Java code
  10. Eclipse JDT components: org.eclipse.jdt.astview - AST View
  11. Jim D'Anjou, Scott Fairbrother, Dan Kehn, John Kellerman, Pat McCarthy (2004). The Java developer's guide to Eclipse (вид. 2-ге). Boston: Addison-Wesley. с. 1136. ISBN 0321305027. , розділи Analyzing Java source code, Manipulating Java source code
  12. Using JDT ASTParser with external Java files
  13. ChangeDistiller
  14. Beat Fluri and Harald C. Gall. Classifying Change Types for Qualifying Change Couplings. In Proceedings of the 14th International Conference on Program Comprehension, pp. 35-45, IEEE Computer Society, 2006.
  15. Beat Fluri, Michael Würsch, Martin Pinzger, and Harald C. Gall. Change Distilling: Tree Differencing for Fine-Grained Source Code Change Extraction. IEEE Transaction on Software Engineering, 33(11), pp. 725-743, 2007.
  16. Harald C. Gall, Beat Fluri, and Martin Pinzger. Change Analysis with Evolizer and ChangeDistiller. IEEE Software, 26(1), pp. 26-33, 2009.
  17. GCJ using Eclipse compiler
  18. javaparser: Java 1.5 Parser and AST

ЛітератураРедагувати

  • Jim D'Anjou, Scott Fairbrother, Dan Kehn, John Kellerman, Pat McCarthy (2004). The Java developer's guide to Eclipse (вид. 2-ге). Boston: Addison-Wesley. с. 1136. ISBN 0321305027. 
  • Bill Campbell, Swami Iyer, Bahar Akbal-Delibaș (2012). Introduction to compiler construction in a Java world. Boca Raton, FL: CRC Press. с. 381. ISBN 1439860882.