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

Plan a 3.0 release #115

Closed
ptitjes opened this issue Mar 4, 2015 · 8 comments
Closed

Plan a 3.0 release #115

ptitjes opened this issue Mar 4, 2015 · 8 comments

Comments

@ptitjes
Copy link
Contributor

ptitjes commented Mar 4, 2015

I propose that we plan a 3.0 release after the 2.1. This ticket is to discuss what we would like in a 3.0 release.

@ptitjes
Copy link
Contributor Author

ptitjes commented Mar 4, 2015

Here is what I propose:

  • Add problem reporting mechanism
    • Introduce a Location object (source path + Position, comparable)
    • Introduce a Problem object (comparable based on Location)
    • Introduce a Reporter interface and an implementation that creates and stores problems
    • Make ParserException have a list of problems
  • Make JavaParser a state-full object
    • Give access to the (exception-free) reporting mechanism
    • Keep static helpers that throw ParseException
  • Introduce NoopVoidVisitor and NoopGenericVisitor
  • Add a Checks class (that takes a reporter)
    • Implement no-cost semantic checks
      • Modifiers coherence
      • ...
    • Extract checks currently made inside the grammar (so that people can use them to check hand-created nodes)
      • Call the checks from the grammar
    • Implement a check(Node) (that uses a noop void visitor)
    • Implement a deepCheck(Node) (that uses a scanner void visitor)
  • Lexical preservation
    • Introduce Lexeme class (begin and end position, kind, image)
    • Replace the four position integers in Node with a first and last Lexeme
    • Replace the constructor of AST node accordingly
    • Adapt the grammar to use the new constructors
      (All this is similar to what I've done in grammar-work)
  • AST consistency consolidation
  • Grammar enhancements

@ptitjes
Copy link
Contributor Author

ptitjes commented Mar 8, 2015

I would add:

  • Support source JDK version with reporting of non-conformant constructs

@ptitjes ptitjes added this to the 3.0 milestone Mar 9, 2015
@matozoid
Copy link
Contributor

matozoid commented Mar 9, 2015

Do we have issues for all of this?

@ptitjes
Copy link
Contributor Author

ptitjes commented Mar 9, 2015

Not yet. I was waiting for big objections (or approvals, additions...) before opening individual tickets.

@ftomassetti
Copy link
Member

+1 for the Location object (source path + Position, comparable)

@matozoid
Copy link
Contributor

That's an incredible amount of work!

@ftomassetti
Copy link
Member

Should we update this one and open the corresponding issues for each feature? I think there are several interesting ideas, I am just not sure we can put together all the hours needed for implementing all of this so we should probably select some ideas and establish priorities.

@SmiddyPence
Copy link
Member

I have moved this to the wiki for posterity. Roadmap

Some of the items will come out in the wash with existing issues, there are also a lot of additional bugs that have come to light from users since the explicit mention on the googlecode site.

@matozoid matozoid removed this from the 3.0 milestone Apr 11, 2016
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

4 participants