public JavaScriptGenerator()
        {                                    
            Writers = new Dictionary<Type, IJavaScriptGenerator>();

            Writers[typeof(SimpleParameterEvaluator)] = new SimpleParameterGenerator();
            Writers[typeof(ReflectionParameterEvaluator)] = new ReflectionParameterGenerator();
            Writers[typeof(PatternLookupEvaluator)] = new PatternLookupGenerator();
            Writers[typeof(StringFormatFormatter)] = new StringFormatGenerator();
            Writers[typeof(DefaultFormatter)] = new DefaultGenerator();
            Writers[typeof(StringCaseFormatter)] = new StringCaseGenerator();

            Writers[typeof(TakeAllCondition)] = new TakeAllGenerator();
            Writers[typeof(SingleValueCondition<double>)] = new SingleValueGenerator<double>();
            Writers[typeof(SingleValueCondition<string>)] = new SingleValueGenerator<string>();
            Writers[typeof(ValueListCondition<double>)] = new ValueListGenerator<double>();
            Writers[typeof(ValueListCondition<string>)] = new ValueListGenerator<string>();
            Writers[typeof(IntervalCondition<double>)] = new IntervalGenerator<double>();
            Writers[typeof(IntervalCondition<TimeSpan>)] = new TimespanIntervalWriter();
            Writers[typeof(BooleanExpressionCondition)] = new BooleanExpressionGenerator();
            Writers[typeof(ArithmeticCondition)] = new ArithmeticGenerator();

            Writers[typeof(BooleanExpressionCondition)] = new BooleanExpressionGenerator();
            Writers[typeof(LookupCondition)] = new LookupGenerator();

            Writers[typeof(HashTagFormatGroupExpander)] = new HashTagFormatGroupExpanderGenerator();

        }
        public JavaScriptGenerator()
        {
            Writers = new Dictionary <Type, IJavaScriptGenerator>();

            Writers[typeof(SimpleParameterEvaluator)]     = new SimpleParameterGenerator();
            Writers[typeof(ReflectionParameterEvaluator)] = new ReflectionParameterGenerator();
            Writers[typeof(PatternLookupEvaluator)]       = new PatternLookupGenerator();
            Writers[typeof(StringFormatFormatter)]        = new StringFormatGenerator();
            Writers[typeof(DefaultFormatter)]             = new DefaultGenerator();
            Writers[typeof(StringCaseFormatter)]          = new StringCaseGenerator();

            Writers[typeof(TakeAllCondition)] = new TakeAllGenerator();
            Writers[typeof(SingleValueCondition <double>)] = new SingleValueGenerator <double>();
            Writers[typeof(SingleValueCondition <string>)] = new SingleValueGenerator <string>();
            Writers[typeof(ValueListCondition <double>)]   = new ValueListGenerator <double>();
            Writers[typeof(ValueListCondition <string>)]   = new ValueListGenerator <string>();
            Writers[typeof(IntervalCondition <double>)]    = new IntervalGenerator <double>();
            Writers[typeof(IntervalCondition <TimeSpan>)]  = new TimespanIntervalWriter();
            Writers[typeof(BooleanExpressionCondition)]    = new BooleanExpressionGenerator();
            Writers[typeof(ArithmeticCondition)]           = new ArithmeticGenerator();

            Writers[typeof(BooleanExpressionCondition)] = new BooleanExpressionGenerator();
            Writers[typeof(LookupCondition)]            = new LookupGenerator();

            Writers[typeof(HashTagFormatGroupExpander)] = new HashTagFormatGroupExpanderGenerator();
        }