code: function children(node) {
      var result = [];
      for (var k in node) {
          if (!node.hasOwnProperty(k))
              continue;
          if (k[0] === '$')
              continue;
          var val = node[k];
          if (!val)
              continue;
          if (typeof val === "object" && typeof val.type === "string") {
              result.push(val);
          }
          else if (val instanceof Array) {
              for (var i=0; i<val.length; i++) {
                  var elm = val[i];
                  if (typeof elm === "object" && typeof elm.type === "string") {
                      result.push(elm);
                  }
              }
          } 
      }
      return result;
  }
docs: Returns the given AST node's immediate children as an array. Property names that start with $ are considered annotations, and will be ignored.