...
- no working Eclipse plugin found. (authors emailed)
- argument list pattern (sec 2.2) public _ (_, String, *) : any public method that accept a String as its second argument and returns any type
- quantifiers: no, all, exists...
- anonymous class
- pattern naming (integral := byte | short | int | long)
- variable binding
- no structural matching of AST (deemed difficult because uses class files) (so can't look match on a loop for example or find all local variables in method)
- no submethod information (local vars etc)
Wiki Markup read\[F\]/write\[F\] predicates to indicate whether a method reads/write to a field. Nice feature: write\[_\] tells whether method writes to a field at all. Q: How do we do this recursively? All methods within the method are not writing to fields...
- no support for generics (according to documentation)
...
- doesn't detect local inner classes (local & anonymous). Only inner classes (doesn't differentiate): class in all classes
- no access to local variable declared in methods
- no support for generics.
- no support for constructors (considered as method init)
- no AST structural matching. (e.g loops ...)
- no variable binding/unification
- set operators (union, intersection)
- support for read/write of fields references
Similar reasons to JTL.
Wiki Markup*{+}SOUL \[authors replying on Tuesday\]+*
- All Java AST supported by logic queries. (tight symbiosis with Eclipse JDT)
- When there isn't a dedicated predicate, the language allows to query the Eclipse semantic analyzer directly. (this solves the covariant arrays use case)
- template matching doesn't support all features. (for example generics, wildcards, try/catch blocks)
...
- https://bitbucket.org/jlahoda/jackpot30/wiki/RulesLanguageAdditionalDocs
- no support for types of expr
- no support for grouping elements by a characteristic (eg overloaded methods)
- http://wiki.netbeans.org/JavaDeclarativeHintsFormat
PMD
- http://www.ing.iac.es/~docs/external/java/pmd/rules/design.html
- http://code.google.com/p/code-cop-code/wiki/PmdRulesCodecop
- structural matching: all AST hiearchy can be queried through Xpath expression
- can't express subtype relations. E.g. assignments where RHS is supertype of left handside and different
- no variable binding
- support generic constructors but not bind it to enclosing class: //ConstructorDeclaration//TypeParameters
- no support for read/write effects
...
Overview
Content Tools
ThemeBuilder