Пример #1
0
        private bool TryAppendToCurrentLine(Line line)
        {
            string appendToken = Parameters.AppendTokens
                                 .FirstOrDefault(token => line.Text.StartsWith(token, StringComparison.OrdinalIgnoreCase));

            if (appendToken != null)
            {
                string text = line.Text.Remove(0, appendToken.Length);
                text = _preprocessor.TrimStart(text);

                _line = _line.Append(line.ReplaceText(text));

                return(true);
            }

            return(false);
        }
Пример #2
0
        public void AppendLine(string text)
        {
            Line line = new Line(_preprocessor.TrimStart(text), _hashProvider.GetHash(text));

            if (TryAppendToLastLine(line))
            {
                TryFinishMultilineOperation(line);

                return;
            }

            if (line.Text.StartsWithAny(InstructionTokens))
            {
                text = PrepareToPush(line.Text);

                _lines.Push(line.ReplaceText(text));

                TryStartMultilineOperation(line);
                TryFinishMultilineOperation(line);
            }
        }