Version 3.1.4
This is the first version to parse Java 9.
Beta: TreeStructureVisitor
, and LexicalPreservingPrinter
.
- 872 873 874 787 Remaining Java 9 work.
Version 3.1.3
Beta: TreeStructureVisitor
, and LexicalPreservingPrinter
.
A start has been made on source level support. The default level is Java 8. It can be set to Java 9 like this for a parser instance:
private final JavaParser parser = new JavaParser(new ParserConfiguration().setValidator(new Java9Validator()));
and like this for the static parse methods:
JavaParser.getStaticConfiguration().setValidator(new Java9Validator());
- 862 552 "_" is an illegal identifier on source level 9.
- 869 867 109 855 857 smaller improvements and fixes
Version 3.1.2
Beta: TreeStructureVisitor
, ConcreteSyntaxModel
, and LexicalPreservingPrinter
.
- 594 849 831 a validation framework was introduced to inform about problems in the AST without needing to change the grammar, and without requiring parsing code. It is open for extension by users.
- 852 853 826 832 846 839 smaller improvements and fixes
Version 3.1.1
Beta: TreeStructureVisitor
, ConcreteSyntaxModel
, and LexicalPreservingPrinter
.
- 654 124 lexical preservation (printing source code with the same formatting it had when parsing) has been added. Thank you @ftomassetti for a lot of work!
- 554 800 first (big) step towards Java 9 support: JavaParser can read project Jigsaw module definitions.
- 795 786 751 extend the TreeVisitor with more traversal options. Thanks @ryan-beckett!
- 791
GenericListVisitorAdapter
has been added which collects its results in a list. Thanks @Gottox! - 815 798 797 813 clean up Problem text
- 819 818 817 816 441 809 808 807 fix various absurd annotation related issues.
- 777 805 802 796 790 792 793 781 784 785 783 782 779 357 799 763 smaller improvements and fixes
Version 3.1.0
Beta: TreeStructureVisitor
and ConcreteSyntaxModel
.
705 755 Add the concrete syntax model, which will give you information about the exact syntax a certain nodes matches.
777 smaller improvements and fixes
Version 3.1.0-beta.2
This version is a beta because TreeStructureVisitor
is not in its definite state yet.
- 762 761 772 merge
javaparser-metamodel
and javaparser-generator-utils
into javaparser-core
. - 766 the
ModifierVisitor
is now created by a code generator. Its behaviour has been made logical, and may give different results than before. - 755
ConstructorDeclaration
and MethodDeclaration
now share a parent: CallableDeclaration
- 687 759 773 769 768 767 765 759 smaller improvements and fixes
Version 3.1.0-beta.1
This version is a beta because there are a lot of new features that may still change.
This version needs a minor version increase because of a backwards compatability issue:
- 719
getJavadoc
, getJavadocComment
and getComment
could return null. Our promise was to return Optional
, so that is what they do now.
New:
- 658 718 736 737 we have created a metamodel. It gives information about the structure of the various AST nodes, as if you are introspecting them. You can find it in
javaparser-metamodel
, the main class is JavaParserMetaModel
- 353 365 visitors are no longer hand made, they are now generated from the metamodel. This should make them 100% reliable. Affected visitors are:
GenericVisitorAdapter
, EqualsVisitor
, VoidVisitorAdapter
, VoidVisitor
, GenericVisitor
, HashCodeVisitor
, CloneVisitor
.
If you want to generate your own visitors, you can use the VisitorGenerator
class from javaparser-core-generators
If you want to reuse the code generation utilities, look at module javaparser-generator-utils
- there is a very useful SourceRoot
class in there that takes away a lot of file management troubles.
- 538 735
TreeStructureVisitor
has been added, which should be considered beta. - 220 733 717 749 745 750 743 748 666 732 746 734 733 smaller improvements and fixes
Version 3.0.1
- 699 433 325 Javadoc can now be parsed
- 703 696 added NodeWithOptionalScope
- 702 FieldAccessExpr now implements NodeWithSimpleName, which means that "field" has been renamed to "name"
- 707 706 improve range of array types and levels
- 709 smaller improvements and fixes
Version 3.0.0
- 695 697 689 680 693 691 682 690 677 679 688 684 683 smaller improvements and fixes
Version 3.0.0-RC.4
- 668 669 TypeDeclarationStmt became LocalClassDeclarationStmt
- 347 665 every node now has some documentation
- 660 670 673 four types of import declaration have been merged back into the old ImportDeclaration
- 659 The pretty printer can now take customized visitors
- 650 671 672 674 524 smaller improvements and fixes
Version 3.0.0-RC.3
- 639 622 632 657 656 652 653 647 648 645 194 643 630 624 628 627 626 625 623 cleanups, small fixes, and general housekeeping
Version 3.0.0-RC.2
- 593 EmptyImportDeclaration and NonEmptyImportDeclaration have been removed
- 612 VariableDeclaratorId has been removed. It has been substituted by "SimpleName name"
- 614 617 the list of tokens has been linearized and simplified
- 615 support for arrays has once more been changed. See the issue
- 580 453 380 618 580 611 610 424 608 smaller improvements and fixes
Version 3.0.0-RC.1
- 499 601 renames many fields to be more consistent
- 596 605 602 604 smaller improvements and fixes
Version 3.0.0-alpha.11
- 547 595 Node.range is now using Optional instead of Range.UNKNOWN
- 584 588 548 585 bug fixes and improvements
Version 3.0.0-alpha.10
- 578 579 577 575 290 570 568 567 562 564 551 bug fixes and improvements
Version 3.0.0-alpha.9
- 403 358 549 Make all names nodes: either SimpleName or Name. This makes every name in the AST visitable. NameExpr is now a wrapper to use SimpleName in an expression.
- 516 536 use Optional<> for return values.
- 556 557 558 550 small improvements and fixes.
- 560 559 make nodes observable.
Version 3.0.0-alpha.8
- 344 529 turn DumpVisitor into an official PrettyPrinter
- 532 508 427 530 531 513 528 cleanups
Version 3.0.0-alpha.7
- 515 roll back attempt at using Optional
- 522 504 make NodeList not a Node (restores parent/children behaviour to before alpha.4)
- 527 526 rename getChildrenNodes to getChildNodes
- 525 495 520 bug fix
Version 3.0.0-alpha.6
- 503 modified ImportDeclaration hierarchy to have getters for static and "asterisk" again
- 506 bug fix
Version 3.0.0-alpha.5
Version 3.0.0-alpha.4
- 463 471 nodes can now be removed easily
- 491 import handling changed. Instead of "ImportDeclaration", we now have the four types of import as described in the JLS. See issue
- 452 355 474 494 various improvements
- 493 492 485 Simplify the JavaParser interface
Version 3.0.0-alpha.3
- 112 237 466 465 461 460 458 457 fundamentally changes how we deal with arrays. It is explained in the last post here
- 472 456 makes the "data" field on every node more structured.
- 477 468 refactor TypeArguments. You will find that TypeArguments is no longer a type, it is just a list in some nodes.
- 482 adds the "nodeTypes" packages to the osgi export.
- 479 476 makes all setters on nodes return this so they become chainable.
- 473 437 clean up CloneVisitor.
Version 3.0.0-alpha.2
Version 3.0.0-alpha.1
- 400 405 introduce many "builder" style methods for constructing code. Thanks DeepSnowNeeL!
- 409 remove ASTHelper (methods are now on specific Node subclasses)
- 414 JavaParser can now be instantiated and reused. InstanceJavaParser removed
- 418 417 411 408 bugs
- 367 420 407 402 various cleanups
Version 2.5.1
- 394 OSGi manifest added
- 391 fix ModifierVisitor NullPointerException bug
- 385 a few new parse methods
- 386 fix dumping an empty import (a single ; after the package declaration)
Version 2.5.0
API breaking changes:
191: moved TreeVisitor to visitor package
368, 162, 303, 302, 360: use correct type in some places.
371: code is now compiled with Java 8
342, 331: ModifierVisitorAdapter detects and removes broken nodes
328, 270: upgrade JavaCC (use TokenMgrException now) Other changes:
297: enable access to tokens.
341, 361: node positions are now OO
211, 373: escaping of \n \r for string literals
336, 276, 141: JavaDoc support now works
337, 281: reorganize the stream reading code
343, 309, 332, 57: take advantage of common interfaces
329, 326, 327: deal with platform issues
163, 236, 252, 296, 269, 339, 321, 322, 252, 253, 293, 295: various fixes
310, 311, 313, 301, 294: some code clean-ups
Version 2.4.0
- several fixes in DumpVisitor for bugs due to lazy initialization
- make TypeDeclaration implements DocumentableNode directly
- TypedNode interface introduced
- introduce MultiBoundType
- refactored IntersectionType and UnionType
- refactored CatchClause
- parsing annotations in throws declarations
- parse orphan semicolons in import statements
- added PackageDeclaration.getPackageName
- solved issue with newlines in string literals
- fixed handling of UnknownType in EqualsVisitor
- improvements to CommentsParser
- removing old grammar
Version 2.3.0
- ClassOrInterfaceType implements NamedNode
- DumpVisitor can now be extended
- Improved documentation
- AST: lists are now lazy initialized
Version 2.1.0
Code changes
Version 2.0.0
Version 1.0.8 (2010-01-17)
- Fixed issues:
- Issue 17: A refactor suggestion for AnnotationExpr and its subclasses
- Issue 21: Java 5 JavaParser compiled JARs
- Issue 22: Please use java.lang.reflect.Modifier constants in japa.parser.ast.body.ModifierSet
- Issue 27: Implement the "equal" method
- Issue 30: equals and hashCode methods
Version 1.0.7 (2009-04-12)
- Issue 19 fixed:
- Tests changed to run with junit 4
Version 1.0.6 (2009-01-11)
- Issue 11 fixed: changed method get/setPakage to get/setPackage in the class CompilationUnit
- Created new visitor adapter to help AST modification: ModifierVisitorAdapter
- Changed visitor adapters to abstract
Version 1.0.5 (2008-10-26)
- Created simplified constructors in the nodes of the AST (without positional arguments)
- Created ASTHelper class with some helpful methods (more methods are still needed)
Version 1.0.4 (2008-10-07)
- Moved to javacc 4.1.
- The java_1_5.jj can be build alone without compilation errors
Version 1.0.3 (2008-09-06)
- Removed SuperMemberAccessExpr class, it was no longer used
- Removed the methods get/setTypeArgs() from ArrayCreationExpr, this node shouldn't have these methods.
- Fixed the bug with start/end position of the nodes IntegerLiteralMinValueExpr and LongLiteralMinValueExpr
- The methods get/setAnnotations() from all BodyDeclaration subclasses were pushed down to BodyDeclaration class
Version 1.0.2 (2008-07-20)
- Issue fixed: Issue 1: Add support for editing AST nodes or create new ones
Version 1.0.1 (2008-07-01)
- Issue fixed: Issue 5: end line and end column equal to begin line and begin column
Version 1.0.0 (2008-06-25)
- Changed version numbering, starting version 1.0.0
- Javadoc done for packages:
- japa.parser
- japa.parser.ast
- Corrected bug when parsing in multithread:
- JavaParser.setCacheParser(false) must be called before to use the parser concurrent
2008-06-19
- No code changes, added binary distribution to download page
2008-06-11
- Bug corrected: NPE in VoidVisitorAdapter
2008-06-09
- Added Adapters for de visitors
2008-05-28
- This project now is published at Google Code:
2008-05-25
- Added support for comments and javadoc to the tree.
- Javadocs are stored directly to members (BodyDeclaration and all deriveds (classes, methods, fields, etc.)), accessible by the method getJavadoc().
- All comments are stored in the CompilationUnit, accessible by the method getComments().
2008-04-01
- Changed all nodes public attributes to be private and created getters to access them
- Changed the methods of the Node getLine e getColumn to getBeginLine and getBeginColumn
- Added the methods getEndLine and getEndColumn to the Node class (works only in the BlockNode)
2007-12-22
- Corrected ConditionalExpression bug
2007-10-21
2007-10-21
- Bugs corrected:
- Created PackageDeclaration member of CompilationUnit to add suport for annotations in the package declaration
- Parameterized anonymous constructor invocation
- Explicit constructor invotation Type Arguments
- ctrl+z ("\u001A") ar end of compilation unit
2007-10-09
- EnumConstantDeclaration annotation support corrected
- Parssing Java Unicode escape characters suport added
2007-10-03
- Bug corrected: "MotifComboPopup.this.super()" statement was generating parser error
2007-10-01
- Bug corrected: Casting signed primitive values
double d = (double) -1;
^
2007-08-06
- Bug with the single line comments in the final of the unit corrected
2007-07-31
- Fixed the bug with the following expression:
Class c = (int.class);
2007-06-26
- Bug fixes from Leon Poyyayil work
- suport for hex floating point
- unicode digits in indentifier
- MemberValueArrayInitializer
2007-03-09
- Long and Integer literal MIN_VALUE bug
2007-02-24
2007-02-01
- Many bug fixes
- Added line/column to nodes