LNode InitializerExpr()
{
TokenType la0, la2;
Token eq = default(Token);
LNode result = default(LNode);
// Line 2101: ( TT.LBrace TT.RBrace / TT.LBrack TT.RBrack TT.Set ExprStart / ExprOpt )
la0 = LA0;
if (la0 == TT.LBrace) {
la2 = LA(2);
if (la2 == (TokenType) EOF || la2 == TT.Comma) {
var lb = MatchAny();
var rb = Match((int) TT.RBrace);
// line 2103
var exprs = InitializerListInside(lb);
result = F.Call(S.Braces, exprs, lb.StartIndex, rb.EndIndex, lb.StartIndex, lb.EndIndex, NodeStyle.Expression);
} else
result = ExprOpt(false);
} else if (la0 == TT.LBrack) {
la2 = LA(2);
if (la2 == TT.Set) {
var lb = MatchAny();
Match((int) TT.RBrack);
eq = MatchAny();
var e = ExprStart(false);
// line 2107
result = F.Call(S.InitializerAssignment, ExprListInside(lb).Add(e), lb.StartIndex, e.Range.EndIndex, eq.StartIndex, eq.EndIndex);
} else
result = ExprOpt(false);
} else
result = ExprOpt(false);
return result;
}
static readonly HashSet<int> InitializerList_set0 = NewSet((int) TT.Add, (int) TT.AndBits, (int) TT.At, (int) TT.AttrKeyword, (int) TT.Base, (int) TT.Break, (int) TT.Checked, (int) TT.Comma, (int) TT.ContextualKeyword, (int) TT.Continue, (int) TT.Default, (int) TT.Delegate, (int) TT.Dot, (int) TT.DotDot, (int) TT.Forward, (int) TT.Goto, (int) TT.Id, (int) TT.IncDec, (int) TT.Is, (int) TT.LBrace, (int) TT.LBrack, (int) TT.Literal, (int) TT.LParen, (int) TT.Mul, (int) TT.New, (int) TT.Not, (int) TT.NotBits, (int) TT.Operator, (int) TT.Power, (int) TT.Return, (int) TT.Sizeof, (int) TT.Sub, (int) TT.Substitute, (int) TT.Switch, (int) TT.This, (int) TT.Throw, (int) TT.TypeKeyword, (int) TT.Typeof, (int) TT.Unchecked);