Skip to content
This repository was archived by the owner on Dec 19, 2018. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,11 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
{
public class RazorDirectivesTest : CsHtmlCodeParserTestBase
{
public RazorDirectivesTest()
{
UseNewSyntaxTree = true;
}

[Fact]
public void DirectiveDescriptor_FileScopedMultipleOccurring_CanHaveDuplicates()
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,19 @@
Markup block - Gen<None> - 18 - (0:0,0)
Markup span - Gen<Markup> - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1
SyntaxKind.Unknown;[];
Directive block - Gen<None> - 18 - (0:0,0)
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1
SyntaxKind.Transition;[@];
MetaCode span - Gen<None> - [addTagHelper] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1
SyntaxKind.Identifier;[addTagHelper];
Markup span - Gen<None> - [ ] - SpanEditHandler;Accepts:None - (13:0,13) - Tokens:1
SyntaxKind.Whitespace;[ ];
Code span - Gen<AddTagHelper:{Foo";Foo";;} [RZ1000(17:0,17 [1] ), RZ1019(14:0,14 [4] ), RZ1036(14:0,14 [4] )]> - [Foo"] - SpanEditHandler;Accepts:AnyExceptNewline - (14:0,14) - Tokens:2
SyntaxKind.Identifier;[Foo];
SyntaxKind.StringLiteral;["];RZ1000(17:0,17 [1] )
Markup span - Gen<Markup> - [] - SpanEditHandler;Accepts:Any - (18:0,18) - Tokens:1
SyntaxKind.Unknown;[];
RazorDocument - [0..18)::18 - [@addTagHelper Foo"]
MarkupBlock - [0..18)::18
MarkupTextLiteral - [0..0)::0 - [] - Gen<Markup> - SpanEditHandler;Accepts:Any
Marker;[];
CSharpCodeBlock - [0..18)::18
RazorDirective - [0..18)::18
CSharpTransition - [0..1)::1 - Gen<None> - SpanEditHandler;Accepts:None
Transition;[@];
RazorDirectiveBody - [1..18)::17
RazorMetaCode - [1..13)::12 - Gen<None> - SpanEditHandler;Accepts:None
Identifier;[addTagHelper];
CSharpCodeBlock - [13..18)::5
MarkupTextLiteral - [13..14)::1 - [ ] - Gen<None> - SpanEditHandler;Accepts:None
Whitespace;[ ];
CSharpStatementLiteral - [14..18)::4 - [Foo"] - Gen<AddTagHelper:{Foo";Foo";;} [RZ1000(17:0,17 [1] ), RZ1019(14:0,14 [4] ), RZ1036(14:0,14 [4] )]> - SpanEditHandler;Accepts:AnyExceptNewline
Identifier;[Foo];
StringLiteral;["];RZ1000(17:0,17 [1] )
MarkupTextLiteral - [18..18)::0 - [] - Gen<Markup> - SpanEditHandler;Accepts:Any
Marker;[];
Original file line number Diff line number Diff line change
@@ -1,14 +1,18 @@
Markup block - Gen<None> - 17 - (0:0,0)
Markup span - Gen<Markup> - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1
SyntaxKind.Unknown;[];
Directive block - Gen<None> - 17 - (0:0,0)
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1
SyntaxKind.Transition;[@];
MetaCode span - Gen<None> - [addTagHelper] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1
SyntaxKind.Identifier;[addTagHelper];
Markup span - Gen<None> - [ ] - SpanEditHandler;Accepts:None - (13:0,13) - Tokens:1
SyntaxKind.Whitespace;[ ];
Code span - Gen<AddTagHelper:{Foo;Foo;;} [RZ1036(14:0,14 [3] )]> - [Foo] - SpanEditHandler;Accepts:AnyExceptNewline - (14:0,14) - Tokens:1
SyntaxKind.Identifier;[Foo];
Markup span - Gen<Markup> - [] - SpanEditHandler;Accepts:Any - (17:0,17) - Tokens:1
SyntaxKind.Unknown;[];
RazorDocument - [0..17)::17 - [@addTagHelper Foo]
MarkupBlock - [0..17)::17
MarkupTextLiteral - [0..0)::0 - [] - Gen<Markup> - SpanEditHandler;Accepts:Any
Marker;[];
CSharpCodeBlock - [0..17)::17
RazorDirective - [0..17)::17
CSharpTransition - [0..1)::1 - Gen<None> - SpanEditHandler;Accepts:None
Transition;[@];
RazorDirectiveBody - [1..17)::16
RazorMetaCode - [1..13)::12 - Gen<None> - SpanEditHandler;Accepts:None
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Might eventually make sense to lift this outside of the directive body since it represents the directive identifier.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Identifier;[addTagHelper];
CSharpCodeBlock - [13..17)::4
MarkupTextLiteral - [13..14)::1 - [ ] - Gen<None> - SpanEditHandler;Accepts:None
Whitespace;[ ];
CSharpStatementLiteral - [14..17)::3 - [Foo] - Gen<AddTagHelper:{Foo;Foo;;} [RZ1036(14:0,14 [3] )]> - SpanEditHandler;Accepts:AnyExceptNewline
Identifier;[Foo];
MarkupTextLiteral - [17..17)::0 - [] - Gen<Markup> - SpanEditHandler;Accepts:Any
Marker;[];
Original file line number Diff line number Diff line change
@@ -1,14 +1,18 @@
Markup block - Gen<None> - 16 - (0:0,0)
Markup span - Gen<Markup> - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1
SyntaxKind.Unknown;[];
Directive block - Gen<None> - 16 - (0:0,0)
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1
SyntaxKind.Transition;[@];
MetaCode span - Gen<None> - [addTagHelper] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1
SyntaxKind.Identifier;[addTagHelper];
Markup span - Gen<None> - [ ] - SpanEditHandler;Accepts:None - (13:0,13) - Tokens:1
SyntaxKind.Whitespace;[ ];
Code span - Gen<AddTagHelper:{"";;;} [RZ1036(15:0,15 [1] )]> - [""] - SpanEditHandler;Accepts:AnyExceptNewline - (14:0,14) - Tokens:1
SyntaxKind.StringLiteral;[""];
Markup span - Gen<Markup> - [] - SpanEditHandler;Accepts:Any - (16:0,16) - Tokens:1
SyntaxKind.Unknown;[];
RazorDocument - [0..16)::16 - [@addTagHelper ""]
MarkupBlock - [0..16)::16
MarkupTextLiteral - [0..0)::0 - [] - Gen<Markup> - SpanEditHandler;Accepts:Any
Marker;[];
CSharpCodeBlock - [0..16)::16
RazorDirective - [0..16)::16
CSharpTransition - [0..1)::1 - Gen<None> - SpanEditHandler;Accepts:None
Transition;[@];
RazorDirectiveBody - [1..16)::15
RazorMetaCode - [1..13)::12 - Gen<None> - SpanEditHandler;Accepts:None
Identifier;[addTagHelper];
CSharpCodeBlock - [13..16)::3
MarkupTextLiteral - [13..14)::1 - [ ] - Gen<None> - SpanEditHandler;Accepts:None
Whitespace;[ ];
CSharpStatementLiteral - [14..16)::2 - [""] - Gen<AddTagHelper:{"";;;} [RZ1036(15:0,15 [1] )]> - SpanEditHandler;Accepts:AnyExceptNewline
StringLiteral;[""];
MarkupTextLiteral - [16..16)::0 - [] - Gen<Markup> - SpanEditHandler;Accepts:Any
Marker;[];
Original file line number Diff line number Diff line change
@@ -1,14 +1,18 @@
Markup block - Gen<None> - 14 - (0:0,0)
Markup span - Gen<Markup> - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1
SyntaxKind.Unknown;[];
Directive block - Gen<None> - 14 - (0:0,0)
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1
SyntaxKind.Transition;[@];
MetaCode span - Gen<None> - [addTagHelper] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1
SyntaxKind.Identifier;[addTagHelper];
Markup span - Gen<None> - [ ] - SpanEditHandler;Accepts:None - (13:0,13) - Tokens:1
SyntaxKind.Whitespace;[ ];
Code span - Gen<AddTagHelper:{;;;} [RZ1018(1:0,1 [12] ), RZ1036(14:0,14 [1] )]> - [] - SpanEditHandler;Accepts:AnyExceptNewline - (14:0,14) - Tokens:1
SyntaxKind.Unknown;[];
Markup span - Gen<Markup> - [] - SpanEditHandler;Accepts:Any - (14:0,14) - Tokens:1
SyntaxKind.Unknown;[];
RazorDocument - [0..14)::14 - [@addTagHelper ]
MarkupBlock - [0..14)::14
MarkupTextLiteral - [0..0)::0 - [] - Gen<Markup> - SpanEditHandler;Accepts:Any
Marker;[];
CSharpCodeBlock - [0..14)::14
RazorDirective - [0..14)::14
CSharpTransition - [0..1)::1 - Gen<None> - SpanEditHandler;Accepts:None
Transition;[@];
RazorDirectiveBody - [1..14)::13
RazorMetaCode - [1..13)::12 - Gen<None> - SpanEditHandler;Accepts:None
Identifier;[addTagHelper];
CSharpCodeBlock - [13..14)::1
MarkupTextLiteral - [13..14)::1 - [ ] - Gen<None> - SpanEditHandler;Accepts:None
Whitespace;[ ];
CSharpStatementLiteral - [14..14)::0 - [] - Gen<AddTagHelper:{;;;} [RZ1018(1:0,1 [13] ), RZ1036(14:0,14 [1] )]> - SpanEditHandler;Accepts:AnyExceptNewline
Marker;[];
MarkupTextLiteral - [14..14)::0 - [] - Gen<Markup> - SpanEditHandler;Accepts:Any
Marker;[];
Original file line number Diff line number Diff line change
@@ -1,14 +1,18 @@
Markup block - Gen<None> - 22 - (0:0,0)
Markup span - Gen<Markup> - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1
SyntaxKind.Unknown;[];
Directive block - Gen<None> - 22 - (0:0,0)
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1
SyntaxKind.Transition;[@];
MetaCode span - Gen<None> - [addTagHelper] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1
SyntaxKind.Identifier;[addTagHelper];
Markup span - Gen<None> - [ ] - SpanEditHandler;Accepts:None - (13:0,13) - Tokens:1
SyntaxKind.Whitespace;[ ];
Code span - Gen<AddTagHelper:{'*, Foo';'*, Foo';;} [RZ1036(14:0,14 [8] )]> - ['*, Foo'] - SpanEditHandler;Accepts:AnyExceptNewline - (14:0,14) - Tokens:1
SyntaxKind.CharacterLiteral;['*, Foo'];
Markup span - Gen<Markup> - [] - SpanEditHandler;Accepts:Any - (22:0,22) - Tokens:1
SyntaxKind.Unknown;[];
RazorDocument - [0..22)::22 - [@addTagHelper '*, Foo']
MarkupBlock - [0..22)::22
MarkupTextLiteral - [0..0)::0 - [] - Gen<Markup> - SpanEditHandler;Accepts:Any
Marker;[];
CSharpCodeBlock - [0..22)::22
RazorDirective - [0..22)::22
CSharpTransition - [0..1)::1 - Gen<None> - SpanEditHandler;Accepts:None
Transition;[@];
RazorDirectiveBody - [1..22)::21
RazorMetaCode - [1..13)::12 - Gen<None> - SpanEditHandler;Accepts:None
Identifier;[addTagHelper];
CSharpCodeBlock - [13..22)::9
MarkupTextLiteral - [13..14)::1 - [ ] - Gen<None> - SpanEditHandler;Accepts:None
Whitespace;[ ];
CSharpStatementLiteral - [14..22)::8 - ['*, Foo'] - Gen<AddTagHelper:{'*, Foo';'*, Foo';;} [RZ1036(14:0,14 [8] )]> - SpanEditHandler;Accepts:AnyExceptNewline
CharacterLiteral;['*, Foo'];
MarkupTextLiteral - [22..22)::0 - [] - Gen<Markup> - SpanEditHandler;Accepts:Any
Marker;[];
Original file line number Diff line number Diff line change
@@ -1,14 +1,18 @@
Markup block - Gen<None> - 18 - (0:0,0)
Markup span - Gen<Markup> - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1
SyntaxKind.Unknown;[];
Directive block - Gen<None> - 18 - (0:0,0)
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1
SyntaxKind.Transition;[@];
MetaCode span - Gen<None> - [addTagHelper] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1
SyntaxKind.Identifier;[addTagHelper];
Markup span - Gen<None> - [ ] - SpanEditHandler;Accepts:None - (13:0,13) - Tokens:1
SyntaxKind.Whitespace;[ ];
Code span - Gen<AddTagHelper:{"Foo;"Foo;;} [RZ1000(14:0,14 [1] ), RZ1019(14:0,14 [4] ), RZ1036(14:0,14 [4] )]> - ["Foo] - SpanEditHandler;Accepts:AnyExceptNewline - (14:0,14) - Tokens:1
SyntaxKind.StringLiteral;["Foo];RZ1000(14:0,14 [1] )
Markup span - Gen<Markup> - [] - SpanEditHandler;Accepts:Any - (18:0,18) - Tokens:1
SyntaxKind.Unknown;[];
RazorDocument - [0..18)::18 - [@addTagHelper "Foo]
MarkupBlock - [0..18)::18
MarkupTextLiteral - [0..0)::0 - [] - Gen<Markup> - SpanEditHandler;Accepts:Any
Marker;[];
CSharpCodeBlock - [0..18)::18
RazorDirective - [0..18)::18
CSharpTransition - [0..1)::1 - Gen<None> - SpanEditHandler;Accepts:None
Transition;[@];
RazorDirectiveBody - [1..18)::17
RazorMetaCode - [1..13)::12 - Gen<None> - SpanEditHandler;Accepts:None
Identifier;[addTagHelper];
CSharpCodeBlock - [13..18)::5
MarkupTextLiteral - [13..14)::1 - [ ] - Gen<None> - SpanEditHandler;Accepts:None
Whitespace;[ ];
CSharpStatementLiteral - [14..18)::4 - ["Foo] - Gen<AddTagHelper:{"Foo;"Foo;;} [RZ1000(14:0,14 [1] ), RZ1019(14:0,14 [4] ), RZ1036(14:0,14 [4] )]> - SpanEditHandler;Accepts:AnyExceptNewline
StringLiteral;["Foo];RZ1000(14:0,14 [1] )
MarkupTextLiteral - [18..18)::0 - [] - Gen<Markup> - SpanEditHandler;Accepts:Any
Marker;[];
Original file line number Diff line number Diff line change
@@ -1,18 +1,22 @@
Markup block - Gen<None> - 32 - (0:0,0)
Markup span - Gen<Markup> - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1
SyntaxKind.Unknown;[];
Directive block - Gen<None> - 32 - (0:0,0)
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1
SyntaxKind.Transition;[@];
MetaCode span - Gen<None> - [addTagHelper] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1
SyntaxKind.Identifier;[addTagHelper];
Markup span - Gen<None> - [ ] - SpanEditHandler;Accepts:None - (13:0,13) - Tokens:1
SyntaxKind.Whitespace;[ ];
Code span - Gen<AddTagHelper:{Foo, Bar;Foo, Bar;Foo;Bar}> - [Foo, Bar ] - SpanEditHandler;Accepts:AnyExceptNewline - (18:0,18) - Tokens:5
SyntaxKind.Identifier;[Foo];
SyntaxKind.Comma;[,];
SyntaxKind.Whitespace;[ ];
SyntaxKind.Identifier;[Bar];
SyntaxKind.Whitespace;[ ];
Markup span - Gen<Markup> - [] - SpanEditHandler;Accepts:Any - (32:0,32) - Tokens:1
SyntaxKind.Unknown;[];
RazorDocument - [0..32)::32 - [@addTagHelper Foo, Bar ]
MarkupBlock - [0..32)::32
MarkupTextLiteral - [0..0)::0 - [] - Gen<Markup> - SpanEditHandler;Accepts:Any
Marker;[];
CSharpCodeBlock - [0..32)::32
RazorDirective - [0..32)::32
CSharpTransition - [0..1)::1 - Gen<None> - SpanEditHandler;Accepts:None
Transition;[@];
RazorDirectiveBody - [1..32)::31
RazorMetaCode - [1..13)::12 - Gen<None> - SpanEditHandler;Accepts:None
Identifier;[addTagHelper];
CSharpCodeBlock - [13..32)::19
MarkupTextLiteral - [13..18)::5 - [ ] - Gen<None> - SpanEditHandler;Accepts:None
Whitespace;[ ];
CSharpStatementLiteral - [18..32)::14 - [Foo, Bar ] - Gen<AddTagHelper:{Foo, Bar;Foo, Bar;Foo;Bar}> - SpanEditHandler;Accepts:AnyExceptNewline
Identifier;[Foo];
Comma;[,];
Whitespace;[ ];
Identifier;[Bar];
Whitespace;[ ];
MarkupTextLiteral - [32..32)::0 - [] - Gen<Markup> - SpanEditHandler;Accepts:Any
Marker;[];
Original file line number Diff line number Diff line change
@@ -1,14 +1,18 @@
Markup block - Gen<None> - 19 - (0:0,0)
Markup span - Gen<Markup> - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1
SyntaxKind.Unknown;[];
Directive block - Gen<None> - 19 - (0:0,0)
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1
SyntaxKind.Transition;[@];
MetaCode span - Gen<None> - [addTagHelper] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1
SyntaxKind.Identifier;[addTagHelper];
Markup span - Gen<None> - [ ] - SpanEditHandler;Accepts:None - (13:0,13) - Tokens:1
SyntaxKind.Whitespace;[ ];
Code span - Gen<AddTagHelper:{"Foo";Foo;;} [RZ1036(15:0,15 [3] )]> - ["Foo"] - SpanEditHandler;Accepts:AnyExceptNewline - (14:0,14) - Tokens:1
SyntaxKind.StringLiteral;["Foo"];
Markup span - Gen<Markup> - [] - SpanEditHandler;Accepts:Any - (19:0,19) - Tokens:1
SyntaxKind.Unknown;[];
RazorDocument - [0..19)::19 - [@addTagHelper "Foo"]
MarkupBlock - [0..19)::19
MarkupTextLiteral - [0..0)::0 - [] - Gen<Markup> - SpanEditHandler;Accepts:Any
Marker;[];
CSharpCodeBlock - [0..19)::19
RazorDirective - [0..19)::19
CSharpTransition - [0..1)::1 - Gen<None> - SpanEditHandler;Accepts:None
Transition;[@];
RazorDirectiveBody - [1..19)::18
RazorMetaCode - [1..13)::12 - Gen<None> - SpanEditHandler;Accepts:None
Identifier;[addTagHelper];
CSharpCodeBlock - [13..19)::6
MarkupTextLiteral - [13..14)::1 - [ ] - Gen<None> - SpanEditHandler;Accepts:None
Whitespace;[ ];
CSharpStatementLiteral - [14..19)::5 - ["Foo"] - Gen<AddTagHelper:{"Foo";Foo;;} [RZ1036(15:0,15 [3] )]> - SpanEditHandler;Accepts:AnyExceptNewline
StringLiteral;["Foo"];
MarkupTextLiteral - [19..19)::0 - [] - Gen<Markup> - SpanEditHandler;Accepts:Any
Marker;[];
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
Markup span at (0:0,0 [2] ) (Accepts:Any) - Parent: Markup block at (0:0,0 [26] )
Code span at (2:1,0 [2] ) (Accepts:Any) - Parent: Directive block at (2:1,0 [24] )
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can I fight for this? I don't get why the whitespace prior to a directive needs to be part of the directive. The way I designed it, the directive starts with a transition@.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll let @NTaylorMullen weigh in on this.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How do you plan to implement trivia for directives? In my mind the leading whitespace of a directive should have the following characteristics:

  • Cannot contain any content
  • Should have 0 intellisense/completion at design time
  • Can be 0+ whitespace characters long.

With whatever trivia approach you have in mind would it make the above characteristics easy to implement/understand?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

From what I understand from Roslyn, "trivia" is generally associated with tokens rather than specific nodes. Leading trivia of any node is basically the leading trivia of its first token. https://github.com/dotnet/roslyn/blob/master/src/Compilers/Core/Portable/Syntax/SyntaxNode.cs#L911.
It does make sense to have the leading whitespace as the leading trivia for the transition @. But don't we already allow comments before the start of a directive? Not sure if it makes sense to have that as part of trivia. Having said that, I haven't given a lot of thought to how we want to do trivia yet. So, this might need more discussion.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

But don't we already allow comments before the start of a directive?

Nah

image

Do you think it makes sense to design (not implement) the plans for trivia now so we can make better choices with the SyntaxTree? Or does it make sense to wait and do reactive changes later?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Spoke to @NTaylorMullen offline. We are not going to make this consistent with the old world because the old world already has different behavior depending on the contents of the previous line. I plan to keep this change and test this in the editor to make sure we didn't break anything.

Transition span at (4:1,2 [1] ) (Accepts:None) - Parent: Directive block at (2:1,0 [24] )
MetaCode span at (5:1,3 [12] ) (Accepts:None) - Parent: Directive block at (2:1,0 [24] )
Markup span at (17:1,15 [1] ) (Accepts:None) - Parent: Directive block at (2:1,0 [24] )
Code span at (18:1,16 [8] ) (Accepts:AnyExceptNewline) - Parent: Directive block at (2:1,0 [24] )
Code span at (2:1,0 [2] ) (Accepts:Any) - Parent: Statement block at (2:1,0 [24] )
Transition span at (4:1,2 [1] ) (Accepts:None) - Parent: Directive block at (4:1,2 [22] )
MetaCode span at (5:1,3 [12] ) (Accepts:None) - Parent: Directive block at (4:1,2 [22] )
Markup span at (17:1,15 [1] ) (Accepts:None) - Parent: Directive block at (4:1,2 [22] )
Code span at (18:1,16 [8] ) (Accepts:AnyExceptNewline) - Parent: Directive block at (4:1,2 [22] )
Markup span at (26:1,24 [0] ) (Accepts:Any) - Parent: Markup block at (0:0,0 [26] )
Loading