private StatePropertySyntax ParseStateProperty()
{
var name = Match(SyntaxKind.IdentifierToken);
ArrayRankSpecifierSyntax arrayRankSpecifier = null;
if (Current.Kind == SyntaxKind.OpenBracketToken)
arrayRankSpecifier = ParseArrayRankSpecifier(true);
var equals = Match(SyntaxKind.EqualsToken);
var lessThan = NextTokenIf(SyntaxKind.LessThanToken);
_allowGreaterThanTokenAroundRhsExpression = true;
_allowLinearAndPointAsIdentifiers = true;
ExpressionSyntax value;
try
{
value = ParseExpression();
}
finally
{
_allowLinearAndPointAsIdentifiers = false;
_allowGreaterThanTokenAroundRhsExpression = false;
}
var greaterThan = NextTokenIf(SyntaxKind.GreaterThanToken);
var semicolon = Match(SyntaxKind.SemiToken);
return new StatePropertySyntax(name, arrayRankSpecifier, equals, lessThan, value, greaterThan, semicolon);
}