code: function readAccessor(walker) {
      var firstSeg = readIdent(walker);
      switch (firstSeg) {
          case 'true':
          case 'false':
              return {
                  type: ExprType.BOOL,
                  value: firstSeg === 'true'
              };
      }
  
      var result = createAccessor([
          {
              type: ExprType.STRING,
              value: firstSeg
          }
      ]);
  
      /* eslint-disable no-constant-condition */
      accessorLoop: while (1) {
      /* eslint-enable no-constant-condition */
  
          switch (walker.currentCode()) {
              case 46: // .
                  walker.go(1);
  
                  // ident as string
                  result.paths.push({
                      type: ExprType.STRING,
                      value: readIdent(walker)
                  });
                  break;
  
              case 91: // [
                  walker.go(1);
                  result.paths.push(readTertiaryExpr(walker));
                  walker.goUntil(93); // ]
                  break;
  
              default:
                  break accessorLoop;
          }
      }
  
      return result;
  }
docs: 读取访问表达式
  
  @param {Walker} walker 源码读取对象
  @return {Object}