code: function(input) {
    this.doc = makeBlock('Document', 1, 1);
    this.tip = this.doc;
    this.refmap = {};
    var lines = input.replace(/\n$/,'').split(/\r\n|\n|\r/);
    var len = lines.length;
    for (var i = 0; i < len; i++) {
      this.incorporateLine(lines[i], i+1);
    }
    while (this.tip) {
      this.finalize(this.tip, len - 1);
    }
    this.processInlines(this.doc);
    return this.doc;
  }
docs: The main parsing function.  Returns a parsed document AST.