Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve Parser #28

Open
dimanyfantakis opened this issue Oct 14, 2023 · 1 comment
Open

Improve Parser #28

dimanyfantakis opened this issue Oct 14, 2023 · 1 comment
Assignees

Comments

@dimanyfantakis
Copy link
Collaborator

Description

Parser is need of a small refactoring, similar to the one in model. This will make the interpreting of our data more robust.
Apart from refactoring we also need to extend our Javaparser in order to support all cases. We need a new recursive algorithm when creating the AST that's, efficient, and correctly parse inner Classes, Enums, etc.

Scope

  • Refactor parser package similarly to model.
  • Provide better APIs to interpret the parsed data.
  • Extend the Javaparser to handle inner Classes, Enums, etc.
  • Decouple the two parsers as much as possible.
@dimanyfantakis dimanyfantakis self-assigned this Oct 14, 2023
@dimanyfantakis
Copy link
Collaborator Author

This Pull Request should resolve #28.

What has been addressed:

  • Refactor parser
    • Improved code quality
    • Minimize mutability as mush as possible
  • Extend Javaparser
    • Support inner Classes/Enums
    • Identify relationships of the above
  • Removed the JDT parser.
    It seemed very hard to improve the code quality of the parser while maintaining both parsers. The coupling wasn't easy to get rid of thus not allowing the improvements I wanted to do in the parser.
    Also, JDT's tests seemed to be broken and we weren't running them. Since Javaparser proved to be able to do what we originally wanted to it was time to remove JDT.

Next step, followup issue to explore Class-File API.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant