LNode PrimaryExpr_NewStyleCast(LNode e)
{
TokenType la0;
Token op = default(Token);
var lp = MatchAny();
var rp = MatchAny();
Down(lp);
Symbol kind;
var attrs = VList<LNode>.Empty;
// Line 585: ( TT.PtrArrow | TT.As | TT.Using )
la0 = LA0;
if (la0 == TT.PtrArrow) {
op = MatchAny();
// line 585
kind = S.Cast;
} else if (la0 == TT.As) {
op = MatchAny();
// line 586
kind = S.As;
} else {
op = Match((int) TT.Using);
// line 587
kind = S.UsingCast;
}
NormalAttributes(ref attrs);
AttributeKeywords(ref attrs);
var type = DataType();
Match((int) EOF);
// line 592
type = type.PlusAttrs(attrs);
return Up(SetAlternateStyle(SetOperatorStyle(F.Call(kind, e, type, e.Range.StartIndex, rp.EndIndex, op.StartIndex, op.EndIndex))));
}