Skip to content

Commit 80a1a61

Browse files
authored
Add 3 source files containing syntax nodes
FinallyBlockSyntax.cs - for the IL finally block; TryBlockSyntax.cs - for the IL .try block, and TryFinallyBlockSyntax.cs - for IL .try { ... } finally { ... } block
1 parent c6596e7 commit 80a1a61

File tree

3 files changed

+80
-0
lines changed

3 files changed

+80
-0
lines changed
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
using ILSourceParser.Trivia;
2+
using System.Collections.Immutable;
3+
4+
namespace ILSourceParser.Syntax;
5+
6+
/// <summary>
7+
/// Represents an IL <c>finally</c> block.
8+
/// </summary>
9+
public sealed class FinallyBlockSyntax : SyntaxNode
10+
{
11+
public override ImmutableArray<SyntaxTrivia> LeadingTrivia { get; init; }
12+
public override ImmutableArray<SyntaxTrivia> TrailingTrivia { get; init; }
13+
14+
/// <summary>
15+
/// Descendant nodes of the block.
16+
/// </summary>
17+
public IEnumerable<SyntaxNode> DescendantNodes { get; init; }
18+
19+
internal FinallyBlockSyntax(
20+
ImmutableArray<SyntaxTrivia> leadingTrivia,
21+
ImmutableArray<SyntaxTrivia> trailingTrivia,
22+
IEnumerable<SyntaxNode> descendantNodes)
23+
{
24+
LeadingTrivia = leadingTrivia;
25+
TrailingTrivia = trailingTrivia;
26+
DescendantNodes = descendantNodes;
27+
}
28+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
using ILSourceParser.Trivia;
2+
using System.Collections.Immutable;
3+
4+
namespace ILSourceParser.Syntax;
5+
6+
/// <summary>
7+
/// Represents an IL <c>.try</c> block.
8+
/// </summary>
9+
public sealed class TryBlockSyntax : SyntaxNode
10+
{
11+
public override ImmutableArray<SyntaxTrivia> LeadingTrivia { get; init; }
12+
public override ImmutableArray<SyntaxTrivia> TrailingTrivia { get; init; }
13+
14+
/// <summary>
15+
/// Descendant nodes of the block.
16+
/// </summary>
17+
public IEnumerable<SyntaxNode> DescendantNodes { get; init; }
18+
19+
internal TryBlockSyntax(
20+
ImmutableArray<SyntaxTrivia> leadingTrivia,
21+
ImmutableArray<SyntaxTrivia> trailingTrivia,
22+
IEnumerable<SyntaxNode> descendantNodes)
23+
{
24+
LeadingTrivia = leadingTrivia;
25+
TrailingTrivia = trailingTrivia;
26+
DescendantNodes = descendantNodes;
27+
}
28+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
using ILSourceParser.Trivia;
2+
using System.Collections.Immutable;
3+
4+
namespace ILSourceParser.Syntax;
5+
6+
public sealed class TryFinallyBlockSyntax : SyntaxNode
7+
{
8+
public override ImmutableArray<SyntaxTrivia> LeadingTrivia { get; init; }
9+
public override ImmutableArray<SyntaxTrivia> TrailingTrivia { get; init; }
10+
public TryBlockSyntax TryBlock { get; init; }
11+
public FinallyBlockSyntax FinallyBlock { get; init; }
12+
13+
internal TryFinallyBlockSyntax(
14+
ImmutableArray<SyntaxTrivia> leadingTrivia,
15+
ImmutableArray<SyntaxTrivia> trailingTrivia,
16+
TryBlockSyntax tryBlock,
17+
FinallyBlockSyntax finallyBlock)
18+
{
19+
LeadingTrivia = leadingTrivia;
20+
TrailingTrivia = trailingTrivia;
21+
TryBlock = tryBlock;
22+
FinallyBlock = finallyBlock;
23+
}
24+
}

0 commit comments

Comments
 (0)