public static void TestExpressionChainEnumerator() { var be = (BinaryExpressionSyntax)ParseExpression("a + b + c"); var be2 = (BinaryExpressionSyntax)be.Left; ExpressionChain.Enumerator en = new ExpressionChain(be).GetEnumerator(); Assert.True(en.MoveNext() && en.Current == be2.Left); Assert.True(en.MoveNext() && en.Current == be2.Right); Assert.True(en.MoveNext() && en.Current == be.Right); Assert.True(!en.MoveNext()); }
public static void TestExpressionChainReversedEnumerator_WithSpan5() { const string s = @" class C { void M(string a, string b) { string s = [|a|] + b; } }"; TextParserResult result = TextParser.GetSpans(s); BinaryExpressionSyntax be = CSharpSyntaxTree.ParseText(result.Text).GetRoot().FirstDescendant <BinaryExpressionSyntax>(); ExpressionChain.Reversed.Enumerator en = new ExpressionChain(be, result.Spans[0].Span).Reverse().GetEnumerator(); Assert.True(en.MoveNext() && en.Current == be.Left); Assert.True(!en.MoveNext()); }
public static void TestExpressionChainEnumerator_WithSpan4() { const string s = @" class C { void M(string a, string b) { string s = a + [|b|]; } }"; var code = TestCode.Parse(s); BinaryExpressionSyntax be = CSharpSyntaxTree.ParseText(code.Value).GetRoot().FirstDescendant <BinaryExpressionSyntax>(); ExpressionChain.Enumerator en = new ExpressionChain(be, code.Spans[0]).GetEnumerator(); Assert.True(en.MoveNext() && en.Current == be.Right); Assert.True(!en.MoveNext()); }
public static void TestExpressionChainEnumerator_WithSpan4() { const string s = @" class C { void M(string a, string b) { string s = a + [|b|]; } }"; TextSpanParserResult result = TextSpanParser.Default.GetSpans(s); BinaryExpressionSyntax be = CSharpSyntaxTree.ParseText(result.Text).GetRoot().FirstDescendant <BinaryExpressionSyntax>(); ExpressionChain.Enumerator en = new ExpressionChain(be, result.Spans[0].Span).GetEnumerator(); Assert.True(en.MoveNext() && en.Current == be.Right); Assert.True(!en.MoveNext()); }
public static void TestExpressionChainReversedEnumerator_WithSpan2() { const string s = @" class C { void M(string a, string b, string c, string d) { string s = a + b + [|c + d|]; } }"; SpanParserResult result = SpanParser.Default.GetSpans(s); BinaryExpressionSyntax be = CSharpSyntaxTree.ParseText(result.Text).GetRoot().FirstDescendant <BinaryExpressionSyntax>(); var be2 = (BinaryExpressionSyntax)be.Left; ExpressionChain.Reversed.Enumerator en = new ExpressionChain(be, result.Spans[0].Span).Reverse().GetEnumerator(); Assert.True(en.MoveNext() && en.Current == be.Right); Assert.True(en.MoveNext() && en.Current == be2.Right); Assert.True(!en.MoveNext()); }
public static void TestExpressionChainReversedEnumerator_WithSpan() { const string s = @" class C { void M(string a, string b, string c) { string s = [|a + b + c|]; } }"; var code = TestCode.Parse(s); BinaryExpressionSyntax be = CSharpSyntaxTree.ParseText(code.Value).GetRoot().FirstDescendant <BinaryExpressionSyntax>(); var be2 = (BinaryExpressionSyntax)be.Left; ExpressionChain.Reversed.Enumerator en = new ExpressionChain(be, code.Spans[0]).Reverse().GetEnumerator(); Assert.True(en.MoveNext() && en.Current == be.Right); Assert.True(en.MoveNext() && en.Current == be2.Right); Assert.True(en.MoveNext() && en.Current == be2.Left); Assert.True(!en.MoveNext()); }