"use strict"; exports.__esModule = true; exports.File = File; exports.Program = Program; exports.BlockStatement = BlockStatement; exports.Noop = Noop; exports.Directive = Directive; var _types = require("./types"); Object.defineProperty(exports, "DirectiveLiteral", { enumerable: true, get: function get() { return _types.StringLiteral; } }); function File(node) { this.print(node.program, node); } function Program(node) { this.printInnerComments(node, false); this.printSequence(node.directives, node); if (node.directives && node.directives.length) this.newline(); this.printSequence(node.body, node); } function BlockStatement(node) { this.token("{"); this.printInnerComments(node); var hasDirectives = node.directives && node.directives.length; if (node.body.length || hasDirectives) { this.newline(); this.printSequence(node.directives, node, { indent: true }); if (hasDirectives) this.newline(); this.printSequence(node.body, node, { indent: true }); this.removeTrailingNewline(); this.source("end", node.loc); if (!this.endsWith("\n")) this.newline(); this.rightBrace(); } else { this.source("end", node.loc); this.token("}"); } } function Noop() {} function Directive(node) { this.print(node.value, node); this.semicolon(); }