Refactory: smarty.ui plugin.
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpdt / internal / compiler / impl / CompilerOptions.java
index 5baf599..409f590 100644 (file)
@@ -22,93 +22,173 @@ import net.sourceforge.phpdt.internal.compiler.env.IConstants;
 import net.sourceforge.phpdt.internal.compiler.lookup.ProblemReasons;
 import net.sourceforge.phpdt.internal.compiler.problem.ProblemSeverities;
 
-public class CompilerOptions implements ProblemReasons, ProblemSeverities, IConstants {
-       
+public class CompilerOptions implements ProblemReasons, ProblemSeverities,
+               IConstants {
+
        /**
         * Option IDs
         */
+       public static final String OPTION_PHPVarDeprecatedWarning = "net.sourceforge.phpeclipse.compiler.problem.phpVarDeprecatedWarning"; //$NON-NLS-1$
+
+       public static final String OPTION_PHPBadStyleKeywordWarning = "net.sourceforge.phpeclipse.compiler.problem.phpBadStyleKeywordWarning"; //$NON-NLS-1$
+
+       public static final String OPTION_PHPBadStyleUppercaseIdentifierWarning = "net.sourceforge.phpeclipse.compiler.problem.phpBadStyleUppercaseIdentifierWarning"; //$NON-NLS-1$
+
+       public static final String OPTION_PHPIncludeNotExistWarning = "net.sourceforge.phpeclipse.compiler.problem.phpIncludeNotExistWarning"; //$NON-NLS-1$
+
+       public static final String OPTION_UninitializedLocalVariableWarning = "net.sourceforge.phpeclipse.compiler.problem.uninitializedLocalVariableWarning"; //$NON-NLS-1$
+
+       public static final String OPTION_CodeCannotBeReachedWarning = "net.sourceforge.phpeclipse.compiler.problem.codeCannotBeReachedWarning"; //$NON-NLS-1$
+
        public static final String OPTION_LocalVariableAttribute = "net.sourceforge.phpeclipse.compiler.debug.localVariable"; //$NON-NLS-1$
+
        public static final String OPTION_LineNumberAttribute = "net.sourceforge.phpeclipse.compiler.debug.lineNumber"; //$NON-NLS-1$
+
        public static final String OPTION_SourceFileAttribute = "net.sourceforge.phpeclipse.compiler.debug.sourceFile"; //$NON-NLS-1$
-//     public static final String OPTION_PreserveUnusedLocal = "net.sourceforge.phpeclipse.compiler.codegen.unusedLocal"; //$NON-NLS-1$
+       // public static final String OPTION_PreserveUnusedLocal =
+       // "net.sourceforge.phpeclipse.compiler.codegen.unusedLocal"; //$NON-NLS-1$
+
+       public static final String OPTION_DocCommentSupport = "net.sourceforge.phpeclipse.compiler.doc.comment.support"; //$NON-NLS-1$
+
        public static final String OPTION_ReportMethodWithConstructorName = "net.sourceforge.phpeclipse.compiler.problem.methodWithConstructorName"; //$NON-NLS-1$
+
        public static final String OPTION_ReportOverridingPackageDefaultMethod = "net.sourceforge.phpeclipse.compiler.problem.overridingPackageDefaultMethod"; //$NON-NLS-1$
+
        public static final String OPTION_ReportDeprecation = "net.sourceforge.phpeclipse.compiler.problem.deprecation"; //$NON-NLS-1$
+
        public static final String OPTION_ReportDeprecationInDeprecatedCode = "net.sourceforge.phpeclipse.compiler.problem.deprecationInDeprecatedCode"; //$NON-NLS-1$
+
        public static final String OPTION_ReportDeprecationWhenOverridingDeprecatedMethod = "net.sourceforge.phpeclipse.compiler.problem.deprecationWhenOverridingDeprecatedMethod"; //$NON-NLS-1$
+
        public static final String OPTION_ReportHiddenCatchBlock = "net.sourceforge.phpeclipse.compiler.problem.hiddenCatchBlock"; //$NON-NLS-1$
+
        public static final String OPTION_ReportUnusedLocal = "net.sourceforge.phpeclipse.compiler.problem.unusedLocal"; //$NON-NLS-1$
+
        public static final String OPTION_ReportUnusedParameter = "net.sourceforge.phpeclipse.compiler.problem.unusedParameter"; //$NON-NLS-1$
+
        public static final String OPTION_ReportUnusedParameterWhenImplementingAbstract = "net.sourceforge.phpeclipse.compiler.problem.unusedParameterWhenImplementingAbstract"; //$NON-NLS-1$
+
        public static final String OPTION_ReportUnusedParameterWhenOverridingConcrete = "net.sourceforge.phpeclipse.compiler.problem.unusedParameterWhenOverridingConcrete"; //$NON-NLS-1$
+
        public static final String OPTION_ReportUnusedImport = "net.sourceforge.phpeclipse.compiler.problem.unusedImport"; //$NON-NLS-1$
+
        public static final String OPTION_ReportSyntheticAccessEmulation = "net.sourceforge.phpeclipse.compiler.problem.syntheticAccessEmulation"; //$NON-NLS-1$
+
        public static final String OPTION_ReportNoEffectAssignment = "net.sourceforge.phpeclipse.compiler.problem.noEffectAssignment"; //$NON-NLS-1$
+
        public static final String OPTION_ReportLocalVariableHiding = "net.sourceforge.phpeclipse.compiler.problem.localVariableHiding"; //$NON-NLS-1$
+
        public static final String OPTION_ReportSpecialParameterHidingField = "net.sourceforge.phpeclipse.compiler.problem.specialParameterHidingField"; //$NON-NLS-1$
+
        public static final String OPTION_ReportFieldHiding = "net.sourceforge.phpeclipse.compiler.problem.fieldHiding"; //$NON-NLS-1$
+
        public static final String OPTION_ReportPossibleAccidentalBooleanAssignment = "net.sourceforge.phpeclipse.compiler.problem.possibleAccidentalBooleanAssignment"; //$NON-NLS-1$
+
        public static final String OPTION_ReportNonExternalizedStringLiteral = "net.sourceforge.phpeclipse.compiler.problem.nonExternalizedStringLiteral"; //$NON-NLS-1$
+
        public static final String OPTION_ReportIncompatibleNonInheritedInterfaceMethod = "net.sourceforge.phpeclipse.compiler.problem.incompatibleNonInheritedInterfaceMethod"; //$NON-NLS-1$
+
        public static final String OPTION_ReportUnusedPrivateMember = "net.sourceforge.phpeclipse.compiler.problem.unusedPrivateMember"; //$NON-NLS-1$
+
        public static final String OPTION_ReportNoImplicitStringConversion = "net.sourceforge.phpeclipse.compiler.problem.noImplicitStringConversion"; //$NON-NLS-1$
+
        public static final String OPTION_ReportAssertIdentifier = "net.sourceforge.phpeclipse.compiler.problem.assertIdentifier"; //$NON-NLS-1$
+
        public static final String OPTION_ReportNonStaticAccessToStatic = "net.sourceforge.phpeclipse.compiler.problem.staticAccessReceiver"; //$NON-NLS-1$
+
        public static final String OPTION_ReportIndirectStaticAccess = "net.sourceforge.phpeclipse.compiler.problem.indirectStaticAccess"; //$NON-NLS-1$
+
        public static final String OPTION_ReportSuperfluousSemicolon = "net.sourceforge.phpeclipse.compiler.problem.superfluousSemicolon"; //$NON-NLS-1$
+
        public static final String OPTION_ReportUnnecessaryTypeCheck = "net.sourceforge.phpeclipse.compiler.problem.unnecessaryTypeCheck"; //$NON-NLS-1$
+
        public static final String OPTION_ReportUndocumentedEmptyBlock = "net.sourceforge.phpeclipse.compiler.problem.undocumentedEmptyBlock"; //$NON-NLS-1$
+
        public static final String OPTION_ReportInvalidJavadoc = "net.sourceforge.phpeclipse.compiler.problem.invalidJavadoc"; //$NON-NLS-1$
+
        public static final String OPTION_ReportInvalidJavadocTags = "net.sourceforge.phpeclipse.compiler.problem.invalidJavadocTags"; //$NON-NLS-1$
+
        public static final String OPTION_ReportInvalidJavadocTagsVisibility = "net.sourceforge.phpeclipse.compiler.problem.invalidJavadocTagsVisibility"; //$NON-NLS-1$
+
        public static final String OPTION_ReportMissingJavadocTags = "net.sourceforge.phpeclipse.compiler.problem.missingJavadocTags"; //$NON-NLS-1$
+
        public static final String OPTION_ReportMissingJavadocTagsVisibility = "net.sourceforge.phpeclipse.compiler.problem.missingJavadocTagsVisibility"; //$NON-NLS-1$
+
        public static final String OPTION_ReportMissingJavadocTagsOverriding = "net.sourceforge.phpeclipse.compiler.problem.missingJavadocTagsOverriding"; //$NON-NLS-1$
+
        public static final String OPTION_ReportMissingJavadocComments = "net.sourceforge.phpeclipse.compiler.problem.missingJavadocComments"; //$NON-NLS-1$
+
        public static final String OPTION_ReportMissingJavadocCommentsVisibility = "net.sourceforge.phpeclipse.compiler.problem.missingJavadocCommentsVisibility"; //$NON-NLS-1$
+
        public static final String OPTION_ReportMissingJavadocCommentsOverriding = "net.sourceforge.phpeclipse.compiler.problem.missingJavadocCommentsOverriding"; //$NON-NLS-1$
+
        public static final String OPTION_ReportFinallyBlockNotCompletingNormally = "net.sourceforge.phpeclipse.compiler.problem.finallyBlockNotCompletingNormally"; //$NON-NLS-1$
+
        public static final String OPTION_ReportUnusedDeclaredThrownException = "net.sourceforge.phpeclipse.compiler.problem.unusedDeclaredThrownException"; //$NON-NLS-1$
+
        public static final String OPTION_ReportUnusedDeclaredThrownExceptionWhenOverriding = "net.sourceforge.phpeclipse.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding"; //$NON-NLS-1$
+
        public static final String OPTION_ReportUnqualifiedFieldAccess = "net.sourceforge.phpeclipse.compiler.problem.unqualifiedFieldAccess"; //$NON-NLS-1$
-//     public static final String OPTION_Source = "net.sourceforge.phpeclipse.compiler.source"; //$NON-NLS-1$
-//     public static final String OPTION_TargetPlatform = "net.sourceforge.phpeclipse.compiler.codegen.targetPlatform"; //$NON-NLS-1$
-//     public static final String OPTION_Compliance = "net.sourceforge.phpeclipse.compiler.compliance"; //$NON-NLS-1$
+       // public static final String OPTION_Source =
+       // "net.sourceforge.phpeclipse.compiler.source"; //$NON-NLS-1$
+       // public static final String OPTION_TargetPlatform =
+       // "net.sourceforge.phpeclipse.compiler.codegen.targetPlatform";
+       // //$NON-NLS-1$
+       // public static final String OPTION_Compliance =
+       // "net.sourceforge.phpeclipse.compiler.compliance"; //$NON-NLS-1$
+
        public static final String OPTION_Encoding = "net.sourceforge.phpeclipse.encoding"; //$NON-NLS-1$
+
        public static final String OPTION_MaxProblemPerUnit = "net.sourceforge.phpeclipse.compiler.maxProblemPerUnit"; //$NON-NLS-1$
+
        public static final String OPTION_TaskTags = "net.sourceforge.phpeclipse.compiler.taskTags"; //$NON-NLS-1$
+
        public static final String OPTION_TaskPriorities = "net.sourceforge.phpeclipse.compiler.taskPriorities"; //$NON-NLS-1$
-       
+
        // Backward compatibility
        public static final String OPTION_ReportInvalidAnnotation = "net.sourceforge.phpeclipse.compiler.problem.invalidAnnotation"; //$NON-NLS-1$
+
        public static final String OPTION_ReportMissingAnnotation = "net.sourceforge.phpeclipse.compiler.problem.missingAnnotation"; //$NON-NLS-1$
+
        public static final String OPTION_ReportMissingJavadoc = "net.sourceforge.phpeclipse.compiler.problem.missingJavadoc"; //$NON-NLS-1$
 
        /* should surface ??? */
-//     public static final String OPTION_PrivateConstructorAccess = "net.sourceforge.phpeclipse.compiler.codegen.constructorAccessEmulation"; //$NON-NLS-1$
-
+       // public static final String OPTION_PrivateConstructorAccess =
+       // "net.sourceforge.phpeclipse.compiler.codegen.constructorAccessEmulation";
+       // //$NON-NLS-1$
        /**
         * Possible values for configurable options
         */
        public static final String GENERATE = "generate";//$NON-NLS-1$
+
        public static final String DO_NOT_GENERATE = "do not generate"; //$NON-NLS-1$ 
+
        public static final String PRESERVE = "preserve"; //$NON-NLS-1$
-//     public static final String OPTIMIZE_OUT = "optimize out"; //$NON-NLS-1$
-//     public static final String VERSION_1_1 = "1.1"; //$NON-NLS-1$
-//     public static final String VERSION_1_2 = "1.2"; //$NON-NLS-1$
-//     public static final String VERSION_1_3 = "1.3"; //$NON-NLS-1$
-//     public static final String VERSION_1_4 = "1.4"; //$NON-NLS-1$
-//     public static final String VERSION_1_5 = "1.5"; //$NON-NLS-1$
+       // public static final String OPTIMIZE_OUT = "optimize out"; //$NON-NLS-1$
+       // public static final String VERSION_1_1 = "1.1"; //$NON-NLS-1$
+       // public static final String VERSION_1_2 = "1.2"; //$NON-NLS-1$
+       // public static final String VERSION_1_3 = "1.3"; //$NON-NLS-1$
+       // public static final String VERSION_1_4 = "1.4"; //$NON-NLS-1$
+       // public static final String VERSION_1_5 = "1.5"; //$NON-NLS-1$
+
        public static final String ERROR = "error"; //$NON-NLS-1$
+
        public static final String WARNING = "warning"; //$NON-NLS-1$
+
        public static final String IGNORE = "ignore"; //$NON-NLS-1$
+
        public static final String ENABLED = "enabled"; //$NON-NLS-1$
+
        public static final String DISABLED = "disabled"; //$NON-NLS-1$
-       public static final String PUBLIC = "public";   //$NON-NLS-1$
-       public static final String PROTECTED = "protected";     //$NON-NLS-1$
-       public static final String DEFAULT = "default"; //$NON-NLS-1$
-       public static final String PRIVATE = "private"; //$NON-NLS-1$
-       
+
+       public static final String PUBLIC = "public"; //$NON-NLS-1$
+
+       public static final String PROTECTED = "protected"; //$NON-NLS-1$
+
+       public static final String DEFAULT = "default"; //$NON-NLS-1$
+
+       public static final String PRIVATE = "private"; //$NON-NLS-1$
+
        /**
         * Bit mask for configurable problems (error/warning threshold)
         */
@@ -117,84 +197,132 @@ public class CompilerOptions implements ProblemReasons, ProblemSeverities, ICons
        // 0x400L unused
        // 0x800L unused
        public static final long MethodWithConstructorName = 0x1000L;
+
        public static final long OverriddenPackageDefaultMethod = 0x2000L;
+
        public static final long UsingDeprecatedAPI = 0x4000L;
+
        public static final long MaskedCatchBlock = 0x8000L;
+
        public static final long UnusedLocalVariable = 0x10000L;
+
        public static final long UnusedArgument = 0x20000L;
+
        public static final long NoImplicitStringConversion = 0x40000L;
+
        public static final long AccessEmulation = 0x80000L;
+
        public static final long NonExternalizedString = 0x100000L;
+
        public static final long AssertUsedAsAnIdentifier = 0x200000L;
+
        public static final long UnusedImport = 0x400000L;
+
        public static final long NonStaticAccessToStatic = 0x800000L;
+
        public static final long Task = 0x1000000L;
+
        public static final long NoEffectAssignment = 0x2000000L;
+
        public static final long IncompatibleNonInheritedInterfaceMethod = 0x4000000L;
+
        public static final long UnusedPrivateMember = 0x8000000L;
+
        public static final long LocalVariableHiding = 0x10000000L;
+
        public static final long FieldHiding = 0x20000000L;
+
        public static final long AccidentalBooleanAssign = 0x40000000L;
+
        public static final long SuperfluousSemicolon = 0x80000000L;
+
        public static final long IndirectStaticAccess = 0x100000000L;
+
        public static final long UndocumentedEmptyBlock = 0x200000000L;
+
        public static final long UnnecessaryTypeCheck = 0x400000000L;
+
        public static final long InvalidJavadoc = 0x800000000L;
+
        public static final long FinallyBlockNotCompleting = 0x1000000000L;
+
        public static final long UnusedDeclaredThrownException = 0x2000000000L;
+
        public static final long UnqualifiedFieldAccess = 0x4000000000L;
+
        public static final long MissingJavadocTags = 0x8000000000L;
-       public static final long MissingJavadocComments  = 0x10000000000L;
+
+       public static final long MissingJavadocComments = 0x10000000000L;
+
+       public static final long PHPVarDeprecatedWarning = 0x20000000000L;
+
+       public static final long PHPBadStyleKeywordWarning = 0x40000000000L;
+
+       public static final long PHPBadStyleUppercaseIdentifierWarning = 0x80000000000L;
+
+       public static final long PHPIncludeNotExistWarning = 0x100000000000L;
+
+       public static final long UninitializedLocalVariableWarning = 0x200000000000L;
+
+       public static final long CodeCannotBeReachedWarning = 0x400000000000L;
 
        // Default severity level for handlers
        public long errorThreshold = 0;
-               
-       public long warningThreshold = 
-               MethodWithConstructorName 
-               | UsingDeprecatedAPI 
-               | MaskedCatchBlock 
-               | OverriddenPackageDefaultMethod
-               | UnusedImport
-               | NonStaticAccessToStatic
-               | NoEffectAssignment
-               | IncompatibleNonInheritedInterfaceMethod
-               | NoImplicitStringConversion
-               | FinallyBlockNotCompleting
-               | AssertUsedAsAnIdentifier;
+
+       public long warningThreshold = MethodWithConstructorName
+                       | UsingDeprecatedAPI | MaskedCatchBlock
+                       | OverriddenPackageDefaultMethod | UnusedImport
+                       | NonStaticAccessToStatic | NoEffectAssignment
+                       | IncompatibleNonInheritedInterfaceMethod
+                       | NoImplicitStringConversion | FinallyBlockNotCompleting
+                       | AssertUsedAsAnIdentifier | PHPVarDeprecatedWarning
+                       | PHPBadStyleKeywordWarning | PHPBadStyleUppercaseIdentifierWarning
+                       | PHPIncludeNotExistWarning | UninitializedLocalVariableWarning
+                       | CodeCannotBeReachedWarning;;
 
        // Debug attributes
        public static final int Source = 1; // SourceFileAttribute
+
        public static final int Lines = 2; // LineNumberAttribute
+
        public static final int Vars = 4; // LocalVariableTableAttribute
 
        // By default only lines and source attributes are generated.
        public int produceDebugAttributes = Lines | Source;
 
-//     public long complianceLevel = JDK1_4; // by default be compliant with 1.4
-//     public long sourceLevel = JDK1_3; //1.3 source behavior by default
-//     public long targetJDK = JDK1_2; // default generates for JVM1.2
+       // public long complianceLevel = JDK1_4; // by default be compliant with 1.4
+       // public long sourceLevel = JDK1_3; //1.3 source behavior by default
+       // public long targetJDK = JDK1_2; // default generates for JVM1.2
+
+       // toggle private access emulation for 1.2 (constr. accessor has extra arg
+       // on constructor) or 1.3 (make private constructor default access when
+       // access needed)
+       public boolean isPrivateConstructorAccessChangingVisibility = false; // by
+                                                                                                                                                       // default,
+                                                                                                                                                       // follows
+                                                                                                                                                       // 1.2
 
-       // toggle private access emulation for 1.2 (constr. accessor has extra arg on constructor) or 1.3 (make private constructor default access when access needed)
-       public boolean isPrivateConstructorAccessChangingVisibility = false; // by default, follows 1.2
-       
        // source encoding format
-       public String defaultEncoding = null; // will use the platform default encoding
-       
+       public String defaultEncoding = null; // will use the platform default
+                                                                                       // encoding
+
        // print what unit is being processed
        public boolean verbose = Compiler.DEBUG;
 
        // indicates if reference info is desired
        public boolean produceReferenceInfo = false;
 
-       // indicates if unused/optimizable local variables need to be preserved (debugging purpose)
+       // indicates if unused/optimizable local variables need to be preserved
+       // (debugging purpose)
        public boolean preserveAllLocalVariables = false;
 
        // indicates whether literal expressions are inlined at parse-time or not
        public boolean parseLiteralExpressionsAsConstants = true;
 
        // max problems per compilation unit
-       public int maxProblemsPerUnit = 100; // no more than 100 problems per default
-       
+       public int maxProblemsPerUnit = 100; // no more than 100 problems per
+                                                                                       // default
+
        // tags used to recognize tasks in comments
        public char[][] taskTags = null;
 
@@ -203,135 +331,227 @@ public class CompilerOptions implements ProblemReasons, ProblemSeverities, ICons
 
        // deprecation report
        public boolean reportDeprecationInsideDeprecatedCode = false;
+
        public boolean reportDeprecationWhenOverridingDeprecatedMethod = false;
-       
+
        // unused parameters report
        public boolean reportUnusedParameterWhenImplementingAbstract = false;
+
        public boolean reportUnusedParameterWhenOverridingConcrete = false;
 
        // unused declaration of thrown exception
        public boolean reportUnusedDeclaredThrownExceptionWhenOverriding = false;
-       
+
        // constructor/setter parameter hiding
        public boolean reportSpecialParameterHidingField = false;
 
        // check javadoc comments
-       public int reportInvalidJavadocTagsVisibility = AccPrivate; 
-       public boolean reportInvalidJavadocTags = true; 
+       public int reportInvalidJavadocTagsVisibility = AccPrivate;
+
+       public boolean reportInvalidJavadocTags = true;
 
        // check missing javadoc tags
-       public int reportMissingJavadocTagsVisibility = AccPrivate; 
+       public int reportMissingJavadocTagsVisibility = AccPrivate;
+
        public boolean reportMissingJavadocTagsOverriding = true;
 
        // check missing javadoc comments
-       public int reportMissingJavadocCommentsVisibility = AccPublic; 
-       public boolean reportMissingJavadocCommentsOverriding = true; 
-       
-       /** 
+       public int reportMissingJavadocCommentsVisibility = AccPublic;
+
+       public boolean reportMissingJavadocCommentsOverriding = true;
+
+       // javadoc comment support
+       public boolean docCommentSupport = false;
+
+       /**
         * Initializing the compiler options with defaults
         */
-       public CompilerOptions(){
+       public CompilerOptions() {
                // use default options
        }
 
-       /** 
+       /**
         * Initializing the compiler options with external settings
+        * 
         * @param settings
         */
-       public CompilerOptions(Map settings){
+       public CompilerOptions(Map settings) {
 
-               if (settings == null) return;
-               set(settings);          
+               if (settings == null)
+                       return;
+               set(settings);
        }
 
        public Map getMap() {
                Map optionsMap = new HashMap(30);
-               optionsMap.put(OPTION_LocalVariableAttribute, (this.produceDebugAttributes & Vars) != 0 ? GENERATE : DO_NOT_GENERATE); 
-               optionsMap.put(OPTION_LineNumberAttribute, (this.produceDebugAttributes & Lines) != 0 ? GENERATE : DO_NOT_GENERATE);
-               optionsMap.put(OPTION_SourceFileAttribute, (this.produceDebugAttributes & Source) != 0 ? GENERATE : DO_NOT_GENERATE);
-//             optionsMap.put(OPTION_PreserveUnusedLocal, this.preserveAllLocalVariables ? PRESERVE : OPTIMIZE_OUT);
-               optionsMap.put(OPTION_ReportMethodWithConstructorName, getSeverityString(MethodWithConstructorName)); 
-               optionsMap.put(OPTION_ReportOverridingPackageDefaultMethod, getSeverityString(OverriddenPackageDefaultMethod)); 
-               optionsMap.put(OPTION_ReportDeprecation, getSeverityString(UsingDeprecatedAPI)); 
-               optionsMap.put(OPTION_ReportDeprecationInDeprecatedCode, this.reportDeprecationInsideDeprecatedCode ? ENABLED : DISABLED); 
-               optionsMap.put(OPTION_ReportDeprecationWhenOverridingDeprecatedMethod, this.reportDeprecationWhenOverridingDeprecatedMethod ? ENABLED : DISABLED); 
-               optionsMap.put(OPTION_ReportHiddenCatchBlock, getSeverityString(MaskedCatchBlock)); 
-               optionsMap.put(OPTION_ReportUnusedLocal, getSeverityString(UnusedLocalVariable)); 
-               optionsMap.put(OPTION_ReportUnusedParameter, getSeverityString(UnusedArgument)); 
-               optionsMap.put(OPTION_ReportUnusedImport, getSeverityString(UnusedImport)); 
-               optionsMap.put(OPTION_ReportSyntheticAccessEmulation, getSeverityString(AccessEmulation)); 
-               optionsMap.put(OPTION_ReportNoEffectAssignment, getSeverityString(NoEffectAssignment)); 
-               optionsMap.put(OPTION_ReportNonExternalizedStringLiteral, getSeverityString(NonExternalizedString)); 
-               optionsMap.put(OPTION_ReportNoImplicitStringConversion, getSeverityString(NoImplicitStringConversion)); 
-               optionsMap.put(OPTION_ReportNonStaticAccessToStatic, getSeverityString(NonStaticAccessToStatic)); 
-               optionsMap.put(OPTION_ReportIndirectStaticAccess, getSeverityString(IndirectStaticAccess)); 
-               optionsMap.put(OPTION_ReportIncompatibleNonInheritedInterfaceMethod, getSeverityString(IncompatibleNonInheritedInterfaceMethod)); 
-               optionsMap.put(OPTION_ReportUnusedPrivateMember, getSeverityString(UnusedPrivateMember)); 
-               optionsMap.put(OPTION_ReportLocalVariableHiding, getSeverityString(LocalVariableHiding)); 
-               optionsMap.put(OPTION_ReportFieldHiding, getSeverityString(FieldHiding)); 
-               optionsMap.put(OPTION_ReportPossibleAccidentalBooleanAssignment, getSeverityString(AccidentalBooleanAssign)); 
-               optionsMap.put(OPTION_ReportSuperfluousSemicolon, getSeverityString(SuperfluousSemicolon)); 
-               optionsMap.put(OPTION_ReportAssertIdentifier, getSeverityString(AssertUsedAsAnIdentifier)); 
-               optionsMap.put(OPTION_ReportUndocumentedEmptyBlock, getSeverityString(UndocumentedEmptyBlock)); 
-               optionsMap.put(OPTION_ReportUnnecessaryTypeCheck, getSeverityString(UnnecessaryTypeCheck)); 
-               optionsMap.put(OPTION_ReportInvalidJavadoc, getSeverityString(InvalidJavadoc));
-               optionsMap.put(OPTION_ReportInvalidJavadocTagsVisibility, getVisibilityString(this.reportInvalidJavadocTagsVisibility));
-               optionsMap.put(OPTION_ReportInvalidJavadocTags, this.reportInvalidJavadocTags? ENABLED : DISABLED);
-               optionsMap.put(OPTION_ReportMissingJavadocTags, getSeverityString(MissingJavadocTags));
-               optionsMap.put(OPTION_ReportMissingJavadocTagsVisibility, getVisibilityString(this.reportMissingJavadocTagsVisibility));
-               optionsMap.put(OPTION_ReportMissingJavadocTagsOverriding, this.reportMissingJavadocTagsOverriding ? ENABLED : DISABLED);
-               optionsMap.put(OPTION_ReportMissingJavadocComments, getSeverityString(MissingJavadocComments));
-               optionsMap.put(OPTION_ReportMissingJavadocCommentsVisibility, getVisibilityString(this.reportMissingJavadocCommentsVisibility));
-               optionsMap.put(OPTION_ReportMissingJavadocCommentsOverriding, this.reportMissingJavadocCommentsOverriding ? ENABLED : DISABLED);
-               optionsMap.put(OPTION_ReportFinallyBlockNotCompletingNormally, getSeverityString(FinallyBlockNotCompleting));
-               optionsMap.put(OPTION_ReportUnusedDeclaredThrownException, getSeverityString(UnusedDeclaredThrownException));
-               optionsMap.put(OPTION_ReportUnusedDeclaredThrownExceptionWhenOverriding, this.reportUnusedDeclaredThrownExceptionWhenOverriding ? ENABLED : DISABLED); 
-               optionsMap.put(OPTION_ReportUnqualifiedFieldAccess, getSeverityString(UnqualifiedFieldAccess));
-//             optionsMap.put(OPTION_Compliance, versionFromJdkLevel(this.complianceLevel)); 
-//             optionsMap.put(OPTION_Source, versionFromJdkLevel(this.sourceLevel)); 
-//             optionsMap.put(OPTION_TargetPlatform, versionFromJdkLevel(this.targetJDK)); 
+               optionsMap.put(OPTION_PHPIncludeNotExistWarning,
+                               getSeverityString(PHPIncludeNotExistWarning));
+               optionsMap.put(OPTION_PHPVarDeprecatedWarning,
+                               getSeverityString(PHPVarDeprecatedWarning));
+               optionsMap.put(OPTION_PHPBadStyleKeywordWarning,
+                               getSeverityString(PHPBadStyleKeywordWarning));
+               optionsMap.put(OPTION_PHPBadStyleUppercaseIdentifierWarning,
+                               getSeverityString(PHPBadStyleUppercaseIdentifierWarning));
+               optionsMap.put(OPTION_UninitializedLocalVariableWarning,
+                               getSeverityString(UninitializedLocalVariableWarning));
+               optionsMap.put(OPTION_CodeCannotBeReachedWarning,
+                               getSeverityString(CodeCannotBeReachedWarning));
+
+               optionsMap.put(OPTION_LocalVariableAttribute,
+                               (this.produceDebugAttributes & Vars) != 0 ? GENERATE
+                                               : DO_NOT_GENERATE);
+               optionsMap.put(OPTION_LineNumberAttribute,
+                               (this.produceDebugAttributes & Lines) != 0 ? GENERATE
+                                               : DO_NOT_GENERATE);
+               optionsMap.put(OPTION_SourceFileAttribute,
+                               (this.produceDebugAttributes & Source) != 0 ? GENERATE
+                                               : DO_NOT_GENERATE);
+               // optionsMap.put(OPTION_PreserveUnusedLocal,
+               // this.preserveAllLocalVariables ? PRESERVE : OPTIMIZE_OUT);
+               optionsMap.put(OPTION_DocCommentSupport,
+                               this.docCommentSupport ? ENABLED : DISABLED);
+               optionsMap.put(OPTION_ReportMethodWithConstructorName,
+                               getSeverityString(MethodWithConstructorName));
+               optionsMap.put(OPTION_ReportOverridingPackageDefaultMethod,
+                               getSeverityString(OverriddenPackageDefaultMethod));
+               optionsMap.put(OPTION_ReportDeprecation,
+                               getSeverityString(UsingDeprecatedAPI));
+               optionsMap
+                               .put(OPTION_ReportDeprecationInDeprecatedCode,
+                                               this.reportDeprecationInsideDeprecatedCode ? ENABLED
+                                                               : DISABLED);
+               optionsMap.put(OPTION_ReportDeprecationWhenOverridingDeprecatedMethod,
+                               this.reportDeprecationWhenOverridingDeprecatedMethod ? ENABLED
+                                               : DISABLED);
+               optionsMap.put(OPTION_ReportHiddenCatchBlock,
+                               getSeverityString(MaskedCatchBlock));
+               optionsMap.put(OPTION_ReportUnusedLocal,
+                               getSeverityString(UnusedLocalVariable));
+               optionsMap.put(OPTION_ReportUnusedParameter,
+                               getSeverityString(UnusedArgument));
+               optionsMap.put(OPTION_ReportUnusedImport,
+                               getSeverityString(UnusedImport));
+               optionsMap.put(OPTION_ReportSyntheticAccessEmulation,
+                               getSeverityString(AccessEmulation));
+               optionsMap.put(OPTION_ReportNoEffectAssignment,
+                               getSeverityString(NoEffectAssignment));
+               optionsMap.put(OPTION_ReportNonExternalizedStringLiteral,
+                               getSeverityString(NonExternalizedString));
+               optionsMap.put(OPTION_ReportNoImplicitStringConversion,
+                               getSeverityString(NoImplicitStringConversion));
+               optionsMap.put(OPTION_ReportNonStaticAccessToStatic,
+                               getSeverityString(NonStaticAccessToStatic));
+               optionsMap.put(OPTION_ReportIndirectStaticAccess,
+                               getSeverityString(IndirectStaticAccess));
+               optionsMap.put(OPTION_ReportIncompatibleNonInheritedInterfaceMethod,
+                               getSeverityString(IncompatibleNonInheritedInterfaceMethod));
+               optionsMap.put(OPTION_ReportUnusedPrivateMember,
+                               getSeverityString(UnusedPrivateMember));
+               optionsMap.put(OPTION_ReportLocalVariableHiding,
+                               getSeverityString(LocalVariableHiding));
+               optionsMap
+                               .put(OPTION_ReportFieldHiding, getSeverityString(FieldHiding));
+               optionsMap.put(OPTION_ReportPossibleAccidentalBooleanAssignment,
+                               getSeverityString(AccidentalBooleanAssign));
+               optionsMap.put(OPTION_ReportSuperfluousSemicolon,
+                               getSeverityString(SuperfluousSemicolon));
+               optionsMap.put(OPTION_ReportAssertIdentifier,
+                               getSeverityString(AssertUsedAsAnIdentifier));
+               optionsMap.put(OPTION_ReportUndocumentedEmptyBlock,
+                               getSeverityString(UndocumentedEmptyBlock));
+               optionsMap.put(OPTION_ReportUnnecessaryTypeCheck,
+                               getSeverityString(UnnecessaryTypeCheck));
+               optionsMap.put(OPTION_ReportInvalidJavadoc,
+                               getSeverityString(InvalidJavadoc));
+               optionsMap.put(OPTION_ReportInvalidJavadocTagsVisibility,
+                               getVisibilityString(this.reportInvalidJavadocTagsVisibility));
+               optionsMap.put(OPTION_ReportInvalidJavadocTags,
+                               this.reportInvalidJavadocTags ? ENABLED : DISABLED);
+               optionsMap.put(OPTION_ReportMissingJavadocTags,
+                               getSeverityString(MissingJavadocTags));
+               optionsMap.put(OPTION_ReportMissingJavadocTagsVisibility,
+                               getVisibilityString(this.reportMissingJavadocTagsVisibility));
+               optionsMap.put(OPTION_ReportMissingJavadocTagsOverriding,
+                               this.reportMissingJavadocTagsOverriding ? ENABLED : DISABLED);
+               optionsMap.put(OPTION_ReportMissingJavadocComments,
+                               getSeverityString(MissingJavadocComments));
+               optionsMap
+                               .put(
+                                               OPTION_ReportMissingJavadocCommentsVisibility,
+                                               getVisibilityString(this.reportMissingJavadocCommentsVisibility));
+               optionsMap.put(OPTION_ReportMissingJavadocCommentsOverriding,
+                               this.reportMissingJavadocCommentsOverriding ? ENABLED
+                                               : DISABLED);
+               optionsMap.put(OPTION_ReportFinallyBlockNotCompletingNormally,
+                               getSeverityString(FinallyBlockNotCompleting));
+               optionsMap.put(OPTION_ReportUnusedDeclaredThrownException,
+                               getSeverityString(UnusedDeclaredThrownException));
+               optionsMap
+                               .put(
+                                               OPTION_ReportUnusedDeclaredThrownExceptionWhenOverriding,
+                                               this.reportUnusedDeclaredThrownExceptionWhenOverriding ? ENABLED
+                                                               : DISABLED);
+               optionsMap.put(OPTION_ReportUnqualifiedFieldAccess,
+                               getSeverityString(UnqualifiedFieldAccess));
+               // optionsMap.put(OPTION_Compliance,
+               // versionFromJdkLevel(this.complianceLevel));
+               // optionsMap.put(OPTION_Source, versionFromJdkLevel(this.sourceLevel));
+               // optionsMap.put(OPTION_TargetPlatform,
+               // versionFromJdkLevel(this.targetJDK));
                if (this.defaultEncoding != null) {
-                       optionsMap.put(OPTION_Encoding, this.defaultEncoding); 
+                       optionsMap.put(OPTION_Encoding, this.defaultEncoding);
                }
-               optionsMap.put(OPTION_TaskTags, this.taskTags == null ? "" : new String(CharOperation.concatWith(this.taskTags,','))); //$NON-NLS-1$
-               optionsMap.put(OPTION_TaskPriorities, this.taskPriorites == null ? "" : new String(CharOperation.concatWith(this.taskPriorites,','))); //$NON-NLS-1$
-               optionsMap.put(OPTION_ReportUnusedParameterWhenImplementingAbstract, this.reportUnusedParameterWhenImplementingAbstract ? ENABLED : DISABLED); 
-               optionsMap.put(OPTION_ReportUnusedParameterWhenOverridingConcrete, this.reportUnusedParameterWhenOverridingConcrete ? ENABLED : DISABLED); 
-               optionsMap.put(OPTION_ReportSpecialParameterHidingField, this.reportSpecialParameterHidingField ? ENABLED : DISABLED); 
-               optionsMap.put(OPTION_MaxProblemPerUnit, String.valueOf(this.maxProblemsPerUnit));
-
-               return optionsMap;              
+               optionsMap
+                               .put(
+                                               OPTION_TaskTags,
+                                               this.taskTags == null ? "" : new String(CharOperation.concatWith(this.taskTags, ','))); //$NON-NLS-1$
+               optionsMap
+                               .put(
+                                               OPTION_TaskPriorities,
+                                               this.taskPriorites == null ? "" : new String(CharOperation.concatWith(this.taskPriorites, ','))); //$NON-NLS-1$
+               optionsMap.put(OPTION_ReportUnusedParameterWhenImplementingAbstract,
+                               this.reportUnusedParameterWhenImplementingAbstract ? ENABLED
+                                               : DISABLED);
+               optionsMap.put(OPTION_ReportUnusedParameterWhenOverridingConcrete,
+                               this.reportUnusedParameterWhenOverridingConcrete ? ENABLED
+                                               : DISABLED);
+               optionsMap.put(OPTION_ReportSpecialParameterHidingField,
+                               this.reportSpecialParameterHidingField ? ENABLED : DISABLED);
+               optionsMap.put(OPTION_MaxProblemPerUnit, String
+                               .valueOf(this.maxProblemsPerUnit));
+
+               return optionsMap;
        }
-       
+
        public int getSeverity(long irritant) {
-               if((this.warningThreshold & irritant) != 0)
+               if ((this.warningThreshold & irritant) != 0)
                        return Warning;
-               if((this.errorThreshold & irritant) != 0)
+               if ((this.errorThreshold & irritant) != 0)
                        return Error;
                return Ignore;
        }
 
        public String getSeverityString(long irritant) {
-               if((this.warningThreshold & irritant) != 0)
+               if ((this.warningThreshold & irritant) != 0)
                        return WARNING;
-               if((this.errorThreshold & irritant) != 0)
+               if ((this.errorThreshold & irritant) != 0)
                        return ERROR;
                return IGNORE;
        }
-       
+
        public String getVisibilityString(int level) {
                switch (level) {
-                       case AccPublic:
-                               return PUBLIC;
-                       case AccProtected:
-                               return PROTECTED;
-                       case AccPrivate:
-                               return PRIVATE;
-                       default:
-                               return DEFAULT;
+               case AccPublic:
+                       return PUBLIC;
+               case AccProtected:
+                       return PROTECTED;
+               case AccPrivate:
+                       return PRIVATE;
+               default:
+                       return DEFAULT;
                }
        }
-       
+
        public void set(Map optionsMap) {
 
                Object optionValue;
@@ -356,79 +576,89 @@ public class CompilerOptions implements ProblemReasons, ProblemSeverities, ICons
                                this.produceDebugAttributes &= ~Source;
                        }
                }
-//             if ((optionValue = optionsMap.get(OPTION_PreserveUnusedLocal)) != null) {
-//                     if (PRESERVE.equals(optionValue)) {
-//                             this.preserveAllLocalVariables = true;
-//                     } else if (OPTIMIZE_OUT.equals(optionValue)) {
-//                             this.preserveAllLocalVariables = false;
-//                     }
-//             }
-               if ((optionValue = optionsMap.get(OPTION_ReportDeprecationInDeprecatedCode)) != null) {
+               // if ((optionValue = optionsMap.get(OPTION_PreserveUnusedLocal)) !=
+               // null) {
+               // if (PRESERVE.equals(optionValue)) {
+               // this.preserveAllLocalVariables = true;
+               // } else if (OPTIMIZE_OUT.equals(optionValue)) {
+               // this.preserveAllLocalVariables = false;
+               // }
+               // }
+               if ((optionValue = optionsMap
+                               .get(OPTION_ReportDeprecationInDeprecatedCode)) != null) {
                        if (ENABLED.equals(optionValue)) {
                                this.reportDeprecationInsideDeprecatedCode = true;
                        } else if (DISABLED.equals(optionValue)) {
                                this.reportDeprecationInsideDeprecatedCode = false;
                        }
                }
-               if ((optionValue = optionsMap.get(OPTION_ReportDeprecationWhenOverridingDeprecatedMethod)) != null) {
+               if ((optionValue = optionsMap
+                               .get(OPTION_ReportDeprecationWhenOverridingDeprecatedMethod)) != null) {
                        if (ENABLED.equals(optionValue)) {
                                this.reportDeprecationWhenOverridingDeprecatedMethod = true;
                        } else if (DISABLED.equals(optionValue)) {
                                this.reportDeprecationWhenOverridingDeprecatedMethod = false;
                        }
                }
-               if ((optionValue = optionsMap.get(OPTION_ReportUnusedDeclaredThrownExceptionWhenOverriding)) != null) {
+               if ((optionValue = optionsMap
+                               .get(OPTION_ReportUnusedDeclaredThrownExceptionWhenOverriding)) != null) {
                        if (ENABLED.equals(optionValue)) {
                                this.reportUnusedDeclaredThrownExceptionWhenOverriding = true;
                        } else if (DISABLED.equals(optionValue)) {
                                this.reportUnusedDeclaredThrownExceptionWhenOverriding = false;
                        }
                }
-//             if ((optionValue = optionsMap.get(OPTION_Compliance)) != null) {
-//                     long level = versionToJdkLevel(optionValue);
-//                     if (level != 0) this.complianceLevel = level;
-//             }
-//             if ((optionValue = optionsMap.get(OPTION_Source)) != null) {
-//                     long level = versionToJdkLevel(optionValue);
-//                     if (level != 0) this.sourceLevel = level;
-//             }
-//             if ((optionValue = optionsMap.get(OPTION_TargetPlatform)) != null) {
-//                     long level = versionToJdkLevel(optionValue);
-//                     if (level != 0) this.targetJDK = level;
-//             }
+               // if ((optionValue = optionsMap.get(OPTION_Compliance)) != null) {
+               // long level = versionToJdkLevel(optionValue);
+               // if (level != 0) this.complianceLevel = level;
+               // }
+               // if ((optionValue = optionsMap.get(OPTION_Source)) != null) {
+               // long level = versionToJdkLevel(optionValue);
+               // if (level != 0) this.sourceLevel = level;
+               // }
+               // if ((optionValue = optionsMap.get(OPTION_TargetPlatform)) != null) {
+               // long level = versionToJdkLevel(optionValue);
+               // if (level != 0) this.targetJDK = level;
+               // }
                if ((optionValue = optionsMap.get(OPTION_Encoding)) != null) {
                        if (optionValue instanceof String) {
                                this.defaultEncoding = null;
                                String stringValue = (String) optionValue;
-                               if (stringValue.length() > 0){
-                                       try { 
-                                               new InputStreamReader(new ByteArrayInputStream(new byte[0]), stringValue);
+                               if (stringValue.length() > 0) {
+                                       try {
+                                               new InputStreamReader(new ByteArrayInputStream(
+                                                               new byte[0]), stringValue);
                                                this.defaultEncoding = stringValue;
-                                       } catch(UnsupportedEncodingException e){
+                                       } catch (UnsupportedEncodingException e) {
                                                // ignore unsupported encoding
                                        }
                                }
                        }
                }
-//             if ((optionValue = optionsMap.get(OPTION_PrivateConstructorAccess)) != null) {
-//                     long level = versionToJdkLevel(optionValue);
-//                     if (level >= JDK1_3) this.isPrivateConstructorAccessChangingVisibility = true;
-//             }
-               if ((optionValue = optionsMap.get(OPTION_ReportUnusedParameterWhenImplementingAbstract)) != null) {
+               // if ((optionValue = optionsMap.get(OPTION_PrivateConstructorAccess))
+               // != null) {
+               // long level = versionToJdkLevel(optionValue);
+               // if (level >= JDK1_3)
+               // this.isPrivateConstructorAccessChangingVisibility = true;
+               // }
+               if ((optionValue = optionsMap
+                               .get(OPTION_ReportUnusedParameterWhenImplementingAbstract)) != null) {
                        if (ENABLED.equals(optionValue)) {
                                this.reportUnusedParameterWhenImplementingAbstract = true;
                        } else if (DISABLED.equals(optionValue)) {
                                this.reportUnusedParameterWhenImplementingAbstract = false;
                        }
                }
-               if ((optionValue = optionsMap.get(OPTION_ReportUnusedParameterWhenOverridingConcrete)) != null) {
+               if ((optionValue = optionsMap
+                               .get(OPTION_ReportUnusedParameterWhenOverridingConcrete)) != null) {
                        if (ENABLED.equals(optionValue)) {
                                this.reportUnusedParameterWhenOverridingConcrete = true;
                        } else if (DISABLED.equals(optionValue)) {
                                this.reportUnusedParameterWhenOverridingConcrete = false;
                        }
                }
-               if ((optionValue = optionsMap.get(OPTION_ReportSpecialParameterHidingField)) != null) {
+               if ((optionValue = optionsMap
+                               .get(OPTION_ReportSpecialParameterHidingField)) != null) {
                        if (ENABLED.equals(optionValue)) {
                                this.reportSpecialParameterHidingField = true;
                        } else if (DISABLED.equals(optionValue)) {
@@ -440,10 +670,11 @@ public class CompilerOptions implements ProblemReasons, ProblemSeverities, ICons
                                String stringValue = (String) optionValue;
                                try {
                                        int val = Integer.parseInt(stringValue);
-                                       if (val >= 0) this.maxProblemsPerUnit = val;
-                               } catch(NumberFormatException e){
+                                       if (val >= 0)
+                                               this.maxProblemsPerUnit = val;
+                               } catch (NumberFormatException e) {
                                        // ignore ill-formatted limit
-                               }                               
+                               }
                        }
                }
                if ((optionValue = optionsMap.get(OPTION_TaskTags)) != null) {
@@ -452,7 +683,8 @@ public class CompilerOptions implements ProblemReasons, ProblemSeverities, ICons
                                if (stringValue.length() == 0) {
                                        this.taskTags = null;
                                } else {
-                                       this.taskTags = CharOperation.splitAndTrimOn(',', stringValue.toCharArray());
+                                       this.taskTags = CharOperation.splitAndTrimOn(',',
+                                                       stringValue.toCharArray());
                                }
                        }
                }
@@ -462,54 +694,113 @@ public class CompilerOptions implements ProblemReasons, ProblemSeverities, ICons
                                if (stringValue.length() == 0) {
                                        this.taskPriorites = null;
                                } else {
-                                       this.taskPriorites = CharOperation.splitAndTrimOn(',', stringValue.toCharArray());
+                                       this.taskPriorites = CharOperation.splitAndTrimOn(',',
+                                                       stringValue.toCharArray());
                                }
                        }
                }
-               if ((optionValue = optionsMap.get(OPTION_ReportMethodWithConstructorName)) != null) updateSeverity(MethodWithConstructorName, optionValue);
-               if ((optionValue = optionsMap.get(OPTION_ReportOverridingPackageDefaultMethod)) != null) updateSeverity(OverriddenPackageDefaultMethod, optionValue);
-               if ((optionValue = optionsMap.get(OPTION_ReportDeprecation)) != null) updateSeverity(UsingDeprecatedAPI, optionValue);
-               if ((optionValue = optionsMap.get(OPTION_ReportHiddenCatchBlock)) != null) updateSeverity(MaskedCatchBlock, optionValue);
-               if ((optionValue = optionsMap.get(OPTION_ReportUnusedLocal)) != null) updateSeverity(UnusedLocalVariable, optionValue);
-               if ((optionValue = optionsMap.get(OPTION_ReportUnusedParameter)) != null) updateSeverity(UnusedArgument, optionValue);
-               if ((optionValue = optionsMap.get(OPTION_ReportUnusedImport)) != null) updateSeverity(UnusedImport, optionValue);
-               if ((optionValue = optionsMap.get(OPTION_ReportUnusedPrivateMember)) != null) updateSeverity(UnusedPrivateMember, optionValue);
-               if ((optionValue = optionsMap.get(OPTION_ReportUnusedDeclaredThrownException)) != null) updateSeverity(UnusedDeclaredThrownException, optionValue);
-               if ((optionValue = optionsMap.get(OPTION_ReportNoImplicitStringConversion)) != null) updateSeverity(NoImplicitStringConversion, optionValue);
-               if ((optionValue = optionsMap.get(OPTION_ReportSyntheticAccessEmulation)) != null) updateSeverity(AccessEmulation, optionValue);
-               if ((optionValue = optionsMap.get(OPTION_ReportLocalVariableHiding)) != null) updateSeverity(LocalVariableHiding, optionValue);
-               if ((optionValue = optionsMap.get(OPTION_ReportFieldHiding)) != null) updateSeverity(FieldHiding, optionValue);
-               if ((optionValue = optionsMap.get(OPTION_ReportPossibleAccidentalBooleanAssignment)) != null) updateSeverity(AccidentalBooleanAssign, optionValue);
-               if ((optionValue = optionsMap.get(OPTION_ReportSuperfluousSemicolon)) != null) updateSeverity(SuperfluousSemicolon, optionValue);
-               if ((optionValue = optionsMap.get(OPTION_ReportNonExternalizedStringLiteral)) != null) updateSeverity(NonExternalizedString, optionValue);
-               if ((optionValue = optionsMap.get(OPTION_ReportAssertIdentifier)) != null) updateSeverity(AssertUsedAsAnIdentifier, optionValue);
-               if ((optionValue = optionsMap.get(OPTION_ReportNonStaticAccessToStatic)) != null) updateSeverity(NonStaticAccessToStatic, optionValue);
-               if ((optionValue = optionsMap.get(OPTION_ReportIndirectStaticAccess)) != null) updateSeverity(IndirectStaticAccess, optionValue);
-               if ((optionValue = optionsMap.get(OPTION_ReportIncompatibleNonInheritedInterfaceMethod)) != null) updateSeverity(IncompatibleNonInheritedInterfaceMethod, optionValue);
-               if ((optionValue = optionsMap.get(OPTION_ReportUndocumentedEmptyBlock)) != null) updateSeverity(UndocumentedEmptyBlock, optionValue);
-               if ((optionValue = optionsMap.get(OPTION_ReportUnnecessaryTypeCheck)) != null) updateSeverity(UnnecessaryTypeCheck, optionValue);
-               if ((optionValue = optionsMap.get(OPTION_ReportFinallyBlockNotCompletingNormally)) != null) updateSeverity(FinallyBlockNotCompleting, optionValue);
-               if ((optionValue = optionsMap.get(OPTION_ReportUnqualifiedFieldAccess)) != null) updateSeverity(UnqualifiedFieldAccess, optionValue);
-               if ((optionValue = optionsMap.get(OPTION_ReportNoEffectAssignment)) != null) updateSeverity(NoEffectAssignment, optionValue);
+               if ((optionValue = optionsMap.get(OPTION_PHPVarDeprecatedWarning)) != null)
+                       updateSeverity(PHPVarDeprecatedWarning, optionValue);
+               if ((optionValue = optionsMap.get(OPTION_PHPBadStyleKeywordWarning)) != null)
+                       updateSeverity(PHPBadStyleKeywordWarning, optionValue);
+               if ((optionValue = optionsMap
+                               .get(OPTION_PHPBadStyleUppercaseIdentifierWarning)) != null)
+                       updateSeverity(PHPBadStyleUppercaseIdentifierWarning, optionValue);
+               if ((optionValue = optionsMap.get(OPTION_PHPIncludeNotExistWarning)) != null)
+                       updateSeverity(PHPIncludeNotExistWarning, optionValue);
+               if ((optionValue = optionsMap
+                               .get(OPTION_UninitializedLocalVariableWarning)) != null)
+                       updateSeverity(UninitializedLocalVariableWarning, optionValue);
+               if ((optionValue = optionsMap.get(OPTION_CodeCannotBeReachedWarning)) != null)
+                       updateSeverity(CodeCannotBeReachedWarning, optionValue);
 
+               if ((optionValue = optionsMap
+                               .get(OPTION_ReportMethodWithConstructorName)) != null)
+                       updateSeverity(MethodWithConstructorName, optionValue);
+               if ((optionValue = optionsMap
+                               .get(OPTION_ReportOverridingPackageDefaultMethod)) != null)
+                       updateSeverity(OverriddenPackageDefaultMethod, optionValue);
+               if ((optionValue = optionsMap.get(OPTION_ReportDeprecation)) != null)
+                       updateSeverity(UsingDeprecatedAPI, optionValue);
+               if ((optionValue = optionsMap.get(OPTION_ReportHiddenCatchBlock)) != null)
+                       updateSeverity(MaskedCatchBlock, optionValue);
+               if ((optionValue = optionsMap.get(OPTION_ReportUnusedLocal)) != null)
+                       updateSeverity(UnusedLocalVariable, optionValue);
+               if ((optionValue = optionsMap.get(OPTION_ReportUnusedParameter)) != null)
+                       updateSeverity(UnusedArgument, optionValue);
+               if ((optionValue = optionsMap.get(OPTION_ReportUnusedImport)) != null)
+                       updateSeverity(UnusedImport, optionValue);
+               if ((optionValue = optionsMap.get(OPTION_ReportUnusedPrivateMember)) != null)
+                       updateSeverity(UnusedPrivateMember, optionValue);
+               if ((optionValue = optionsMap
+                               .get(OPTION_ReportUnusedDeclaredThrownException)) != null)
+                       updateSeverity(UnusedDeclaredThrownException, optionValue);
+               if ((optionValue = optionsMap
+                               .get(OPTION_ReportNoImplicitStringConversion)) != null)
+                       updateSeverity(NoImplicitStringConversion, optionValue);
+               if ((optionValue = optionsMap
+                               .get(OPTION_ReportSyntheticAccessEmulation)) != null)
+                       updateSeverity(AccessEmulation, optionValue);
+               if ((optionValue = optionsMap.get(OPTION_ReportLocalVariableHiding)) != null)
+                       updateSeverity(LocalVariableHiding, optionValue);
+               if ((optionValue = optionsMap.get(OPTION_ReportFieldHiding)) != null)
+                       updateSeverity(FieldHiding, optionValue);
+               if ((optionValue = optionsMap
+                               .get(OPTION_ReportPossibleAccidentalBooleanAssignment)) != null)
+                       updateSeverity(AccidentalBooleanAssign, optionValue);
+               if ((optionValue = optionsMap.get(OPTION_ReportSuperfluousSemicolon)) != null)
+                       updateSeverity(SuperfluousSemicolon, optionValue);
+               if ((optionValue = optionsMap
+                               .get(OPTION_ReportNonExternalizedStringLiteral)) != null)
+                       updateSeverity(NonExternalizedString, optionValue);
+               if ((optionValue = optionsMap.get(OPTION_ReportAssertIdentifier)) != null)
+                       updateSeverity(AssertUsedAsAnIdentifier, optionValue);
+               if ((optionValue = optionsMap.get(OPTION_ReportNonStaticAccessToStatic)) != null)
+                       updateSeverity(NonStaticAccessToStatic, optionValue);
+               if ((optionValue = optionsMap.get(OPTION_ReportIndirectStaticAccess)) != null)
+                       updateSeverity(IndirectStaticAccess, optionValue);
+               if ((optionValue = optionsMap
+                               .get(OPTION_ReportIncompatibleNonInheritedInterfaceMethod)) != null)
+                       updateSeverity(IncompatibleNonInheritedInterfaceMethod, optionValue);
+               if ((optionValue = optionsMap.get(OPTION_ReportUndocumentedEmptyBlock)) != null)
+                       updateSeverity(UndocumentedEmptyBlock, optionValue);
+               if ((optionValue = optionsMap.get(OPTION_ReportUnnecessaryTypeCheck)) != null)
+                       updateSeverity(UnnecessaryTypeCheck, optionValue);
+               if ((optionValue = optionsMap
+                               .get(OPTION_ReportFinallyBlockNotCompletingNormally)) != null)
+                       updateSeverity(FinallyBlockNotCompleting, optionValue);
+               if ((optionValue = optionsMap.get(OPTION_ReportUnqualifiedFieldAccess)) != null)
+                       updateSeverity(UnqualifiedFieldAccess, optionValue);
+               if ((optionValue = optionsMap.get(OPTION_ReportNoEffectAssignment)) != null)
+                       updateSeverity(NoEffectAssignment, optionValue);
+
+               // Javadoc options
                // Javadoc options
+               if ((optionValue = optionsMap.get(OPTION_DocCommentSupport)) != null) {
+                       if (ENABLED.equals(optionValue)) {
+                               this.docCommentSupport = true;
+                       } else if (DISABLED.equals(optionValue)) {
+                               this.docCommentSupport = false;
+                       }
+               }
                if ((optionValue = optionsMap.get(OPTION_ReportInvalidJavadoc)) != null) {
                        updateSeverity(InvalidJavadoc, optionValue);
                }
-               if ((optionValue = optionsMap.get(OPTION_ReportInvalidJavadocTagsVisibility)) != null) {
+               if ((optionValue = optionsMap
+                               .get(OPTION_ReportInvalidJavadocTagsVisibility)) != null) {
                        if (PUBLIC.equals(optionValue)) {
                                this.reportInvalidJavadocTagsVisibility = AccPublic;
                        } else if (PROTECTED.equals(optionValue)) {
                                this.reportInvalidJavadocTagsVisibility = AccProtected;
-//                     } else if (DEFAULT.equals(optionValue)) {
-//                             this.reportInvalidJavadocTagsVisibility = AccDefault;
+                               // } else if (DEFAULT.equals(optionValue)) {
+                               // this.reportInvalidJavadocTagsVisibility = AccDefault;
                        } else if (PRIVATE.equals(optionValue)) {
                                this.reportInvalidJavadocTagsVisibility = AccPrivate;
                        }
                }
                if ((optionValue = optionsMap.get(OPTION_ReportInvalidJavadocTags)) != null) {
                        if (ENABLED.equals(optionValue)) {
-                               this.reportInvalidJavadocTags= true;
+                               this.reportInvalidJavadocTags = true;
                        } else if (DISABLED.equals(optionValue)) {
                                this.reportInvalidJavadocTags = false;
                        }
@@ -517,18 +808,20 @@ public class CompilerOptions implements ProblemReasons, ProblemSeverities, ICons
                if ((optionValue = optionsMap.get(OPTION_ReportMissingJavadocTags)) != null) {
                        updateSeverity(MissingJavadocTags, optionValue);
                }
-               if ((optionValue = optionsMap.get(OPTION_ReportMissingJavadocTagsVisibility)) != null) {
+               if ((optionValue = optionsMap
+                               .get(OPTION_ReportMissingJavadocTagsVisibility)) != null) {
                        if (PUBLIC.equals(optionValue)) {
                                this.reportMissingJavadocTagsVisibility = AccPublic;
                        } else if (PROTECTED.equals(optionValue)) {
                                this.reportMissingJavadocTagsVisibility = AccProtected;
-//                     } else if (DEFAULT.equals(optionValue)) {
-//                             this.reportMissingJavadocTagsVisibility = AccDefault;
+                               // } else if (DEFAULT.equals(optionValue)) {
+                               // this.reportMissingJavadocTagsVisibility = AccDefault;
                        } else if (PRIVATE.equals(optionValue)) {
                                this.reportMissingJavadocTagsVisibility = AccPrivate;
                        }
                }
-               if ((optionValue = optionsMap.get(OPTION_ReportMissingJavadocTagsOverriding)) != null) {
+               if ((optionValue = optionsMap
+                               .get(OPTION_ReportMissingJavadocTagsOverriding)) != null) {
                        if (ENABLED.equals(optionValue)) {
                                this.reportMissingJavadocTagsOverriding = true;
                        } else if (DISABLED.equals(optionValue)) {
@@ -538,18 +831,20 @@ public class CompilerOptions implements ProblemReasons, ProblemSeverities, ICons
                if ((optionValue = optionsMap.get(OPTION_ReportMissingJavadocComments)) != null) {
                        updateSeverity(MissingJavadocComments, optionValue);
                }
-               if ((optionValue = optionsMap.get(OPTION_ReportMissingJavadocCommentsVisibility)) != null) {
+               if ((optionValue = optionsMap
+                               .get(OPTION_ReportMissingJavadocCommentsVisibility)) != null) {
                        if (PUBLIC.equals(optionValue)) {
                                this.reportMissingJavadocCommentsVisibility = AccPublic;
                        } else if (PROTECTED.equals(optionValue)) {
                                this.reportMissingJavadocCommentsVisibility = AccProtected;
-//                     } else if (DEFAULT.equals(optionValue)) {
-//                             this.reportMissingJavadocCommentsVisibility = AccDefault;
+                               // } else if (DEFAULT.equals(optionValue)) {
+                               // this.reportMissingJavadocCommentsVisibility = AccDefault;
                        } else if (PRIVATE.equals(optionValue)) {
                                this.reportMissingJavadocCommentsVisibility = AccPrivate;
                        }
                }
-               if ((optionValue = optionsMap.get(OPTION_ReportMissingJavadocCommentsOverriding)) != null) {
+               if ((optionValue = optionsMap
+                               .get(OPTION_ReportMissingJavadocCommentsOverriding)) != null) {
                        if (ENABLED.equals(optionValue)) {
                                this.reportMissingJavadocCommentsOverriding = true;
                        } else if (DISABLED.equals(optionValue)) {
@@ -563,59 +858,133 @@ public class CompilerOptions implements ProblemReasons, ProblemSeverities, ICons
        }
 
        public String toString() {
-       
+
                StringBuffer buf = new StringBuffer("CompilerOptions:"); //$NON-NLS-1$
-               buf.append("\n\t- local variables debug attributes: ").append((this.produceDebugAttributes & Vars) != 0 ? "ON" : " OFF"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-               buf.append("\n\t- line number debug attributes: ").append((this.produceDebugAttributes & Lines) != 0 ? "ON" : " OFF"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-               buf.append("\n\t- source debug attributes: ").append((this.produceDebugAttributes & Source) != 0 ? "ON" : " OFF"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-               buf.append("\n\t- preserve all local variables: ").append(this.preserveAllLocalVariables ? "ON" : " OFF"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-               buf.append("\n\t- method with constructor name: ").append(getSeverityString(MethodWithConstructorName)); //$NON-NLS-1$
-               buf.append("\n\t- overridden package default method: ").append(getSeverityString(OverriddenPackageDefaultMethod)); //$NON-NLS-1$
-               buf.append("\n\t- deprecation: ").append(getSeverityString(UsingDeprecatedAPI)); //$NON-NLS-1$
-               buf.append("\n\t- masked catch block: ").append(getSeverityString(MaskedCatchBlock)); //$NON-NLS-1$
-               buf.append("\n\t- unused local variable: ").append(getSeverityString(UnusedLocalVariable)); //$NON-NLS-1$
-               buf.append("\n\t- unused parameter: ").append(getSeverityString(UnusedArgument)); //$NON-NLS-1$
-               buf.append("\n\t- unused import: ").append(getSeverityString(UnusedImport)); //$NON-NLS-1$
-               buf.append("\n\t- synthetic access emulation: ").append(getSeverityString(AccessEmulation)); //$NON-NLS-1$
-               buf.append("\n\t- assignment with no effect: ").append(getSeverityString(NoEffectAssignment)); //$NON-NLS-1$
-               buf.append("\n\t- non externalized string: ").append(getSeverityString(NonExternalizedString)); //$NON-NLS-1$
-               buf.append("\n\t- static access receiver: ").append(getSeverityString(NonStaticAccessToStatic)); //$NON-NLS-1$
-               buf.append("\n\t- indirect static access: ").append(getSeverityString(IndirectStaticAccess)); //$NON-NLS-1$
-               buf.append("\n\t- incompatible non inherited interface method: ").append(getSeverityString(IncompatibleNonInheritedInterfaceMethod)); //$NON-NLS-1$
-               buf.append("\n\t- unused private member: ").append(getSeverityString(UnusedPrivateMember)); //$NON-NLS-1$
-               buf.append("\n\t- local variable hiding another variable: ").append(getSeverityString(LocalVariableHiding)); //$NON-NLS-1$
-               buf.append("\n\t- field hiding another variable: ").append(getSeverityString(FieldHiding)); //$NON-NLS-1$
-               buf.append("\n\t- possible accidental boolean assignment: ").append(getSeverityString(AccidentalBooleanAssign)); //$NON-NLS-1$
-               buf.append("\n\t- superfluous semicolon: ").append(getSeverityString(SuperfluousSemicolon)); //$NON-NLS-1$
-               buf.append("\n\t- uncommented empty block: ").append(getSeverityString(UndocumentedEmptyBlock)); //$NON-NLS-1$
-               buf.append("\n\t- unnecessary type check: ").append(getSeverityString(UnnecessaryTypeCheck)); //$NON-NLS-1$
-               buf.append("\n\t- invalid javadoc: ").append(getSeverityString(InvalidJavadoc)); //$NON-NLS-1$
-               buf.append("\n\t- report invalid javadoc tags: ").append(this.reportInvalidJavadocTags ? ENABLED : DISABLED); //$NON-NLS-1$
-               buf.append("\n\t- visibility level to report invalid javadoc tags: ").append(getVisibilityString(this.reportInvalidJavadocTagsVisibility)); //$NON-NLS-1$
-               buf.append("\n\t- missing javadoc tags: ").append(getSeverityString(MissingJavadocTags)); //$NON-NLS-1$
-               buf.append("\n\t- visibility level to report missing javadoc tags: ").append(getVisibilityString(this.reportMissingJavadocTagsVisibility)); //$NON-NLS-1$
-               buf.append("\n\t- report missing javadoc tags in overriding methods: ").append(this.reportMissingJavadocTagsOverriding ? ENABLED : DISABLED); //$NON-NLS-1$
-               buf.append("\n\t- missing javadoc comments: ").append(getSeverityString(MissingJavadocComments)); //$NON-NLS-1$
-               buf.append("\n\t- visibility level to report missing javadoc comments: ").append(getVisibilityString(this.reportMissingJavadocCommentsVisibility)); //$NON-NLS-1$
-               buf.append("\n\t- report missing javadoc comments in overriding methods: ").append(this.reportMissingJavadocCommentsOverriding ? ENABLED : DISABLED); //$NON-NLS-1$
-               buf.append("\n\t- finally block not completing normally: ").append(getSeverityString(FinallyBlockNotCompleting)); //$NON-NLS-1$
-               buf.append("\n\t- unused declared thrown exception: ").append(getSeverityString(UnusedDeclaredThrownException)); //$NON-NLS-1$
-               buf.append("\n\t- unused declared thrown exception when overriding ").append(this.reportUnusedDeclaredThrownExceptionWhenOverriding ? ENABLED : DISABLED); //$NON-NLS-1$
-//             buf.append("\n\t- JDK compliance level: "+ versionFromJdkLevel(this.complianceLevel)); //$NON-NLS-1$
-//             buf.append("\n\t- JDK source level: "+ versionFromJdkLevel(this.sourceLevel)); //$NON-NLS-1$
-//             buf.append("\n\t- JDK target level: "+ versionFromJdkLevel(this.targetJDK)); //$NON-NLS-1$
-               buf.append("\n\t- private constructor access: ").append(this.isPrivateConstructorAccessChangingVisibility ? "extra argument" : "make default access"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+               buf
+                               .append("\n\t- var is deprecated keyword: ").append(getSeverityString(PHPVarDeprecatedWarning)); //$NON-NLS-1$
+               buf
+                               .append("\n\t- don't use keywords as identifiers: ").append(getSeverityString(PHPBadStyleKeywordWarning)); //$NON-NLS-1$
+               buf
+                               .append(
+                                               "\n\t- non-variable idenifiers should contain only uppercase characters: ").append(getSeverityString(PHPBadStyleUppercaseIdentifierWarning)); //$NON-NLS-1$
+               buf
+                               .append("\n\t- include filename doesn't exist in project: ").append(getSeverityString(PHPIncludeNotExistWarning)); //$NON-NLS-1$
+               buf
+                               .append("\n\t- local variable not initialized: ").append(getSeverityString(UninitializedLocalVariableWarning)); //$NON-NLS-1$
+               buf
+                               .append("\n\t- unreachable code: ").append(getSeverityString(CodeCannotBeReachedWarning)); //$NON-NLS-1$
+
+               buf
+                               .append("\n\t- local variables debug attributes: ").append((this.produceDebugAttributes & Vars) != 0 ? "ON" : " OFF"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+               buf
+                               .append("\n\t- line number debug attributes: ").append((this.produceDebugAttributes & Lines) != 0 ? "ON" : " OFF"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+               buf
+                               .append("\n\t- source debug attributes: ").append((this.produceDebugAttributes & Source) != 0 ? "ON" : " OFF"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+               buf
+                               .append("\n\t- preserve all local variables: ").append(this.preserveAllLocalVariables ? "ON" : " OFF"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+               buf
+                               .append("\n\t- method with constructor name: ").append(getSeverityString(MethodWithConstructorName)); //$NON-NLS-1$
+               buf
+                               .append("\n\t- overridden package default method: ").append(getSeverityString(OverriddenPackageDefaultMethod)); //$NON-NLS-1$
+               buf
+                               .append("\n\t- deprecation: ").append(getSeverityString(UsingDeprecatedAPI)); //$NON-NLS-1$
+               buf
+                               .append("\n\t- masked catch block: ").append(getSeverityString(MaskedCatchBlock)); //$NON-NLS-1$
+               buf
+                               .append("\n\t- unused local variable: ").append(getSeverityString(UnusedLocalVariable)); //$NON-NLS-1$
+               buf
+                               .append("\n\t- unused parameter: ").append(getSeverityString(UnusedArgument)); //$NON-NLS-1$
+               buf
+                               .append("\n\t- unused import: ").append(getSeverityString(UnusedImport)); //$NON-NLS-1$
+               buf
+                               .append("\n\t- synthetic access emulation: ").append(getSeverityString(AccessEmulation)); //$NON-NLS-1$
+               buf
+                               .append("\n\t- assignment with no effect: ").append(getSeverityString(NoEffectAssignment)); //$NON-NLS-1$
+               buf
+                               .append("\n\t- non externalized string: ").append(getSeverityString(NonExternalizedString)); //$NON-NLS-1$
+               buf
+                               .append("\n\t- static access receiver: ").append(getSeverityString(NonStaticAccessToStatic)); //$NON-NLS-1$
+               buf
+                               .append("\n\t- indirect static access: ").append(getSeverityString(IndirectStaticAccess)); //$NON-NLS-1$
+               buf
+                               .append("\n\t- incompatible non inherited interface method: ").append(getSeverityString(IncompatibleNonInheritedInterfaceMethod)); //$NON-NLS-1$
+               buf
+                               .append("\n\t- unused private member: ").append(getSeverityString(UnusedPrivateMember)); //$NON-NLS-1$
+               buf
+                               .append("\n\t- local variable hiding another variable: ").append(getSeverityString(LocalVariableHiding)); //$NON-NLS-1$
+               buf
+                               .append("\n\t- field hiding another variable: ").append(getSeverityString(FieldHiding)); //$NON-NLS-1$
+               buf
+                               .append("\n\t- possible accidental boolean assignment: ").append(getSeverityString(AccidentalBooleanAssign)); //$NON-NLS-1$
+               buf
+                               .append("\n\t- superfluous semicolon: ").append(getSeverityString(SuperfluousSemicolon)); //$NON-NLS-1$
+               buf
+                               .append("\n\t- uncommented empty block: ").append(getSeverityString(UndocumentedEmptyBlock)); //$NON-NLS-1$
+               buf
+                               .append("\n\t- unnecessary type check: ").append(getSeverityString(UnnecessaryTypeCheck)); //$NON-NLS-1$
+               buf
+                               .append("\n\t- invalid javadoc: ").append(getSeverityString(InvalidJavadoc)); //$NON-NLS-1$
+               buf
+                               .append("\n\t- report invalid javadoc tags: ").append(this.reportInvalidJavadocTags ? ENABLED : DISABLED); //$NON-NLS-1$
+               buf
+                               .append(
+                                               "\n\t- visibility level to report invalid javadoc tags: ").append(getVisibilityString(this.reportInvalidJavadocTagsVisibility)); //$NON-NLS-1$
+               buf
+                               .append("\n\t- missing javadoc tags: ").append(getSeverityString(MissingJavadocTags)); //$NON-NLS-1$
+               buf
+                               .append(
+                                               "\n\t- visibility level to report missing javadoc tags: ").append(getVisibilityString(this.reportMissingJavadocTagsVisibility)); //$NON-NLS-1$
+               buf
+                               .append(
+                                               "\n\t- report missing javadoc tags in overriding methods: ").append(this.reportMissingJavadocTagsOverriding ? ENABLED : DISABLED); //$NON-NLS-1$
+               buf
+                               .append("\n\t- missing javadoc comments: ").append(getSeverityString(MissingJavadocComments)); //$NON-NLS-1$
+               buf
+                               .append(
+                                               "\n\t- visibility level to report missing javadoc comments: ").append(getVisibilityString(this.reportMissingJavadocCommentsVisibility)); //$NON-NLS-1$
+               buf
+                               .append(
+                                               "\n\t- report missing javadoc comments in overriding methods: ").append(this.reportMissingJavadocCommentsOverriding ? ENABLED : DISABLED); //$NON-NLS-1$
+               buf
+                               .append("\n\t- finally block not completing normally: ").append(getSeverityString(FinallyBlockNotCompleting)); //$NON-NLS-1$
+               buf
+                               .append("\n\t- unused declared thrown exception: ").append(getSeverityString(UnusedDeclaredThrownException)); //$NON-NLS-1$
+               buf
+                               .append(
+                                               "\n\t- unused declared thrown exception when overriding ").append(this.reportUnusedDeclaredThrownExceptionWhenOverriding ? ENABLED : DISABLED); //$NON-NLS-1$
+               // buf.append("\n\t- JDK compliance level: "+
+               // versionFromJdkLevel(this.complianceLevel)); //$NON-NLS-1$
+               // buf.append("\n\t- JDK source level: "+
+               // versionFromJdkLevel(this.sourceLevel)); //$NON-NLS-1$
+               // buf.append("\n\t- JDK target level: "+
+               // versionFromJdkLevel(this.targetJDK)); //$NON-NLS-1$
+               buf
+                               .append("\n\t- private constructor access: ").append(this.isPrivateConstructorAccessChangingVisibility ? "extra argument" : "make default access"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
                buf.append("\n\t- verbose : ").append(this.verbose ? "ON" : "OFF"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-               buf.append("\n\t- produce reference info : ").append(this.produceReferenceInfo ? "ON" : "OFF"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-               buf.append("\n\t- parse literal expressions as constants : ").append(this.parseLiteralExpressionsAsConstants ? "ON" : "OFF"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-               buf.append("\n\t- encoding : ").append(this.defaultEncoding == null ? "<default>" : this.defaultEncoding); //$NON-NLS-1$ //$NON-NLS-2$
-               buf.append("\n\t- task tags: ").append(this.taskTags == null ? "" : new String(CharOperation.concatWith(this.taskTags,',')));  //$NON-NLS-1$ //$NON-NLS-2$
-               buf.append("\n\t- task priorities : ").append(this.taskPriorites == null ? "" : new String(CharOperation.concatWith(this.taskPriorites,','))); //$NON-NLS-1$ //$NON-NLS-2$
-               buf.append("\n\t- report deprecation inside deprecated code : ").append(this.reportDeprecationInsideDeprecatedCode ? "ENABLED" : "DISABLED"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-               buf.append("\n\t- report deprecation when overriding deprecated method : ").append(this.reportDeprecationWhenOverridingDeprecatedMethod ? "ENABLED" : "DISABLED"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-               buf.append("\n\t- report unused parameter when implementing abstract method : ").append(this.reportUnusedParameterWhenImplementingAbstract ? "ENABLED" : "DISABLED"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-               buf.append("\n\t- report unused parameter when overriding concrete method : ").append(this.reportUnusedParameterWhenOverridingConcrete ? "ENABLED" : "DISABLED"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-               buf.append("\n\t- report constructor/setter parameter hiding existing field : ").append(this.reportSpecialParameterHidingField ? "ENABLED" : "DISABLED"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+               buf
+                               .append("\n\t- produce reference info : ").append(this.produceReferenceInfo ? "ON" : "OFF"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+               buf
+                               .append("\n\t- parse literal expressions as constants : ").append(this.parseLiteralExpressionsAsConstants ? "ON" : "OFF"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+               buf
+                               .append("\n\t- encoding : ").append(this.defaultEncoding == null ? "<default>" : this.defaultEncoding); //$NON-NLS-1$ //$NON-NLS-2$
+               buf
+                               .append("\n\t- task tags: ").append(this.taskTags == null ? "" : new String(CharOperation.concatWith(this.taskTags, ','))); //$NON-NLS-1$ //$NON-NLS-2$
+               buf
+                               .append("\n\t- task priorities : ").append(this.taskPriorites == null ? "" : new String(CharOperation.concatWith(this.taskPriorites, ','))); //$NON-NLS-1$ //$NON-NLS-2$
+               buf
+                               .append("\n\t- report deprecation inside deprecated code : ").append(this.reportDeprecationInsideDeprecatedCode ? "ENABLED" : "DISABLED"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+               buf
+                               .append(
+                                               "\n\t- report deprecation when overriding deprecated method : ").append(this.reportDeprecationWhenOverridingDeprecatedMethod ? "ENABLED" : "DISABLED"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+               buf
+                               .append(
+                                               "\n\t- report unused parameter when implementing abstract method : ").append(this.reportUnusedParameterWhenImplementingAbstract ? "ENABLED" : "DISABLED"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+               buf
+                               .append(
+                                               "\n\t- report unused parameter when overriding concrete method : ").append(this.reportUnusedParameterWhenOverridingConcrete ? "ENABLED" : "DISABLED"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+               buf
+                               .append(
+                                               "\n\t- report constructor/setter parameter hiding existing field : ").append(this.reportSpecialParameterHidingField ? "ENABLED" : "DISABLED"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
                return buf.toString();
        }
 
@@ -630,34 +999,34 @@ public class CompilerOptions implements ProblemReasons, ProblemSeverities, ICons
                        this.errorThreshold &= ~irritant;
                        this.warningThreshold &= ~irritant;
                }
-       }                               
-//     public static long versionToJdkLevel(Object versionID) {
-//             if (VERSION_1_1.equals(versionID)) {
-//                     return JDK1_1;
-//             } else if (VERSION_1_2.equals(versionID)) {
-//                     return JDK1_2;
-//             } else if (VERSION_1_3.equals(versionID)) {
-//                     return JDK1_3;
-//             } else if (VERSION_1_4.equals(versionID)) {
-//                     return JDK1_4;
-//             } else if (VERSION_1_5.equals(versionID)) {
-//                     return JDK1_5;
-//             }
-//             return 0; // unknown
-//     }
-
-//     public static String versionFromJdkLevel(long jdkLevel) {
-//             if (jdkLevel == JDK1_1) {
-//                     return VERSION_1_1;
-//             } else if (jdkLevel == JDK1_2) {
-//                     return VERSION_1_2;
-//             } else if (jdkLevel == JDK1_3) {
-//                     return VERSION_1_3;
-//             } else if (jdkLevel == JDK1_4) {
-//                     return VERSION_1_4;
-//             } else if (jdkLevel == JDK1_5) {
-//                     return VERSION_1_5;
-//             }
-//             return ""; // unknown version //$NON-NLS-1$
-//     }
+       }
+       // public static long versionToJdkLevel(Object versionID) {
+       // if (VERSION_1_1.equals(versionID)) {
+       // return JDK1_1;
+       // } else if (VERSION_1_2.equals(versionID)) {
+       // return JDK1_2;
+       // } else if (VERSION_1_3.equals(versionID)) {
+       // return JDK1_3;
+       // } else if (VERSION_1_4.equals(versionID)) {
+       // return JDK1_4;
+       // } else if (VERSION_1_5.equals(versionID)) {
+       // return JDK1_5;
+       // }
+       // return 0; // unknown
+       // }
+
+       // public static String versionFromJdkLevel(long jdkLevel) {
+       // if (jdkLevel == JDK1_1) {
+       // return VERSION_1_1;
+       // } else if (jdkLevel == JDK1_2) {
+       // return VERSION_1_2;
+       // } else if (jdkLevel == JDK1_3) {
+       // return VERSION_1_3;
+       // } else if (jdkLevel == JDK1_4) {
+       // return VERSION_1_4;
+       // } else if (jdkLevel == JDK1_5) {
+       // return VERSION_1_5;
+       // }
+       // return ""; // unknown version //$NON-NLS-1$
+       // }
 }