private Syntax.Expression ParseInitializer() { Syntax.Expression res = null; if (scan.Peek().type == Token.Type.LBRACE) { scan.Read(); res = new Syntax.Initializer(); Syntax.InitializerList init_list = null; while (true) { if ((init_list = ParseInitializerList()) != null) { ((Syntax.Initializer)res).AddInitializer(init_list); } if (scan.Peek().type != Token.Type.COMMA) { break; } scan.Read(); } CheckToken(scan.Peek(), Token.Type.RBRACE, true); } else { res = ParseAssignmentExpression(); } return(res); }
private Syntax.Expression ParseInitializer() { Syntax.Expression res = null; if (scan.Peek().type == Token.Type.LBRACE) { scan.Read(); res = new Syntax.Initializer(); Syntax.InitializerList init_list = null; while (true) { if ((init_list = ParseInitializerList()) != null) { ((Syntax.Initializer)res).AddInitializer(init_list); } if (scan.Peek().type != Token.Type.COMMA) { break; } scan.Read(); } CheckToken(scan.Peek(), Token.Type.RBRACE, true); } else { res = ParseAssignmentExpression(); } return res; }