'use strict';

var Stringifier = require('./stringifier');

module.exports = function (node, builder) {
  var str = new Stringifier(builder);
  str.stringify(node);
};
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0cmluZ2lmeS5lczYiXSwibmFtZXMiOlsiU3RyaW5naWZpZXIiLCJyZXF1aXJlIiwibW9kdWxlIiwiZXhwb3J0cyIsIm5vZGUiLCJidWlsZGVyIiwic3RyIiwic3RyaW5naWZ5Il0sIm1hcHBpbmdzIjoiOztBQUFBLElBQU1BLGNBQWNDLFFBQVEsZUFBUixDQUFwQjs7QUFFQUMsT0FBT0MsT0FBUCxHQUFpQixVQUFDQyxJQUFELEVBQU9DLE9BQVAsRUFBbUI7QUFDbEMsTUFBSUMsTUFBTSxJQUFJTixXQUFKLENBQWdCSyxPQUFoQixDQUFWO0FBQ0FDLE1BQUlDLFNBQUosQ0FBY0gsSUFBZDtBQUNELENBSEQiLCJmaWxlIjoic3RyaW5naWZ5LmpzIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgU3RyaW5naWZpZXIgPSByZXF1aXJlKCcuL3N0cmluZ2lmaWVyJylcblxubW9kdWxlLmV4cG9ydHMgPSAobm9kZSwgYnVpbGRlcikgPT4ge1xuICBsZXQgc3RyID0gbmV3IFN0cmluZ2lmaWVyKGJ1aWxkZXIpXG4gIHN0ci5zdHJpbmdpZnkobm9kZSlcbn1cbiJdfQ==