Exemple #1
0
        private void TestLes(string input, string expectOutput, int expectMessages = 0, Severity expectSev = 0)
        {
            using (G.PushTLV(Token.ToStringStrategyTLV, TokenExt.ToString))
            {
                MessageHolder errorList;
                var           input2 = StripInitialNewline(input);
                var           lexer  = new LesLexer(input2, errorList = new MessageHolder());
                var           wrapr  = new LesIndentTokenGenerator(lexer);
                var           output = new DList <Token>();
                for (var t = wrapr.NextToken(); t.HasValue; t = wrapr.NextToken())
                {
                    output.Add(t.Value);
                }
                var expectTokens = new LesLexer(expectOutput, MessageSink.Console).Buffered().Select(t =>
                                                                                                     t.Type() == TokenType.LBrack ? t.WithType((int)TokenType.Indent) :
                                                                                                     t.Type() == TokenType.RBrack ? t.WithType((int)TokenType.Dedent) : t).ToList();

                AreEqual(expectMessages, errorList.List.Count);
                if (expectMessages > 0)
                {
                    AreEqual(expectSev, errorList.List.Max(m => m.Severity));
                }
                ExpectList(output, expectTokens, false);
            }
        }
		private void TestLes(string input, string expectOutput, int expectMessages = 0, Severity expectSev = 0)
		{
			using (G.PushTLV(Token.ToStringStrategyTLV, TokenExt.ToString))
			{
				MessageHolder errorList;
				var input2 = StripInitialNewline(input);
				var lexer = new LesLexer(input2, errorList = new MessageHolder());
				var wrapr = new LesIndentTokenGenerator(lexer);
				var output = new DList<Token>();
				for (var t = wrapr.NextToken(); t.HasValue; t = wrapr.NextToken())
					output.Add(t.Value);
				var expectTokens = new LesLexer(expectOutput, MessageSink.Console).Buffered().Select(t =>
					t.Type() == TokenType.LBrack ? t.WithType((int)TokenType.Indent) :
					t.Type() == TokenType.RBrack ? t.WithType((int)TokenType.Dedent) : t).ToList();

				AreEqual(expectMessages, errorList.List.Count);
				if (expectMessages > 0)
					AreEqual(expectSev, errorList.List.Max(m => m.Severity));
				ExpectList(output, expectTokens, false);
			}
		}