Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[pdt-dev] General questions about PDT infra


My company has been working on Intelligent Code Repair (iCR) solutions in order to automatically fix security, reliability, and compliance problems for Java and C developers. For Java, our infra is based on JDT. 

We are planning to develop a similar solution for PHP. I want to understand whether we can use the core features inside PDT and build upon that like we did in case of Java. 

As such, I have a bunch of questions regarding PDT basics:

* Does PDT have support for AST for all versions of PHP?

* Do you have bindings as in the IBinding  and ITypeBinding etc., classes in JDT? 

* JDT bindings do not always work. Over the last two years, we have reported several bugs in JDT binding that got resolved. The problems in JDT typically occur for parametric types, inner classes, anonymous inner classes, etc., and most importantly the library classes. Is PDT relatively more stable when it comes to bindings? 

* Can PDT answer queries about types of expressions? 

* Similar to JDT, does PDT have a small-memory representation of the program units (ICompilationUnit) without requiring you to parse and create an AST?

* Do you have support for control flow analysis? For a flow node in code, can we ask PDT to give us the predecessor and/or successor.

* Do we have binding for methods to connect them to the method declarations? 

* How often do you release new versions of PDT?

* Which parts of the API are relatively stable? Which parts are evolving?

* Do you have visitors for AST nodes?

* We found several issues in JDT when line and block comments are present near AST nodes. Then often JDT produces confusing token offset and length information. Have these been stable in PDT? 

* Do you have code rewriting support similar to ASTRewrite in JDT?

* Assuming yes to the previous question, does PDT have support for pretty printing/ consistent indentation in the AST rewriter?

* When a new version of PHP is released, typically how long does it take to support the new features? I mean the support in AST, binding, control flow (if applicable) etc.

* We want to develop in Java. Are there any other infra for PDT dev tools development that is based on Java? Is PDT more mature than those?

Thanks in advance for your time.

Dr. Munawar Hafiz
Founder and CEO,
OpenRefactory, Inc.,

Back to the top