Convert CSharpTemplateTest to use baselines.

#2263
This commit is contained in:
N. Taylor Mullen 2018-06-27 11:39:31 -07:00
parent ab27e0bd52
commit 25547e80d1
17 changed files with 743 additions and 241 deletions

View File

@ -8,314 +8,88 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
{
public class CSharpTemplateTest : CsHtmlCodeParserTestBase
{
private const string TestTemplateCode = " @<p>Foo #@item</p>";
private TemplateBlock TestTemplate()
public CSharpTemplateTest()
{
return new TemplateBlock(
new MarkupBlock(
Factory.MarkupTransition(),
new MarkupTagBlock(
Factory.Markup("<p>").Accepts(AcceptedCharactersInternal.None)),
Factory.Markup("Foo #"),
new ExpressionBlock(
Factory.CodeTransition(),
Factory.Code("item")
.AsImplicitExpression(CSharpCodeParser.DefaultKeywords)
.Accepts(AcceptedCharactersInternal.NonWhiteSpace)
),
new MarkupTagBlock(
Factory.Markup("</p>").Accepts(AcceptedCharactersInternal.None))
)
);
UseBaselineTests = true;
}
private const string TestNestedTemplateCode = " @<p>Foo #@Html.Repeat(10, @<p>@item</p>)</p>";
private TemplateBlock TestNestedTemplate()
{
return new TemplateBlock(
new MarkupBlock(
Factory.MarkupTransition(),
new MarkupTagBlock(
Factory.Markup("<p>").Accepts(AcceptedCharactersInternal.None)),
Factory.Markup("Foo #"),
new ExpressionBlock(
Factory.CodeTransition(),
Factory.Code("Html.Repeat(10, ")
.AsImplicitExpression(CSharpCodeParser.DefaultKeywords),
new TemplateBlock(
new MarkupBlock(
Factory.MarkupTransition(),
new MarkupTagBlock(
Factory.Markup("<p>").Accepts(AcceptedCharactersInternal.None)),
Factory.EmptyHtml(),
new ExpressionBlock(
Factory.CodeTransition(),
Factory.Code("item")
.AsImplicitExpression(CSharpCodeParser.DefaultKeywords)
.Accepts(AcceptedCharactersInternal.NonWhiteSpace)
),
new MarkupTagBlock(
Factory.Markup("</p>").Accepts(AcceptedCharactersInternal.None))
)
),
Factory.Code(")")
.AsImplicitExpression(CSharpCodeParser.DefaultKeywords)
.Accepts(AcceptedCharactersInternal.NonWhiteSpace)
),
new MarkupTagBlock(
Factory.Markup("</p>").Accepts(AcceptedCharactersInternal.None))
)
);
}
[Fact]
public void ParseBlockHandlesSingleLineTemplate()
{
ParseBlockTest("{ var foo = @: bar" + Environment.NewLine
+ "; }",
new StatementBlock(
Factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None),
Factory.Code(" var foo = ")
.AsStatement()
.AutoCompleteWith(autoCompleteString: null),
new TemplateBlock(
new MarkupBlock(
Factory.MarkupTransition(),
Factory.MetaMarkup(":", HtmlSymbolType.Colon),
Factory.Markup(" bar" + Environment.NewLine)
.With(new SpanEditHandler(CSharpLanguageCharacteristics.Instance.TokenizeString))
.Accepts(AcceptedCharactersInternal.None)
)
),
Factory.Code("; ").AsStatement(),
Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)
));
ParseBlockTest("{ var foo = @: bar" + Environment.NewLine + "; }");
}
[Fact]
public void ParseBlockHandlesSingleLineImmediatelyFollowingStatementChar()
{
ParseBlockTest("{i@: bar" + Environment.NewLine
+ "}",
new StatementBlock(
Factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None),
Factory.Code("i")
.AsStatement()
.AutoCompleteWith(autoCompleteString: null),
new TemplateBlock(
new MarkupBlock(
Factory.MarkupTransition(),
Factory.MetaMarkup(":", HtmlSymbolType.Colon),
Factory.Markup(" bar" + Environment.NewLine)
.With(new SpanEditHandler(CSharpLanguageCharacteristics.Instance.TokenizeString))
.Accepts(AcceptedCharactersInternal.None)
)
),
Factory.EmptyCSharp().AsStatement(),
Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)
));
ParseBlockTest("{i@: bar" + Environment.NewLine + "}");
}
[Fact]
public void ParseBlockHandlesSimpleTemplateInExplicitExpressionParens()
{
ParseBlockTest("(Html.Repeat(10," + TestTemplateCode + "))",
new ExpressionBlock(
Factory.MetaCode("(").Accepts(AcceptedCharactersInternal.None),
Factory.Code("Html.Repeat(10, ").AsExpression(),
TestTemplate(),
Factory.Code(")").AsExpression(),
Factory.MetaCode(")").Accepts(AcceptedCharactersInternal.None)
));
ParseBlockTest("(Html.Repeat(10, @<p>Foo #@item</p>))");
}
[Fact]
public void ParseBlockHandlesSimpleTemplateInImplicitExpressionParens()
{
ParseBlockTest("Html.Repeat(10," + TestTemplateCode + ")",
new ExpressionBlock(
Factory.Code("Html.Repeat(10, ")
.AsImplicitExpression(CSharpCodeParser.DefaultKeywords),
TestTemplate(),
Factory.Code(")")
.AsImplicitExpression(CSharpCodeParser.DefaultKeywords)
.Accepts(AcceptedCharactersInternal.NonWhiteSpace)
));
ParseBlockTest("Html.Repeat(10, @<p>Foo #@item</p>)");
}
[Fact]
public void ParseBlockHandlesTwoTemplatesInImplicitExpressionParens()
{
ParseBlockTest("Html.Repeat(10," + TestTemplateCode + "," + TestTemplateCode + ")",
new ExpressionBlock(
Factory.Code("Html.Repeat(10, ")
.AsImplicitExpression(CSharpCodeParser.DefaultKeywords),
TestTemplate(),
Factory.Code(", ")
.AsImplicitExpression(CSharpCodeParser.DefaultKeywords),
TestTemplate(),
Factory.Code(")")
.AsImplicitExpression(CSharpCodeParser.DefaultKeywords).Accepts(AcceptedCharactersInternal.NonWhiteSpace)
));
ParseBlockTest("Html.Repeat(10, @<p>Foo #@item</p>, @<p>Foo #@item</p>)");
}
[Fact]
public void ParseBlockProducesErrorButCorrectlyParsesNestedTemplateInImplicitExpressionParens()
{
ParseBlockTest("Html.Repeat(10," + TestNestedTemplateCode + ")",
new ExpressionBlock(
Factory.Code("Html.Repeat(10, ")
.AsImplicitExpression(CSharpCodeParser.DefaultKeywords),
TestNestedTemplate(),
Factory.Code(")")
.AsImplicitExpression(CSharpCodeParser.DefaultKeywords)
.Accepts(AcceptedCharactersInternal.NonWhiteSpace)
),
GetNestedTemplateError(42));
ParseBlockTest("Html.Repeat(10, @<p>Foo #@Html.Repeat(10, @<p>@item</p>)</p>)");
}
[Fact]
public void ParseBlockHandlesSimpleTemplateInStatementWithinCodeBlock()
{
ParseBlockTest("foreach(foo in Bar) { Html.ExecuteTemplate(foo," + TestTemplateCode + "); }",
new StatementBlock(
Factory.Code("foreach(foo in Bar) { Html.ExecuteTemplate(foo, ").AsStatement(),
TestTemplate(),
Factory.Code("); }")
.AsStatement()
.Accepts(AcceptedCharactersInternal.None)
));
ParseBlockTest("foreach(foo in Bar) { Html.ExecuteTemplate(foo, @<p>Foo #@item</p>); }");
}
[Fact]
public void ParseBlockHandlesTwoTemplatesInStatementWithinCodeBlock()
{
ParseBlockTest("foreach(foo in Bar) { Html.ExecuteTemplate(foo," + TestTemplateCode + "," + TestTemplateCode + "); }",
new StatementBlock(
Factory.Code("foreach(foo in Bar) { Html.ExecuteTemplate(foo, ").AsStatement(),
TestTemplate(),
Factory.Code(", ").AsStatement(),
TestTemplate(),
Factory.Code("); }")
.AsStatement()
.Accepts(AcceptedCharactersInternal.None)
));
ParseBlockTest("foreach(foo in Bar) { Html.ExecuteTemplate(foo, @<p>Foo #@item</p>, @<p>Foo #@item</p>); }");
}
[Fact]
public void ParseBlockProducesErrorButCorrectlyParsesNestedTemplateInStatementWithinCodeBlock()
{
ParseBlockTest("foreach(foo in Bar) { Html.ExecuteTemplate(foo," + TestNestedTemplateCode + "); }",
new StatementBlock(
Factory.Code("foreach(foo in Bar) { Html.ExecuteTemplate(foo, ")
.AsStatement(),
TestNestedTemplate(),
Factory.Code("); }")
.AsStatement()
.Accepts(AcceptedCharactersInternal.None)
),
GetNestedTemplateError(74));
ParseBlockTest("foreach(foo in Bar) { Html.ExecuteTemplate(foo, @<p>Foo #@Html.Repeat(10, @<p>@item</p>)</p>); }");
}
[Fact]
public void ParseBlockHandlesSimpleTemplateInStatementWithinStatementBlock()
{
ParseBlockTest("{ var foo = bar; Html.ExecuteTemplate(foo," + TestTemplateCode + "); }",
new StatementBlock(
Factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None),
Factory.Code(" var foo = bar; Html.ExecuteTemplate(foo, ")
.AsStatement()
.AutoCompleteWith(autoCompleteString: null),
TestTemplate(),
Factory.Code("); ").AsStatement(),
Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)
));
ParseBlockTest("{ var foo = bar; Html.ExecuteTemplate(foo, @<p>Foo #@item</p>); }");
}
[Fact]
public void ParseBlockHandlessTwoTemplatesInStatementWithinStatementBlock()
{
ParseBlockTest("{ var foo = bar; Html.ExecuteTemplate(foo," + TestTemplateCode + "," + TestTemplateCode + "); }",
new StatementBlock(
Factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None),
Factory.Code(" var foo = bar; Html.ExecuteTemplate(foo, ")
.AsStatement()
.AutoCompleteWith(autoCompleteString: null),
TestTemplate(),
Factory.Code(", ").AsStatement(),
TestTemplate(),
Factory.Code("); ").AsStatement(),
Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)
));
ParseBlockTest("{ var foo = bar; Html.ExecuteTemplate(foo, @<p>Foo #@item</p>, @<p>Foo #@item</p>); }");
}
[Fact]
public void ParseBlockProducesErrorButCorrectlyParsesNestedTemplateInStatementWithinStatementBlock()
{
ParseBlockTest("{ var foo = bar; Html.ExecuteTemplate(foo," + TestNestedTemplateCode + "); }",
new StatementBlock(
Factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None),
Factory.Code(" var foo = bar; Html.ExecuteTemplate(foo, ")
.AsStatement()
.AutoCompleteWith(autoCompleteString: null),
TestNestedTemplate(),
Factory.Code("); ").AsStatement(),
Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)
),
GetNestedTemplateError(69));
ParseBlockTest("{ var foo = bar; Html.ExecuteTemplate(foo, @<p>Foo #@Html.Repeat(10, @<p>@item</p>)</p>); }");
}
[Fact]
public void ParseBlock_WithDoubleTransition_DoesNotThrow()
{
FixupSpans = true;
// Arrange
var testTemplateWithDoubleTransitionCode = " @<p foo='@@'>Foo #@item</p>";
var testTemplateWithDoubleTransition = new TemplateBlock(
new MarkupBlock(
Factory.MarkupTransition(),
new MarkupTagBlock(
Factory.Markup("<p"),
new MarkupBlock(
new AttributeBlockChunkGenerator("foo", new LocationTagged<string>(" foo='", 46, 0, 46), new LocationTagged<string>("'", 54, 0, 54)),
Factory.Markup(" foo='").With(SpanChunkGenerator.Null),
new MarkupBlock(
Factory.Markup("@").With(new LiteralAttributeChunkGenerator(new LocationTagged<string>(string.Empty, 52, 0, 52), new LocationTagged<string>("@", 52, 0, 52))).Accepts(AcceptedCharactersInternal.None),
Factory.Markup("@").With(SpanChunkGenerator.Null).Accepts(AcceptedCharactersInternal.None)),
Factory.Markup("'").With(SpanChunkGenerator.Null)),
Factory.Markup(">").Accepts(AcceptedCharactersInternal.None)),
Factory.Markup("Foo #"),
new ExpressionBlock(
Factory.CodeTransition(),
Factory.Code("item")
.AsImplicitExpression(CSharpCodeParser.DefaultKeywords)
.Accepts(AcceptedCharactersInternal.NonWhiteSpace)
),
new MarkupTagBlock(
Factory.Markup("</p>").Accepts(AcceptedCharactersInternal.None))
)
);
var expected = new StatementBlock(
Factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None),
Factory.Code(" var foo = bar; Html.ExecuteTemplate(foo, ")
.AsStatement()
.AutoCompleteWith(autoCompleteString: null),
testTemplateWithDoubleTransition,
Factory.Code("); ").AsStatement(),
Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None));
// Act & Assert
ParseBlockTest("{ var foo = bar; Html.ExecuteTemplate(foo," + testTemplateWithDoubleTransitionCode + "); }", expected);
}
private static RazorDiagnostic GetNestedTemplateError(int characterIndex)
{
return RazorDiagnosticFactory.CreateParsing_InlineMarkupBlocksCannotBeNested(
new SourceSpan(new SourceLocation(characterIndex, 0, characterIndex), contentLength: 1));
ParseBlockTest("{ var foo = bar; Html.ExecuteTemplate(foo, @<p foo='@@'>Foo #@item</p>); }");
}
}
}

View File

@ -0,0 +1,39 @@
Expression block - Gen<Expr> - 37 - (0:0,0)
MetaCode span - Gen<None> - [(] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1
CSharpSymbolType.LeftParenthesis;[(];
Code span - Gen<Expr> - [Html.Repeat(10, ] - SpanEditHandler;Accepts:Any - (1:0,1) - Symbols:7
CSharpSymbolType.Identifier;[Html];
CSharpSymbolType.Dot;[.];
CSharpSymbolType.Identifier;[Repeat];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.IntegerLiteral;[10];
CSharpSymbolType.Comma;[,];
CSharpSymbolType.WhiteSpace;[ ];
Template block - Gen<Template> - 18 - (17:0,17)
Markup block - Gen<None> - 18 - (17:0,17)
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (17:0,17) - Symbols:1
HtmlSymbolType.Transition;[@];
Tag block - Gen<None> - 3 - (18:0,18)
Markup span - Gen<Markup> - [<p>] - SpanEditHandler;Accepts:None - (18:0,18) - Symbols:3
HtmlSymbolType.OpenAngle;[<];
HtmlSymbolType.Text;[p];
HtmlSymbolType.CloseAngle;[>];
Markup span - Gen<Markup> - [Foo #] - SpanEditHandler;Accepts:Any - (21:0,21) - Symbols:3
HtmlSymbolType.Text;[Foo];
HtmlSymbolType.WhiteSpace;[ ];
HtmlSymbolType.Text;[#];
Expression block - Gen<Expr> - 5 - (26:0,26)
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (26:0,26) - Symbols:1
CSharpSymbolType.Transition;[@];
Code span - Gen<Expr> - [item] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (27:0,27) - Symbols:1
CSharpSymbolType.Identifier;[item];
Tag block - Gen<None> - 4 - (31:0,31)
Markup span - Gen<Markup> - [</p>] - SpanEditHandler;Accepts:None - (31:0,31) - Symbols:4
HtmlSymbolType.OpenAngle;[<];
HtmlSymbolType.ForwardSlash;[/];
HtmlSymbolType.Text;[p];
HtmlSymbolType.CloseAngle;[>];
Code span - Gen<Expr> - [)] - SpanEditHandler;Accepts:Any - (35:0,35) - Symbols:1
CSharpSymbolType.RightParenthesis;[)];
MetaCode span - Gen<None> - [)] - SpanEditHandler;Accepts:None - (36:0,36) - Symbols:1
CSharpSymbolType.RightParenthesis;[)];

View File

@ -0,0 +1,35 @@
Expression block - Gen<Expr> - 35 - (0:0,0)
Code span - Gen<Expr> - [Html.Repeat(10, ] - ImplicitExpressionEditHandler;Accepts:Any;ImplicitExpression[RTD];K14 - (0:0,0) - Symbols:7
CSharpSymbolType.Identifier;[Html];
CSharpSymbolType.Dot;[.];
CSharpSymbolType.Identifier;[Repeat];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.IntegerLiteral;[10];
CSharpSymbolType.Comma;[,];
CSharpSymbolType.WhiteSpace;[ ];
Template block - Gen<Template> - 18 - (16:0,16)
Markup block - Gen<None> - 18 - (16:0,16)
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (16:0,16) - Symbols:1
HtmlSymbolType.Transition;[@];
Tag block - Gen<None> - 3 - (17:0,17)
Markup span - Gen<Markup> - [<p>] - SpanEditHandler;Accepts:None - (17:0,17) - Symbols:3
HtmlSymbolType.OpenAngle;[<];
HtmlSymbolType.Text;[p];
HtmlSymbolType.CloseAngle;[>];
Markup span - Gen<Markup> - [Foo #] - SpanEditHandler;Accepts:Any - (20:0,20) - Symbols:3
HtmlSymbolType.Text;[Foo];
HtmlSymbolType.WhiteSpace;[ ];
HtmlSymbolType.Text;[#];
Expression block - Gen<Expr> - 5 - (25:0,25)
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (25:0,25) - Symbols:1
CSharpSymbolType.Transition;[@];
Code span - Gen<Expr> - [item] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (26:0,26) - Symbols:1
CSharpSymbolType.Identifier;[item];
Tag block - Gen<None> - 4 - (30:0,30)
Markup span - Gen<Markup> - [</p>] - SpanEditHandler;Accepts:None - (30:0,30) - Symbols:4
HtmlSymbolType.OpenAngle;[<];
HtmlSymbolType.ForwardSlash;[/];
HtmlSymbolType.Text;[p];
HtmlSymbolType.CloseAngle;[>];
Code span - Gen<Expr> - [)] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (34:0,34) - Symbols:1
CSharpSymbolType.RightParenthesis;[)];

View File

@ -0,0 +1,49 @@
Statement block - Gen<None> - 70 - (0:0,0)
Code span - Gen<Stmt> - [foreach(foo in Bar) { Html.ExecuteTemplate(foo, ] - SpanEditHandler;Accepts:Any - (0:0,0) - Symbols:18
CSharpSymbolType.Keyword;[foreach];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.Identifier;[foo];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Keyword;[in];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[Bar];
CSharpSymbolType.RightParenthesis;[)];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.LeftBrace;[{];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[Html];
CSharpSymbolType.Dot;[.];
CSharpSymbolType.Identifier;[ExecuteTemplate];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.Identifier;[foo];
CSharpSymbolType.Comma;[,];
CSharpSymbolType.WhiteSpace;[ ];
Template block - Gen<Template> - 18 - (48:0,48)
Markup block - Gen<None> - 18 - (48:0,48)
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (48:0,48) - Symbols:1
HtmlSymbolType.Transition;[@];
Tag block - Gen<None> - 3 - (49:0,49)
Markup span - Gen<Markup> - [<p>] - SpanEditHandler;Accepts:None - (49:0,49) - Symbols:3
HtmlSymbolType.OpenAngle;[<];
HtmlSymbolType.Text;[p];
HtmlSymbolType.CloseAngle;[>];
Markup span - Gen<Markup> - [Foo #] - SpanEditHandler;Accepts:Any - (52:0,52) - Symbols:3
HtmlSymbolType.Text;[Foo];
HtmlSymbolType.WhiteSpace;[ ];
HtmlSymbolType.Text;[#];
Expression block - Gen<Expr> - 5 - (57:0,57)
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (57:0,57) - Symbols:1
CSharpSymbolType.Transition;[@];
Code span - Gen<Expr> - [item] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (58:0,58) - Symbols:1
CSharpSymbolType.Identifier;[item];
Tag block - Gen<None> - 4 - (62:0,62)
Markup span - Gen<Markup> - [</p>] - SpanEditHandler;Accepts:None - (62:0,62) - Symbols:4
HtmlSymbolType.OpenAngle;[<];
HtmlSymbolType.ForwardSlash;[/];
HtmlSymbolType.Text;[p];
HtmlSymbolType.CloseAngle;[>];
Code span - Gen<Stmt> - [); }] - SpanEditHandler;Accepts:None - (66:0,66) - Symbols:4
CSharpSymbolType.RightParenthesis;[)];
CSharpSymbolType.Semicolon;[;];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.RightBrace;[}];

View File

@ -0,0 +1,51 @@
Statement block - Gen<None> - 65 - (0:0,0)
MetaCode span - Gen<None> - [{] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1
CSharpSymbolType.LeftBrace;[{];
Code span - Gen<Stmt> - [ var foo = bar; Html.ExecuteTemplate(foo, ] - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[<null>];AtEOL - (1:0,1) - Symbols:17
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[var];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[foo];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Assign;[=];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[bar];
CSharpSymbolType.Semicolon;[;];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[Html];
CSharpSymbolType.Dot;[.];
CSharpSymbolType.Identifier;[ExecuteTemplate];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.Identifier;[foo];
CSharpSymbolType.Comma;[,];
CSharpSymbolType.WhiteSpace;[ ];
Template block - Gen<Template> - 18 - (43:0,43)
Markup block - Gen<None> - 18 - (43:0,43)
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (43:0,43) - Symbols:1
HtmlSymbolType.Transition;[@];
Tag block - Gen<None> - 3 - (44:0,44)
Markup span - Gen<Markup> - [<p>] - SpanEditHandler;Accepts:None - (44:0,44) - Symbols:3
HtmlSymbolType.OpenAngle;[<];
HtmlSymbolType.Text;[p];
HtmlSymbolType.CloseAngle;[>];
Markup span - Gen<Markup> - [Foo #] - SpanEditHandler;Accepts:Any - (47:0,47) - Symbols:3
HtmlSymbolType.Text;[Foo];
HtmlSymbolType.WhiteSpace;[ ];
HtmlSymbolType.Text;[#];
Expression block - Gen<Expr> - 5 - (52:0,52)
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (52:0,52) - Symbols:1
CSharpSymbolType.Transition;[@];
Code span - Gen<Expr> - [item] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (53:0,53) - Symbols:1
CSharpSymbolType.Identifier;[item];
Tag block - Gen<None> - 4 - (57:0,57)
Markup span - Gen<Markup> - [</p>] - SpanEditHandler;Accepts:None - (57:0,57) - Symbols:4
HtmlSymbolType.OpenAngle;[<];
HtmlSymbolType.ForwardSlash;[/];
HtmlSymbolType.Text;[p];
HtmlSymbolType.CloseAngle;[>];
Code span - Gen<Stmt> - [); ] - SpanEditHandler;Accepts:Any - (61:0,61) - Symbols:3
CSharpSymbolType.RightParenthesis;[)];
CSharpSymbolType.Semicolon;[;];
CSharpSymbolType.WhiteSpace;[ ];
MetaCode span - Gen<None> - [}] - SpanEditHandler;Accepts:None - (64:0,64) - Symbols:1
CSharpSymbolType.RightBrace;[}];

View File

@ -0,0 +1,19 @@
Statement block - Gen<None> - 11 - (0:0,0)
MetaCode span - Gen<None> - [{] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1
CSharpSymbolType.LeftBrace;[{];
Code span - Gen<Stmt> - [i] - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[<null>];AtEOL - (1:0,1) - Symbols:1
CSharpSymbolType.Identifier;[i];
Template block - Gen<Template> - 8 - (2:0,2)
Markup block - Gen<None> - 8 - (2:0,2)
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (2:0,2) - Symbols:1
HtmlSymbolType.Transition;[@];
MetaCode span - Gen<None> - [:] - SpanEditHandler;Accepts:Any - (3:0,3) - Symbols:1
HtmlSymbolType.Colon;[:];
Markup span - Gen<Markup> - [ barLF] - SpanEditHandler;Accepts:None - (4:0,4) - Symbols:3
HtmlSymbolType.WhiteSpace;[ ];
HtmlSymbolType.Text;[bar];
HtmlSymbolType.NewLine;[LF];
Code span - Gen<Stmt> - [] - SpanEditHandler;Accepts:Any - (10:1,0) - Symbols:1
CSharpSymbolType.Unknown;[];
MetaCode span - Gen<None> - [}] - SpanEditHandler;Accepts:None - (10:1,0) - Symbols:1
CSharpSymbolType.RightBrace;[}];

View File

@ -0,0 +1,26 @@
Statement block - Gen<None> - 23 - (0:0,0)
MetaCode span - Gen<None> - [{] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1
CSharpSymbolType.LeftBrace;[{];
Code span - Gen<Stmt> - [ var foo = ] - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[<null>];AtEOL - (1:0,1) - Symbols:7
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[var];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[foo];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Assign;[=];
CSharpSymbolType.WhiteSpace;[ ];
Template block - Gen<Template> - 8 - (12:0,12)
Markup block - Gen<None> - 8 - (12:0,12)
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (12:0,12) - Symbols:1
HtmlSymbolType.Transition;[@];
MetaCode span - Gen<None> - [:] - SpanEditHandler;Accepts:Any - (13:0,13) - Symbols:1
HtmlSymbolType.Colon;[:];
Markup span - Gen<Markup> - [ barLF] - SpanEditHandler;Accepts:None - (14:0,14) - Symbols:3
HtmlSymbolType.WhiteSpace;[ ];
HtmlSymbolType.Text;[bar];
HtmlSymbolType.NewLine;[LF];
Code span - Gen<Stmt> - [; ] - SpanEditHandler;Accepts:Any - (20:1,0) - Symbols:2
CSharpSymbolType.Semicolon;[;];
CSharpSymbolType.WhiteSpace;[ ];
MetaCode span - Gen<None> - [}] - SpanEditHandler;Accepts:None - (22:1,2) - Symbols:1
CSharpSymbolType.RightBrace;[}];

View File

@ -0,0 +1,62 @@
Expression block - Gen<Expr> - 55 - (0:0,0)
Code span - Gen<Expr> - [Html.Repeat(10, ] - ImplicitExpressionEditHandler;Accepts:Any;ImplicitExpression[RTD];K14 - (0:0,0) - Symbols:7
CSharpSymbolType.Identifier;[Html];
CSharpSymbolType.Dot;[.];
CSharpSymbolType.Identifier;[Repeat];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.IntegerLiteral;[10];
CSharpSymbolType.Comma;[,];
CSharpSymbolType.WhiteSpace;[ ];
Template block - Gen<Template> - 18 - (16:0,16)
Markup block - Gen<None> - 18 - (16:0,16)
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (16:0,16) - Symbols:1
HtmlSymbolType.Transition;[@];
Tag block - Gen<None> - 3 - (17:0,17)
Markup span - Gen<Markup> - [<p>] - SpanEditHandler;Accepts:None - (17:0,17) - Symbols:3
HtmlSymbolType.OpenAngle;[<];
HtmlSymbolType.Text;[p];
HtmlSymbolType.CloseAngle;[>];
Markup span - Gen<Markup> - [Foo #] - SpanEditHandler;Accepts:Any - (20:0,20) - Symbols:3
HtmlSymbolType.Text;[Foo];
HtmlSymbolType.WhiteSpace;[ ];
HtmlSymbolType.Text;[#];
Expression block - Gen<Expr> - 5 - (25:0,25)
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (25:0,25) - Symbols:1
CSharpSymbolType.Transition;[@];
Code span - Gen<Expr> - [item] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (26:0,26) - Symbols:1
CSharpSymbolType.Identifier;[item];
Tag block - Gen<None> - 4 - (30:0,30)
Markup span - Gen<Markup> - [</p>] - SpanEditHandler;Accepts:None - (30:0,30) - Symbols:4
HtmlSymbolType.OpenAngle;[<];
HtmlSymbolType.ForwardSlash;[/];
HtmlSymbolType.Text;[p];
HtmlSymbolType.CloseAngle;[>];
Code span - Gen<Expr> - [, ] - ImplicitExpressionEditHandler;Accepts:Any;ImplicitExpression[RTD];K14 - (34:0,34) - Symbols:2
CSharpSymbolType.Comma;[,];
CSharpSymbolType.WhiteSpace;[ ];
Template block - Gen<Template> - 18 - (36:0,36)
Markup block - Gen<None> - 18 - (36:0,36)
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (36:0,36) - Symbols:1
HtmlSymbolType.Transition;[@];
Tag block - Gen<None> - 3 - (37:0,37)
Markup span - Gen<Markup> - [<p>] - SpanEditHandler;Accepts:None - (37:0,37) - Symbols:3
HtmlSymbolType.OpenAngle;[<];
HtmlSymbolType.Text;[p];
HtmlSymbolType.CloseAngle;[>];
Markup span - Gen<Markup> - [Foo #] - SpanEditHandler;Accepts:Any - (40:0,40) - Symbols:3
HtmlSymbolType.Text;[Foo];
HtmlSymbolType.WhiteSpace;[ ];
HtmlSymbolType.Text;[#];
Expression block - Gen<Expr> - 5 - (45:0,45)
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (45:0,45) - Symbols:1
CSharpSymbolType.Transition;[@];
Code span - Gen<Expr> - [item] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (46:0,46) - Symbols:1
CSharpSymbolType.Identifier;[item];
Tag block - Gen<None> - 4 - (50:0,50)
Markup span - Gen<Markup> - [</p>] - SpanEditHandler;Accepts:None - (50:0,50) - Symbols:4
HtmlSymbolType.OpenAngle;[<];
HtmlSymbolType.ForwardSlash;[/];
HtmlSymbolType.Text;[p];
HtmlSymbolType.CloseAngle;[>];
Code span - Gen<Expr> - [)] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (54:0,54) - Symbols:1
CSharpSymbolType.RightParenthesis;[)];

View File

@ -0,0 +1,76 @@
Statement block - Gen<None> - 90 - (0:0,0)
Code span - Gen<Stmt> - [foreach(foo in Bar) { Html.ExecuteTemplate(foo, ] - SpanEditHandler;Accepts:Any - (0:0,0) - Symbols:18
CSharpSymbolType.Keyword;[foreach];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.Identifier;[foo];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Keyword;[in];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[Bar];
CSharpSymbolType.RightParenthesis;[)];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.LeftBrace;[{];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[Html];
CSharpSymbolType.Dot;[.];
CSharpSymbolType.Identifier;[ExecuteTemplate];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.Identifier;[foo];
CSharpSymbolType.Comma;[,];
CSharpSymbolType.WhiteSpace;[ ];
Template block - Gen<Template> - 18 - (48:0,48)
Markup block - Gen<None> - 18 - (48:0,48)
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (48:0,48) - Symbols:1
HtmlSymbolType.Transition;[@];
Tag block - Gen<None> - 3 - (49:0,49)
Markup span - Gen<Markup> - [<p>] - SpanEditHandler;Accepts:None - (49:0,49) - Symbols:3
HtmlSymbolType.OpenAngle;[<];
HtmlSymbolType.Text;[p];
HtmlSymbolType.CloseAngle;[>];
Markup span - Gen<Markup> - [Foo #] - SpanEditHandler;Accepts:Any - (52:0,52) - Symbols:3
HtmlSymbolType.Text;[Foo];
HtmlSymbolType.WhiteSpace;[ ];
HtmlSymbolType.Text;[#];
Expression block - Gen<Expr> - 5 - (57:0,57)
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (57:0,57) - Symbols:1
CSharpSymbolType.Transition;[@];
Code span - Gen<Expr> - [item] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (58:0,58) - Symbols:1
CSharpSymbolType.Identifier;[item];
Tag block - Gen<None> - 4 - (62:0,62)
Markup span - Gen<Markup> - [</p>] - SpanEditHandler;Accepts:None - (62:0,62) - Symbols:4
HtmlSymbolType.OpenAngle;[<];
HtmlSymbolType.ForwardSlash;[/];
HtmlSymbolType.Text;[p];
HtmlSymbolType.CloseAngle;[>];
Code span - Gen<Stmt> - [, ] - SpanEditHandler;Accepts:Any - (66:0,66) - Symbols:2
CSharpSymbolType.Comma;[,];
CSharpSymbolType.WhiteSpace;[ ];
Template block - Gen<Template> - 18 - (68:0,68)
Markup block - Gen<None> - 18 - (68:0,68)
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (68:0,68) - Symbols:1
HtmlSymbolType.Transition;[@];
Tag block - Gen<None> - 3 - (69:0,69)
Markup span - Gen<Markup> - [<p>] - SpanEditHandler;Accepts:None - (69:0,69) - Symbols:3
HtmlSymbolType.OpenAngle;[<];
HtmlSymbolType.Text;[p];
HtmlSymbolType.CloseAngle;[>];
Markup span - Gen<Markup> - [Foo #] - SpanEditHandler;Accepts:Any - (72:0,72) - Symbols:3
HtmlSymbolType.Text;[Foo];
HtmlSymbolType.WhiteSpace;[ ];
HtmlSymbolType.Text;[#];
Expression block - Gen<Expr> - 5 - (77:0,77)
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (77:0,77) - Symbols:1
CSharpSymbolType.Transition;[@];
Code span - Gen<Expr> - [item] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (78:0,78) - Symbols:1
CSharpSymbolType.Identifier;[item];
Tag block - Gen<None> - 4 - (82:0,82)
Markup span - Gen<Markup> - [</p>] - SpanEditHandler;Accepts:None - (82:0,82) - Symbols:4
HtmlSymbolType.OpenAngle;[<];
HtmlSymbolType.ForwardSlash;[/];
HtmlSymbolType.Text;[p];
HtmlSymbolType.CloseAngle;[>];
Code span - Gen<Stmt> - [); }] - SpanEditHandler;Accepts:None - (86:0,86) - Symbols:4
CSharpSymbolType.RightParenthesis;[)];
CSharpSymbolType.Semicolon;[;];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.RightBrace;[}];

View File

@ -0,0 +1,78 @@
Statement block - Gen<None> - 85 - (0:0,0)
MetaCode span - Gen<None> - [{] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1
CSharpSymbolType.LeftBrace;[{];
Code span - Gen<Stmt> - [ var foo = bar; Html.ExecuteTemplate(foo, ] - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[<null>];AtEOL - (1:0,1) - Symbols:17
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[var];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[foo];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Assign;[=];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[bar];
CSharpSymbolType.Semicolon;[;];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[Html];
CSharpSymbolType.Dot;[.];
CSharpSymbolType.Identifier;[ExecuteTemplate];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.Identifier;[foo];
CSharpSymbolType.Comma;[,];
CSharpSymbolType.WhiteSpace;[ ];
Template block - Gen<Template> - 18 - (43:0,43)
Markup block - Gen<None> - 18 - (43:0,43)
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (43:0,43) - Symbols:1
HtmlSymbolType.Transition;[@];
Tag block - Gen<None> - 3 - (44:0,44)
Markup span - Gen<Markup> - [<p>] - SpanEditHandler;Accepts:None - (44:0,44) - Symbols:3
HtmlSymbolType.OpenAngle;[<];
HtmlSymbolType.Text;[p];
HtmlSymbolType.CloseAngle;[>];
Markup span - Gen<Markup> - [Foo #] - SpanEditHandler;Accepts:Any - (47:0,47) - Symbols:3
HtmlSymbolType.Text;[Foo];
HtmlSymbolType.WhiteSpace;[ ];
HtmlSymbolType.Text;[#];
Expression block - Gen<Expr> - 5 - (52:0,52)
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (52:0,52) - Symbols:1
CSharpSymbolType.Transition;[@];
Code span - Gen<Expr> - [item] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (53:0,53) - Symbols:1
CSharpSymbolType.Identifier;[item];
Tag block - Gen<None> - 4 - (57:0,57)
Markup span - Gen<Markup> - [</p>] - SpanEditHandler;Accepts:None - (57:0,57) - Symbols:4
HtmlSymbolType.OpenAngle;[<];
HtmlSymbolType.ForwardSlash;[/];
HtmlSymbolType.Text;[p];
HtmlSymbolType.CloseAngle;[>];
Code span - Gen<Stmt> - [, ] - SpanEditHandler;Accepts:Any - (61:0,61) - Symbols:2
CSharpSymbolType.Comma;[,];
CSharpSymbolType.WhiteSpace;[ ];
Template block - Gen<Template> - 18 - (63:0,63)
Markup block - Gen<None> - 18 - (63:0,63)
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (63:0,63) - Symbols:1
HtmlSymbolType.Transition;[@];
Tag block - Gen<None> - 3 - (64:0,64)
Markup span - Gen<Markup> - [<p>] - SpanEditHandler;Accepts:None - (64:0,64) - Symbols:3
HtmlSymbolType.OpenAngle;[<];
HtmlSymbolType.Text;[p];
HtmlSymbolType.CloseAngle;[>];
Markup span - Gen<Markup> - [Foo #] - SpanEditHandler;Accepts:Any - (67:0,67) - Symbols:3
HtmlSymbolType.Text;[Foo];
HtmlSymbolType.WhiteSpace;[ ];
HtmlSymbolType.Text;[#];
Expression block - Gen<Expr> - 5 - (72:0,72)
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (72:0,72) - Symbols:1
CSharpSymbolType.Transition;[@];
Code span - Gen<Expr> - [item] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (73:0,73) - Symbols:1
CSharpSymbolType.Identifier;[item];
Tag block - Gen<None> - 4 - (77:0,77)
Markup span - Gen<Markup> - [</p>] - SpanEditHandler;Accepts:None - (77:0,77) - Symbols:4
HtmlSymbolType.OpenAngle;[<];
HtmlSymbolType.ForwardSlash;[/];
HtmlSymbolType.Text;[p];
HtmlSymbolType.CloseAngle;[>];
Code span - Gen<Stmt> - [); ] - SpanEditHandler;Accepts:Any - (81:0,81) - Symbols:3
CSharpSymbolType.RightParenthesis;[)];
CSharpSymbolType.Semicolon;[;];
CSharpSymbolType.WhiteSpace;[ ];
MetaCode span - Gen<None> - [}] - SpanEditHandler;Accepts:None - (84:0,84) - Symbols:1
CSharpSymbolType.RightBrace;[}];

View File

@ -0,0 +1 @@
(1,43): Error RZ2003: Inline markup blocks (@<p>Content</p>) cannot be nested. Only one level of inline markup is allowed.

View File

@ -0,0 +1,65 @@
Expression block - Gen<Expr> - 61 - (0:0,0)
Code span - Gen<Expr> - [Html.Repeat(10, ] - ImplicitExpressionEditHandler;Accepts:Any;ImplicitExpression[RTD];K14 - (0:0,0) - Symbols:7
CSharpSymbolType.Identifier;[Html];
CSharpSymbolType.Dot;[.];
CSharpSymbolType.Identifier;[Repeat];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.IntegerLiteral;[10];
CSharpSymbolType.Comma;[,];
CSharpSymbolType.WhiteSpace;[ ];
Template block - Gen<Template> - 44 - (16:0,16)
Markup block - Gen<None> - 44 - (16:0,16)
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (16:0,16) - Symbols:1
HtmlSymbolType.Transition;[@];
Tag block - Gen<None> - 3 - (17:0,17)
Markup span - Gen<Markup> - [<p>] - SpanEditHandler;Accepts:None - (17:0,17) - Symbols:3
HtmlSymbolType.OpenAngle;[<];
HtmlSymbolType.Text;[p];
HtmlSymbolType.CloseAngle;[>];
Markup span - Gen<Markup> - [Foo #] - SpanEditHandler;Accepts:Any - (20:0,20) - Symbols:3
HtmlSymbolType.Text;[Foo];
HtmlSymbolType.WhiteSpace;[ ];
HtmlSymbolType.Text;[#];
Expression block - Gen<Expr> - 31 - (25:0,25)
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (25:0,25) - Symbols:1
CSharpSymbolType.Transition;[@];
Code span - Gen<Expr> - [Html.Repeat(10, ] - ImplicitExpressionEditHandler;Accepts:Any;ImplicitExpression[RTD];K14 - (26:0,26) - Symbols:7
CSharpSymbolType.Identifier;[Html];
CSharpSymbolType.Dot;[.];
CSharpSymbolType.Identifier;[Repeat];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.IntegerLiteral;[10];
CSharpSymbolType.Comma;[,];
CSharpSymbolType.WhiteSpace;[ ];
Template block - Gen<Template> - 13 - (42:0,42)
Markup block - Gen<None> - 13 - (42:0,42)
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (42:0,42) - Symbols:1
HtmlSymbolType.Transition;[@];
Tag block - Gen<None> - 3 - (43:0,43)
Markup span - Gen<Markup> - [<p>] - SpanEditHandler;Accepts:None - (43:0,43) - Symbols:3
HtmlSymbolType.OpenAngle;[<];
HtmlSymbolType.Text;[p];
HtmlSymbolType.CloseAngle;[>];
Markup span - Gen<Markup> - [] - SpanEditHandler;Accepts:Any - (46:0,46) - Symbols:1
HtmlSymbolType.Unknown;[];
Expression block - Gen<Expr> - 5 - (46:0,46)
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (46:0,46) - Symbols:1
CSharpSymbolType.Transition;[@];
Code span - Gen<Expr> - [item] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (47:0,47) - Symbols:1
CSharpSymbolType.Identifier;[item];
Tag block - Gen<None> - 4 - (51:0,51)
Markup span - Gen<Markup> - [</p>] - SpanEditHandler;Accepts:None - (51:0,51) - Symbols:4
HtmlSymbolType.OpenAngle;[<];
HtmlSymbolType.ForwardSlash;[/];
HtmlSymbolType.Text;[p];
HtmlSymbolType.CloseAngle;[>];
Code span - Gen<Expr> - [)] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (55:0,55) - Symbols:1
CSharpSymbolType.RightParenthesis;[)];
Tag block - Gen<None> - 4 - (56:0,56)
Markup span - Gen<Markup> - [</p>] - SpanEditHandler;Accepts:None - (56:0,56) - Symbols:4
HtmlSymbolType.OpenAngle;[<];
HtmlSymbolType.ForwardSlash;[/];
HtmlSymbolType.Text;[p];
HtmlSymbolType.CloseAngle;[>];
Code span - Gen<Expr> - [)] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (60:0,60) - Symbols:1
CSharpSymbolType.RightParenthesis;[)];

View File

@ -0,0 +1 @@
(1,75): Error RZ2003: Inline markup blocks (@<p>Content</p>) cannot be nested. Only one level of inline markup is allowed.

View File

@ -0,0 +1,79 @@
Statement block - Gen<None> - 96 - (0:0,0)
Code span - Gen<Stmt> - [foreach(foo in Bar) { Html.ExecuteTemplate(foo, ] - SpanEditHandler;Accepts:Any - (0:0,0) - Symbols:18
CSharpSymbolType.Keyword;[foreach];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.Identifier;[foo];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Keyword;[in];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[Bar];
CSharpSymbolType.RightParenthesis;[)];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.LeftBrace;[{];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[Html];
CSharpSymbolType.Dot;[.];
CSharpSymbolType.Identifier;[ExecuteTemplate];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.Identifier;[foo];
CSharpSymbolType.Comma;[,];
CSharpSymbolType.WhiteSpace;[ ];
Template block - Gen<Template> - 44 - (48:0,48)
Markup block - Gen<None> - 44 - (48:0,48)
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (48:0,48) - Symbols:1
HtmlSymbolType.Transition;[@];
Tag block - Gen<None> - 3 - (49:0,49)
Markup span - Gen<Markup> - [<p>] - SpanEditHandler;Accepts:None - (49:0,49) - Symbols:3
HtmlSymbolType.OpenAngle;[<];
HtmlSymbolType.Text;[p];
HtmlSymbolType.CloseAngle;[>];
Markup span - Gen<Markup> - [Foo #] - SpanEditHandler;Accepts:Any - (52:0,52) - Symbols:3
HtmlSymbolType.Text;[Foo];
HtmlSymbolType.WhiteSpace;[ ];
HtmlSymbolType.Text;[#];
Expression block - Gen<Expr> - 31 - (57:0,57)
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (57:0,57) - Symbols:1
CSharpSymbolType.Transition;[@];
Code span - Gen<Expr> - [Html.Repeat(10, ] - ImplicitExpressionEditHandler;Accepts:Any;ImplicitExpression[RTD];K14 - (58:0,58) - Symbols:7
CSharpSymbolType.Identifier;[Html];
CSharpSymbolType.Dot;[.];
CSharpSymbolType.Identifier;[Repeat];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.IntegerLiteral;[10];
CSharpSymbolType.Comma;[,];
CSharpSymbolType.WhiteSpace;[ ];
Template block - Gen<Template> - 13 - (74:0,74)
Markup block - Gen<None> - 13 - (74:0,74)
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (74:0,74) - Symbols:1
HtmlSymbolType.Transition;[@];
Tag block - Gen<None> - 3 - (75:0,75)
Markup span - Gen<Markup> - [<p>] - SpanEditHandler;Accepts:None - (75:0,75) - Symbols:3
HtmlSymbolType.OpenAngle;[<];
HtmlSymbolType.Text;[p];
HtmlSymbolType.CloseAngle;[>];
Markup span - Gen<Markup> - [] - SpanEditHandler;Accepts:Any - (78:0,78) - Symbols:1
HtmlSymbolType.Unknown;[];
Expression block - Gen<Expr> - 5 - (78:0,78)
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (78:0,78) - Symbols:1
CSharpSymbolType.Transition;[@];
Code span - Gen<Expr> - [item] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (79:0,79) - Symbols:1
CSharpSymbolType.Identifier;[item];
Tag block - Gen<None> - 4 - (83:0,83)
Markup span - Gen<Markup> - [</p>] - SpanEditHandler;Accepts:None - (83:0,83) - Symbols:4
HtmlSymbolType.OpenAngle;[<];
HtmlSymbolType.ForwardSlash;[/];
HtmlSymbolType.Text;[p];
HtmlSymbolType.CloseAngle;[>];
Code span - Gen<Expr> - [)] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (87:0,87) - Symbols:1
CSharpSymbolType.RightParenthesis;[)];
Tag block - Gen<None> - 4 - (88:0,88)
Markup span - Gen<Markup> - [</p>] - SpanEditHandler;Accepts:None - (88:0,88) - Symbols:4
HtmlSymbolType.OpenAngle;[<];
HtmlSymbolType.ForwardSlash;[/];
HtmlSymbolType.Text;[p];
HtmlSymbolType.CloseAngle;[>];
Code span - Gen<Stmt> - [); }] - SpanEditHandler;Accepts:None - (92:0,92) - Symbols:4
CSharpSymbolType.RightParenthesis;[)];
CSharpSymbolType.Semicolon;[;];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.RightBrace;[}];

View File

@ -0,0 +1 @@
(1,70): Error RZ2003: Inline markup blocks (@<p>Content</p>) cannot be nested. Only one level of inline markup is allowed.

View File

@ -0,0 +1,81 @@
Statement block - Gen<None> - 91 - (0:0,0)
MetaCode span - Gen<None> - [{] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1
CSharpSymbolType.LeftBrace;[{];
Code span - Gen<Stmt> - [ var foo = bar; Html.ExecuteTemplate(foo, ] - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[<null>];AtEOL - (1:0,1) - Symbols:17
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[var];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[foo];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Assign;[=];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[bar];
CSharpSymbolType.Semicolon;[;];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[Html];
CSharpSymbolType.Dot;[.];
CSharpSymbolType.Identifier;[ExecuteTemplate];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.Identifier;[foo];
CSharpSymbolType.Comma;[,];
CSharpSymbolType.WhiteSpace;[ ];
Template block - Gen<Template> - 44 - (43:0,43)
Markup block - Gen<None> - 44 - (43:0,43)
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (43:0,43) - Symbols:1
HtmlSymbolType.Transition;[@];
Tag block - Gen<None> - 3 - (44:0,44)
Markup span - Gen<Markup> - [<p>] - SpanEditHandler;Accepts:None - (44:0,44) - Symbols:3
HtmlSymbolType.OpenAngle;[<];
HtmlSymbolType.Text;[p];
HtmlSymbolType.CloseAngle;[>];
Markup span - Gen<Markup> - [Foo #] - SpanEditHandler;Accepts:Any - (47:0,47) - Symbols:3
HtmlSymbolType.Text;[Foo];
HtmlSymbolType.WhiteSpace;[ ];
HtmlSymbolType.Text;[#];
Expression block - Gen<Expr> - 31 - (52:0,52)
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (52:0,52) - Symbols:1
CSharpSymbolType.Transition;[@];
Code span - Gen<Expr> - [Html.Repeat(10, ] - ImplicitExpressionEditHandler;Accepts:Any;ImplicitExpression[RTD];K14 - (53:0,53) - Symbols:7
CSharpSymbolType.Identifier;[Html];
CSharpSymbolType.Dot;[.];
CSharpSymbolType.Identifier;[Repeat];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.IntegerLiteral;[10];
CSharpSymbolType.Comma;[,];
CSharpSymbolType.WhiteSpace;[ ];
Template block - Gen<Template> - 13 - (69:0,69)
Markup block - Gen<None> - 13 - (69:0,69)
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (69:0,69) - Symbols:1
HtmlSymbolType.Transition;[@];
Tag block - Gen<None> - 3 - (70:0,70)
Markup span - Gen<Markup> - [<p>] - SpanEditHandler;Accepts:None - (70:0,70) - Symbols:3
HtmlSymbolType.OpenAngle;[<];
HtmlSymbolType.Text;[p];
HtmlSymbolType.CloseAngle;[>];
Markup span - Gen<Markup> - [] - SpanEditHandler;Accepts:Any - (73:0,73) - Symbols:1
HtmlSymbolType.Unknown;[];
Expression block - Gen<Expr> - 5 - (73:0,73)
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (73:0,73) - Symbols:1
CSharpSymbolType.Transition;[@];
Code span - Gen<Expr> - [item] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (74:0,74) - Symbols:1
CSharpSymbolType.Identifier;[item];
Tag block - Gen<None> - 4 - (78:0,78)
Markup span - Gen<Markup> - [</p>] - SpanEditHandler;Accepts:None - (78:0,78) - Symbols:4
HtmlSymbolType.OpenAngle;[<];
HtmlSymbolType.ForwardSlash;[/];
HtmlSymbolType.Text;[p];
HtmlSymbolType.CloseAngle;[>];
Code span - Gen<Expr> - [)] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (82:0,82) - Symbols:1
CSharpSymbolType.RightParenthesis;[)];
Tag block - Gen<None> - 4 - (83:0,83)
Markup span - Gen<Markup> - [</p>] - SpanEditHandler;Accepts:None - (83:0,83) - Symbols:4
HtmlSymbolType.OpenAngle;[<];
HtmlSymbolType.ForwardSlash;[/];
HtmlSymbolType.Text;[p];
HtmlSymbolType.CloseAngle;[>];
Code span - Gen<Stmt> - [); ] - SpanEditHandler;Accepts:Any - (87:0,87) - Symbols:3
CSharpSymbolType.RightParenthesis;[)];
CSharpSymbolType.Semicolon;[;];
CSharpSymbolType.WhiteSpace;[ ];
MetaCode span - Gen<None> - [}] - SpanEditHandler;Accepts:None - (90:0,90) - Symbols:1
CSharpSymbolType.RightBrace;[}];

View File

@ -0,0 +1,65 @@
Statement block - Gen<None> - 74 - (0:0,0)
MetaCode span - Gen<None> - [{] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1
CSharpSymbolType.LeftBrace;[{];
Code span - Gen<Stmt> - [ var foo = bar; Html.ExecuteTemplate(foo, ] - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[<null>];AtEOL - (1:0,1) - Symbols:17
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[var];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[foo];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Assign;[=];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[bar];
CSharpSymbolType.Semicolon;[;];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[Html];
CSharpSymbolType.Dot;[.];
CSharpSymbolType.Identifier;[ExecuteTemplate];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.Identifier;[foo];
CSharpSymbolType.Comma;[,];
CSharpSymbolType.WhiteSpace;[ ];
Template block - Gen<Template> - 27 - (43:0,43)
Markup block - Gen<None> - 27 - (43:0,43)
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (43:0,43) - Symbols:1
HtmlSymbolType.Transition;[@];
Tag block - Gen<None> - 12 - (44:0,44)
Markup span - Gen<Markup> - [<p] - SpanEditHandler;Accepts:Any - (44:0,44) - Symbols:2
HtmlSymbolType.OpenAngle;[<];
HtmlSymbolType.Text;[p];
Markup block - Gen<Attr:foo, foo='@(46:0,46),'@(54:0,54)> - 9 - (46:0,46)
Markup span - Gen<None> - [ foo='] - SpanEditHandler;Accepts:Any - (46:0,46) - Symbols:4
HtmlSymbolType.WhiteSpace;[ ];
HtmlSymbolType.Text;[foo];
HtmlSymbolType.Equals;[=];
HtmlSymbolType.SingleQuote;['];
Markup block - Gen<None> - 2 - (52:0,52)
Markup span - Gen<LitAttr:@(52:0,52)> - [@] - SpanEditHandler;Accepts:None - (52:0,52) - Symbols:1
HtmlSymbolType.Transition;[@];
Markup span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (53:0,53) - Symbols:1
HtmlSymbolType.Transition;[@];
Markup span - Gen<None> - ['] - SpanEditHandler;Accepts:Any - (54:0,54) - Symbols:1
HtmlSymbolType.SingleQuote;['];
Markup span - Gen<Markup> - [>] - SpanEditHandler;Accepts:None - (55:0,55) - Symbols:1
HtmlSymbolType.CloseAngle;[>];
Markup span - Gen<Markup> - [Foo #] - SpanEditHandler;Accepts:Any - (56:0,56) - Symbols:3
HtmlSymbolType.Text;[Foo];
HtmlSymbolType.WhiteSpace;[ ];
HtmlSymbolType.Text;[#];
Expression block - Gen<Expr> - 5 - (61:0,61)
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (61:0,61) - Symbols:1
CSharpSymbolType.Transition;[@];
Code span - Gen<Expr> - [item] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (62:0,62) - Symbols:1
CSharpSymbolType.Identifier;[item];
Tag block - Gen<None> - 4 - (66:0,66)
Markup span - Gen<Markup> - [</p>] - SpanEditHandler;Accepts:None - (66:0,66) - Symbols:4
HtmlSymbolType.OpenAngle;[<];
HtmlSymbolType.ForwardSlash;[/];
HtmlSymbolType.Text;[p];
HtmlSymbolType.CloseAngle;[>];
Code span - Gen<Stmt> - [); ] - SpanEditHandler;Accepts:Any - (70:0,70) - Symbols:3
CSharpSymbolType.RightParenthesis;[)];
CSharpSymbolType.Semicolon;[;];
CSharpSymbolType.WhiteSpace;[ ];
MetaCode span - Gen<None> - [}] - SpanEditHandler;Accepts:None - (73:0,73) - Symbols:1
CSharpSymbolType.RightBrace;[}];