This project is a rewrite of Jasper for tomcat 4.x.

1. Main goals:

   * Cleanup of the current Jasper.
   * Use for RI work for JSP 1.3
   * Use for optimization work for generated servlet codes.

2. Status

   * Main jasper engine (parser, attribute validates, code generator)
     basically complete.

3. Todo

   * Rewrite attribute parser for better spec comformance.
   * More cleanup, especially jspc parts.
   * Added large file option.
   * Error messages.
   * JSR045 support
   * Expression language support (JSP1.3)
   * Optimizations, optimizations, and optimizations


