void AttributeContents(ref VList<LNode> attrs)
{
TokenType la0, la1;
// line 913
Token attrTarget = default(Token);
// Line 914: ((TT.ContextualKeyword|TT.Id|TT.Return) TT.Colon ExprList / ExprList)
la0 = LA0;
if (la0 == TT.ContextualKeyword || la0 == TT.Id || la0 == TT.Return) {
la1 = LA(1);
if (la1 == TT.Colon) {
attrTarget = MatchAny();
Skip();
// line 915
VList<LNode> newAttrs = new VList<LNode>();
ExprList(ref newAttrs, allowTrailingComma: true, allowUnassignedVarDecl: true);
// line 918
var attrTargetId = F.Id(attrTarget);
for (int i = 0; i < newAttrs.Count; i++) {
var attr = newAttrs[i];
if ((!IsNamedArg(attr))) {
attr = SetOperatorStyle(F.Call(S.NamedArg, attrTargetId, attr, i == 0 ? attrTarget.StartIndex : attr.Range.StartIndex, attr.Range.EndIndex));
} else {
Error(attrTargetId = attrs[i].Args[0], "Syntax error: only one attribute target is allowed");
}
attrs.Add(attr);
}
} else
ExprList(ref attrs, allowTrailingComma: true, allowUnassignedVarDecl: true);
} else
ExprList(ref attrs, allowTrailingComma: true, allowUnassignedVarDecl: true);
}