public void WriteTo(TranslationWriter writer)
        {
            writer.WriteNewToTranslation();
            _typeNameTranslation.WriteTo(writer);
            writer.WriteToTranslation('[');

            if (_boundTranslationCount != 0)
            {
                for (var i = 0; ;)
                {
                    _boundTranslations[i].WriteTo(writer);

                    ++i;

                    if (i == _boundTranslationCount)
                    {
                        break;
                    }

                    writer.WriteToTranslation("[]");
                }
            }

            writer.WriteToTranslation(']');
        }
            public void WriteTo(TranslationWriter writer)
            {
                writer.WriteNewToTranslation();
                writer.WriteTypeNameToTranslation(nameof(DateTime));
                writer.WriteToTranslation('(');

                writer.WriteToTranslation(_value.Year);
                WriteTwoDigitDatePart(_value.Month, writer);
                WriteTwoDigitDatePart(_value.Day, writer);

                if (_hasMilliseconds || _hasTime)
                {
                    WriteTwoDigitDatePart(_value.Hour, writer);
                    WriteTwoDigitDatePart(_value.Minute, writer);
                    WriteTwoDigitDatePart(_value.Second, writer);

                    if (_hasMilliseconds)
                    {
                        writer.WriteToTranslation(", ");
                        writer.WriteToTranslation(_value.Millisecond);
                    }
                }

                writer.WriteToTranslation(")");
            }
 public void WriteTo(TranslationWriter writer)
 {
     _subject.WriteTo(writer);
     writer.WriteToTranslation('[');
     _parameters.WithoutParentheses().WriteTo(writer);
     writer.WriteToTranslation(']');
 }
            private static bool TryWriteFactoryMethodCall(
                long value,
                double totalValue,
                string valueName,
                TranslationWriter writer)
            {
                if (value == 0)
                {
                    return(false);
                }

                // ReSharper disable once CompareOfFloatsByEqualityOperator
                if (value != totalValue)
                {
                    return(false);
                }

                var factoryMethodName = "From" + valueName;

                writer.WriteTypeNameToTranslation(nameof(TimeSpan));
                writer.WriteDotToTranslation();
                writer.WriteToTranslation(factoryMethodName, MethodName);
                writer.WriteToTranslation('(');
                writer.WriteToTranslation(value);
                writer.WriteToTranslation(')');
                return(true);
            }
Exemple #5
0
            private void WriteGenericArgumentNamesIfNecessary(TranslationWriter writer)
            {
                if (_explicitGenericArgumentCount == 0)
                {
                    return;
                }

                writer.WriteToTranslation('<');

                for (var i = 0; ;)
                {
                    _explicitGenericArguments[i].WriteTo(writer);

                    ++i;

                    if (i == _explicitGenericArgumentCount)
                    {
                        break;
                    }

                    writer.WriteToTranslation(", ");
                }

                writer.WriteToTranslation('>');
            }
Exemple #6
0
 private void WriteSingleLineTernary(TranslationWriter writer)
 {
     TestTranslation.WriteInParenthesesIfRequired(writer, _context);
     writer.WriteToTranslation(" ? ");
     IfTrueTranslation.WriteTo(writer);
     writer.WriteToTranslation(" : ");
     IfFalseTranslation.WriteTo(writer);
 }
 public void WriteTo(TranslationWriter writer)
 {
     writer.WriteControlStatementToTranslation("while ");
     writer.WriteToTranslation('(');
     writer.WriteKeywordToTranslation("true");
     writer.WriteToTranslation(')');
     _loopBodyTranslation.WriteTo(writer);
 }
 public virtual void WriteTo(TranslationWriter writer)
 {
     writer.WriteToTranslation(" (");
     _exceptionTypeTranslation.WriteTo(writer);
     writer.WriteSpaceToTranslation();
     writer.WriteToTranslation(_variableName, Variable);
     writer.WriteToTranslation(')');
 }
 private static void WriteTimeSpanHoursMinutesSeconds(TranslationWriter writer, TimeSpan timeSpan)
 {
     writer.WriteToTranslation(timeSpan.Hours);
     writer.WriteToTranslation(", ");
     writer.WriteToTranslation(timeSpan.Minutes);
     writer.WriteToTranslation(", ");
     writer.WriteToTranslation(timeSpan.Seconds);
 }
            public void WriteTo(TranslationWriter writer)
            {
                if (TryWriteFactoryMethodCall(_timeSpan.Days, _timeSpan.TotalDays, "Days", writer))
                {
                    return;
                }

                if (TryWriteFactoryMethodCall(_timeSpan.Hours, _timeSpan.TotalHours, "Hours", writer))
                {
                    return;
                }

                if (TryWriteFactoryMethodCall(_timeSpan.Minutes, _timeSpan.TotalMinutes, "Minutes", writer))
                {
                    return;
                }

                if (TryWriteFactoryMethodCall(_timeSpan.Seconds, _timeSpan.TotalSeconds, "Seconds", writer))
                {
                    return;
                }

                if (TryWriteFactoryMethodCall(_timeSpan.Milliseconds, _timeSpan.TotalMilliseconds, "Milliseconds", writer))
                {
                    return;
                }

                if ((_timeSpan.Days == 0) && (_timeSpan.Hours == 0) && (_timeSpan.Minutes == 0) && (_timeSpan.Seconds == 0))
                {
                    writer.WriteTypeNameToTranslation(nameof(TimeSpan));
                    writer.WriteDotToTranslation();
                    writer.WriteToTranslation("FromTicks", MethodName);
                    writer.WriteToTranslation('(');
                    writer.WriteToTranslation(Math.Floor(_timeSpan.TotalMilliseconds * 10000).ToString(CurrentCulture));
                    goto EndTranslation;
                }

                writer.WriteNewToTranslation();
                writer.WriteTypeNameToTranslation(nameof(TimeSpan));
                writer.WriteToTranslation('(');

                if (_timeSpan.Days == 0)
                {
                    WriteTimeSpanHoursMinutesSeconds(writer, _timeSpan);
                    goto EndTranslation;
                }

                writer.WriteToTranslation(_timeSpan.Days);
                writer.WriteToTranslation(", ");
                WriteTimeSpanHoursMinutesSeconds(writer, _timeSpan);

                if (_timeSpan.Milliseconds != 0)
                {
                    writer.WriteToTranslation(", ");
                    writer.WriteToTranslation(_timeSpan.Milliseconds);
                }

EndTranslation:
                writer.WriteToTranslation(')');
            }
            private static void WriteTwoDigitDatePart(int datePart, TranslationWriter writer)
            {
                writer.WriteToTranslation(", ");

                if (datePart > 9)
                {
                    writer.WriteToTranslation(datePart);
                    return;
                }

                writer.WriteToTranslation(0);
                writer.WriteToTranslation(datePart);
            }
        public void WriteTo(TranslationWriter writer)
        {
            for (var i = 0; ;)
            {
                var operandTranslation = _operandTranslations[i];

                if ((operandTranslation.NodeType == ExpressionType.Conditional) || operandTranslation.IsAssignment())
                {
                    operandTranslation.WriteInParentheses(writer);
                }
                else
                {
                    operandTranslation.WriteTo(writer);
                }

                ++i;

                if (i == _operandCount)
                {
                    break;
                }

                writer.WriteToTranslation(" + ");
            }
        }
Exemple #13
0
            private void WriteMultiLineTernary(TranslationWriter writer)
            {
                TestTranslation.WriteInParenthesesIfRequired(writer, _context);

                writer.WriteNewLineToTranslation();
                writer.Indent();
                writer.WriteToTranslation("? ");

                IfTrueTranslation.WriteTo(writer);

                writer.WriteNewLineToTranslation();
                writer.WriteToTranslation(": ");

                IfFalseTranslation.WriteTo(writer);

                writer.Unindent();
            }
Exemple #14
0
        public void WriteTo(TranslationWriter writer)
        {
            if (_labelIsNamed)
            {
                writer.WriteToTranslation(_labelName);
                writer.WriteToTranslation(':');
            }

            if (_labelHasNoValue)
            {
                return;
            }

            writer.WriteReturnToTranslation();
            _labelValueTranslation.WriteTo(writer);
            writer.WriteToTranslation(';');
        }
        public void WriteTo(TranslationWriter writer)
        {
            _parameters.WriteTo(writer);

            writer.WriteToTranslation(_bodyTranslation.HasBraces ? " =>" : _fatArrow);

            _bodyTranslation.WriteTo(writer);
        }
 public void WriteTo(TranslationWriter writer)
 {
     _binaryConditionLeftTranslation.WriteInParenthesesIfRequired(writer, _context);
     writer.WriteToTranslation(_binaryConditionOperator.TrimEnd());
     writer.WriteNewLineToTranslation();
     writer.Indent();
     _binaryConditionRightTranslation.WriteInParenthesesIfRequired(writer, _context);
     writer.Unindent();
 }
            protected virtual void WriteStatementTo(TranslationWriter writer)
            {
                _statementTranslation.WriteTo(writer);

                if (_statementIsUnterminated && (DoNotTerminate == false))
                {
                    writer.WriteToTranslation(';');
                }
            }
Exemple #18
0
            public void WriteTo(TranslationWriter writer)
            {
                if (_typeNameTranslation != null)
                {
                    _typeNameTranslation.WriteTo(writer);
                    writer.WriteSpaceToTranslation();
                }

                writer.WriteToTranslation(_parameterName, Variable);
            }
        public void WriteTo(TranslationWriter writer)
        {
            if (_subject != null)
            {
                _subject.WriteInParenthesesIfRequired(writer, _context);
                writer.WriteDotToTranslation();
            }

            writer.WriteToTranslation(_memberName);
        }
Exemple #20
0
        public static void WriteClosingBraceToTranslation(this TranslationWriter writer, bool startOnNewLine = true)
        {
            if (startOnNewLine)
            {
                writer.WriteNewLineToTranslation();
            }

            writer.Unindent();
            writer.WriteToTranslation('}');
        }
Exemple #21
0
        public static void WriteOpeningBraceToTranslation(this TranslationWriter writer, bool startOnNewLine = true)
        {
            if (startOnNewLine && writer.TranslationQuery(q => !q.TranslationEndsWith('{')))
            {
                writer.WriteNewLineToTranslation();
            }

            writer.WriteToTranslation('{');
            writer.WriteNewLineToTranslation();
            writer.Indent();
        }
        public void WriteTo(TranslationWriter writer)
        {
            if (_isEmpty)
            {
                return;
            }

            if (_hasVariables)
            {
                foreach (var parametersByType in _variables)
                {
                    var parametersType = parametersByType.Key;
                    var parameters     = parametersByType.Value;

                    parametersType.WriteTo(writer);
                    writer.WriteSpaceToTranslation();
                    parameters.WriteTo(writer);
                    writer.WriteToTranslation(';');
                    writer.WriteNewLineToTranslation();
                }

                switch (_statements[0].NodeType)
                {
                case Conditional when !_statements[0].Expression.IsTernary():
                case Switch:
                    writer.WriteNewLineToTranslation();
                    break;
                }
            }

            for (var i = 0; ;)
            {
                _statements[i].WriteTo(writer);

                ++i;

                if (i == _statementCount)
                {
                    break;
                }

                writer.WriteNewLineToTranslation();
            }
        }
Exemple #23
0
        public void WriteTo(TranslationWriter writer)
        {
            writer.WriteControlStatementToTranslation(_switch);
            _valueTranslation.WriteInParentheses(writer);
            writer.WriteOpeningBraceToTranslation();

            for (var i = 0; ;)
            {
                var caseTestValueTranslations = _caseTestValueTranslations[i];

                for (int j = 0, l = caseTestValueTranslations.Length; ;)
                {
                    writer.WriteControlStatementToTranslation(_case);
                    caseTestValueTranslations[j].WriteTo(writer);
                    writer.WriteToTranslation(':');
                    writer.WriteNewLineToTranslation();

                    ++j;

                    if (j == l)
                    {
                        break;
                    }
                }

                WriteCaseBody(_caseTranslations[i], writer);

                ++i;

                if (i == _casesCount)
                {
                    break;
                }

                writer.WriteNewLineToTranslation();
                writer.WriteNewLineToTranslation();
            }

            WriteDefaultIfPresent(writer);

            writer.WriteClosingBraceToTranslation();
        }
Exemple #24
0
        public void WriteTo(TranslationWriter writer)
        {
            if (_writeBraces)
            {
                writer.WriteOpeningBraceToTranslation(_startOnNewLine);

                if (WriteEmptyCodeBlock(writer))
                {
                    return;
                }
            }

            if (_indentContents)
            {
                writer.Indent();
            }

            if (_writeBraces && _ensureReturnKeyword && !_translation.IsMultiStatement())
            {
                writer.WriteReturnToTranslation();
            }

            _translation.WriteTo(writer);

            if (EnsureTerminated())
            {
                writer.WriteToTranslation(';');
            }

            if (_writeBraces)
            {
                writer.WriteClosingBraceToTranslation();
            }

            if (_indentContents)
            {
                writer.Unindent();
            }
        }
Exemple #25
0
 public void WriteTo(TranslationWriter writer)
 {
     writer.WriteToTranslation(_memberName);
     writer.WriteToTranslation(" = ");
     _value.WriteTo(writer);
 }
 public void WriteTo(TranslationWriter writer)
 {
     writer.WriteToTranslation(_operator);
     _negatedValue.WriteInParenthesesIfRequired(writer, _context);
 }
 public void WriteTo(TranslationWriter writer)
 {
     _subjectTranslation.WriteTo(writer);
     writer.WriteDotToTranslation();
     writer.WriteToTranslation(_subjectMethodName, MethodName);
 }
 public void WriteTo(TranslationWriter writer)
 {
     _operand.WriteTo(writer);
     writer.WriteToTranslation(_length);
 }
Exemple #29
0
        public void WriteTo(TranslationWriter writer)
        {
            switch (Count)
            {
            case 0:
                if (_parenthesesMode != ParenthesesMode.Never)
                {
                    writer.WriteToTranslation(_openAndCloseParentheses);
                }

                return;

            case 1 when(_parenthesesMode != ParenthesesMode.Always):
                _parameterTranslations[0].WriteTo(writer);
                return;
            }

            if (_parenthesesMode != ParenthesesMode.Never)
            {
                writer.WriteToTranslation('(');
            }

            var writeParametersOnNewLines = WriteParametersOnNewLines();

            if (writeParametersOnNewLines)
            {
                writer.WriteNewLineToTranslation();
                writer.Indent();
            }

            for (var i = 0; ;)
            {
                var parameterTranslation = _parameterTranslations[i];

                if (writeParametersOnNewLines && (i == 0) && parameterTranslation.IsMultiStatement)
                {
                    parameterTranslation.WithoutStartingNewLine();
                }

                parameterTranslation.WriteTo(writer);
                ++i;

                if (i == Count)
                {
                    break;
                }

                if (writeParametersOnNewLines)
                {
                    writer.WriteToTranslation(',');

                    if (!_parameterTranslations[i].IsMultiStatement)
                    {
                        writer.WriteNewLineToTranslation();
                    }

                    continue;
                }

                writer.WriteToTranslation(", ");
            }

            if (_parenthesesMode != ParenthesesMode.Never)
            {
                writer.WriteToTranslation(')');
            }

            if (writeParametersOnNewLines)
            {
                writer.Unindent();
            }
        }
 public void WriteTo(TranslationWriter writer)
 {
     _typeNameTranslation.WriteTo(writer);
     writer.WriteDotToTranslation();
     writer.WriteToTranslation(_enumValue);
 }