code: func parseList(parser *Parser, isConst bool) (*ast.ListValue, error) {
  	start := parser.Token.Start
  	var item parseFn = parseValueValue
  	if isConst {
  		item = parseConstValue
  	}
  	values := []ast.Value{}
  	if iValues, err := reverse(parser,
  		lexer.BRACKET_L, item, lexer.BRACKET_R,
  		false,
  	); err != nil {
  		return nil, err
  	} else {
  		for _, iValue := range iValues {
  			values = append(values, iValue.(ast.Value))
  		}
  	}
  	return ast.NewListValue(&ast.ListValue{
  		Values: values,
  		Loc:    loc(parser, start),
  	}), nil
  }
docs: /**
   * ListValue[Const] :
   *   - [ ]
   *   - [ Value[?Const]+ ]
   */