private ClassWriter(Context context) {
        context.put(classWriterKey, this);

        log = Log.instance(context);
        names = Name.Table.instance(context);
        syms = Symtab.instance(context);
        options = Options.instance(context);
        target = Target.instance(context);
        source = Source.instance(context);
        types = Types.instance(context);
        fileManager = context.get(JavaFileManager.class);

        verbose        = options.get("-verbose")     != null;
        scramble       = options.get("-scramble")    != null;
        scrambleAll    = options.get("-scrambleAll") != null;
        retrofit       = options.get("-retrofit") != null;
        genCrt         = options.get("-Xjcov") != null;
        debugstackmap  = options.get("debugstackmap") != null;

        emitSourceFile = options.get("-g:")==null || options.get("-g:source")!=null;

        String dumpModFlags = options.get("dumpmodifiers");
        dumpClassModifiers =
            (dumpModFlags != null && dumpModFlags.indexOf('c') != -1);
        dumpFieldModifiers =
            (dumpModFlags != null && dumpModFlags.indexOf('f') != -1);
        dumpInnerClassModifiers =
            (dumpModFlags != null && dumpModFlags.indexOf('i') != -1);
        dumpMethodModifiers =
            (dumpModFlags != null && dumpModFlags.indexOf('m') != -1);
    }