62 lines
1.3 KiB
JavaScript
62 lines
1.3 KiB
JavaScript
"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();
|
|
} |