code: function AstNode(node, parent) {
    /* {AstNode} Parent of this node.*/
    this.parent = parent || null;
    /* {AstNode} Previous sibling of this node. */
    this.prev = null;
    /* {AstNode} Next sibling of this node. */
    this.next = null;
    this._items = {};
    var self = this;
    Object.keys(node).forEach(function (key, i) {
      self[key] = node[key];
    });
  }
docs: /*
  Creates an AST node from a plain object.
  
  @class Represents an AST node.
  
  @param {Object} node
  Plain object to use as template for node.
  @param {AstNode} [parent]
  Parent node of this node.
  
  @example
  var node = new AstNode({type: 'string', value: 'Hello, world!'});