示例#1
0
 static string UnFormat(string theInput) {
     var result = new TextOutput(IsStandard);
     var scan = new Scanner(theInput);
     while (true) {
         scan.FindTokenPair("<", ">", ourValidTagFilter);
         result.Append(scan.Leader);
         if (scan.Body.IsEmpty) break;
         if (IsStandard) result.AppendTag(GetTag(scan.Body));
     }
     return result.ToString();
 }
示例#2
0
        public void PrintNumbersWritesToNumberResultWriter(int[] numbers)
        {
            var expected = string.Join(string.Empty, numbers);
            var output   = new TextOutput(new StringWriter());
            var sut      = new Round(numbers, new StubOutput())
            {
                NumberResultWriter = output
            };

            sut.ReciteNumbers();

            Assert.Equal(expected, output.ToString());
        }
示例#3
0
        public void VerifyResultWithIncorrectAnswerPrintsFailureMessage(
            int[] numbers)
        {
            var expected = (numbers.Sum() - 1).ToString();
            var output   = new TextOutput(new StringWriter());
            var sut      = new Round(numbers, new StubOutput())
            {
                NumberResultWriter  = new StubOutput(),
                FailureResultWriter = output
            };

            sut.ReciteNumbers()
            .VerifyResult(expected);

            Assert.Equal(expected, output.ToString());
        }
示例#4
0
        static string UnFormat(string theInput)
        {
            var result = new TextOutput(IsStandard);
            var scan   = new Scanner(theInput);

            while (true)
            {
                scan.FindTokenPair("<", ">", ourValidTagFilter);
                result.Append(scan.Leader);
                if (scan.Body.Length == 0)
                {
                    break;
                }
                if (IsStandard)
                {
                    result.AppendTag(GetTag(scan.Body));
                }
            }
            return(result.ToString());
        }
示例#5
0
 private string UnFormat(string theInput)
 {
     TextOutput result = new TextOutput();
     Scanner scan = new Scanner(theInput);
     while (true) {
         scan.FindTokenPair("<", ">", ourValidTagFilter);
         result.Append(scan.Leader);
         if (scan.Body.Length == 0) break;
         if (FitVersionFixture.IsStandard) result.AppendTag(GetTag(scan.Body));
     }
     return result.ToString();
 }
示例#6
0
        private void CompileAndRun()
        {
            DatabaseInfo database = _databaseBox.SelectedItem
                                    as DatabaseInfo;

            if (!ReferenceEquals(database, null))
            {
                _provider.Database = database.Name
                                     .ThrowIfNull("database.Name");
            }

            PftContext context = new PftContext(null);

            context.SetProvider(_provider);
            PftProgram program = (PftProgram)_program.Clone();

            program.Optimize();

            if (!Directory.Exists("Out"))
            {
                Directory.CreateDirectory("Out");
            }

            PftCompiler compiler = new PftCompiler
            {
                Debug      = true,
                KeepSource = true,
                OutputPath = "Out"
            };

            compiler.SetProvider(_provider);
            string         className    = compiler.CompileProgram(program);
            AbstractOutput output       = new TextOutput();
            string         assemblyPath = compiler.CompileToDll
                                          (
                output,
                className
                                          );
            string result = output.ToString();

            if (!ReferenceEquals(assemblyPath, null))
            {
                Assembly assembly
                    = Assembly.LoadFile(assemblyPath);
                Func <PftContext, PftPacket> creator
                    = CompilerUtility.GetEntryPoint(assembly);
                PftPacket packet = creator(context);
                result = packet.Execute(_record);
            }

            _resutlBox.Text = result;
            try
            {
                _rtfBox.Rtf = result;
            }
            catch
            {
                _rtfBox.Text = result;
            }

            if (ReferenceEquals(_htmlBox.Document, null))
            {
                _htmlBox.Navigate("about:blank");
                while (_htmlBox.IsBusy)
                {
                    Application.DoEvents();
                }
            }
            if (!ReferenceEquals(_htmlBox.Document, null))
            {
                _htmlBox.Document.Write(result);
            }
            try
            {
                _htmlBox.DocumentText =
                    "<html>"
                    + result
                    + "</html>";
            }
            // ReSharper disable once EmptyGeneralCatchClause
            catch
            {
                // Nothing to do
            }

            _recordGrid.SetRecord(_record);
        }