mirror of https://github.com/jkjoy/sunpeiwen.git
94 lines
2.7 KiB
JavaScript
94 lines
2.7 KiB
JavaScript
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
exports.BlockStatement = BlockStatement;
|
|
exports.Directive = Directive;
|
|
exports.DirectiveLiteral = DirectiveLiteral;
|
|
exports.File = File;
|
|
exports.InterpreterDirective = InterpreterDirective;
|
|
exports.Placeholder = Placeholder;
|
|
exports.Program = Program;
|
|
function File(node) {
|
|
if (node.program) {
|
|
this.print(node.program.interpreter, node);
|
|
}
|
|
this.print(node.program, node);
|
|
}
|
|
function Program(node) {
|
|
var _node$directives;
|
|
this.noIndentInnerCommentsHere();
|
|
this.printInnerComments();
|
|
const directivesLen = (_node$directives = node.directives) == null ? void 0 : _node$directives.length;
|
|
if (directivesLen) {
|
|
var _node$directives$trai;
|
|
const newline = node.body.length ? 2 : 1;
|
|
this.printSequence(node.directives, node, {
|
|
trailingCommentsLineOffset: newline
|
|
});
|
|
if (!((_node$directives$trai = node.directives[directivesLen - 1].trailingComments) != null && _node$directives$trai.length)) {
|
|
this.newline(newline);
|
|
}
|
|
}
|
|
this.printSequence(node.body, node);
|
|
}
|
|
function BlockStatement(node) {
|
|
var _node$directives2;
|
|
this.tokenChar(123);
|
|
const directivesLen = (_node$directives2 = node.directives) == null ? void 0 : _node$directives2.length;
|
|
if (directivesLen) {
|
|
var _node$directives$trai2;
|
|
const newline = node.body.length ? 2 : 1;
|
|
this.printSequence(node.directives, node, {
|
|
indent: true,
|
|
trailingCommentsLineOffset: newline
|
|
});
|
|
if (!((_node$directives$trai2 = node.directives[directivesLen - 1].trailingComments) != null && _node$directives$trai2.length)) {
|
|
this.newline(newline);
|
|
}
|
|
}
|
|
this.printSequence(node.body, node, {
|
|
indent: true
|
|
});
|
|
this.sourceWithOffset("end", node.loc, 0, -1);
|
|
this.rightBrace();
|
|
}
|
|
function Directive(node) {
|
|
this.print(node.value, node);
|
|
this.semicolon();
|
|
}
|
|
const unescapedSingleQuoteRE = /(?:^|[^\\])(?:\\\\)*'/;
|
|
const unescapedDoubleQuoteRE = /(?:^|[^\\])(?:\\\\)*"/;
|
|
function DirectiveLiteral(node) {
|
|
const raw = this.getPossibleRaw(node);
|
|
if (!this.format.minified && raw !== undefined) {
|
|
this.token(raw);
|
|
return;
|
|
}
|
|
const {
|
|
value
|
|
} = node;
|
|
if (!unescapedDoubleQuoteRE.test(value)) {
|
|
this.token(`"${value}"`);
|
|
} else if (!unescapedSingleQuoteRE.test(value)) {
|
|
this.token(`'${value}'`);
|
|
} else {
|
|
throw new Error("Malformed AST: it is not possible to print a directive containing" + " both unescaped single and double quotes.");
|
|
}
|
|
}
|
|
function InterpreterDirective(node) {
|
|
this.token(`#!${node.value}`);
|
|
this.newline(1, true);
|
|
}
|
|
function Placeholder(node) {
|
|
this.token("%%");
|
|
this.print(node.name);
|
|
this.token("%%");
|
|
if (node.expectedNode === "Statement") {
|
|
this.semicolon();
|
|
}
|
|
}
|
|
|
|
//# sourceMappingURL=base.js.map
|