The extensible Java pre-processor EPP is an extensible Java source-to-source pre-processor which can introduce new language features. The user can specify “EPP plug-ins” at the top of Java source code in order to incorporate various extension of Java. Emitted source codes can be compiled by ordinary Java compilers, can be debugged by ordinary Java debuggers. Plug-ins can extend the syntax of Java by extending the recursive descend parser in a differential manner. EPP can also be used as an application framework of source code manipulation tools such as source level optimizer, metrics tools, obfuscating tools.