2023-12-18 13:12:25 +08:00
|
|
|
"use strict";
|
|
|
|
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
|
|
value: true
|
|
|
|
});
|
|
|
|
exports.program = exports.expression = exports.statement = exports.statements = exports.smart = void 0;
|
|
|
|
|
|
|
|
function makeStatementFormatter(fn) {
|
|
|
|
return {
|
2024-01-16 21:26:16 +08:00
|
|
|
code: function code(str) {
|
|
|
|
return "/* @babel/template */;\n" + str;
|
|
|
|
},
|
|
|
|
validate: function validate() {},
|
|
|
|
unwrap: function unwrap(ast) {
|
2023-12-18 13:12:25 +08:00
|
|
|
return fn(ast.program.body.slice(1));
|
|
|
|
}
|
|
|
|
};
|
|
|
|
}
|
|
|
|
|
2024-01-16 21:26:16 +08:00
|
|
|
var smart = makeStatementFormatter(function (body) {
|
2023-12-18 13:12:25 +08:00
|
|
|
if (body.length > 1) {
|
|
|
|
return body;
|
|
|
|
} else {
|
|
|
|
return body[0];
|
|
|
|
}
|
|
|
|
});
|
|
|
|
exports.smart = smart;
|
2024-01-16 21:26:16 +08:00
|
|
|
var statements = makeStatementFormatter(function (body) {
|
|
|
|
return body;
|
|
|
|
});
|
2023-12-18 13:12:25 +08:00
|
|
|
exports.statements = statements;
|
2024-01-16 21:26:16 +08:00
|
|
|
var statement = makeStatementFormatter(function (body) {
|
2023-12-18 13:12:25 +08:00
|
|
|
if (body.length === 0) {
|
|
|
|
throw new Error("Found nothing to return.");
|
|
|
|
}
|
|
|
|
|
|
|
|
if (body.length > 1) {
|
|
|
|
throw new Error("Found multiple statements but wanted one");
|
|
|
|
}
|
|
|
|
|
|
|
|
return body[0];
|
|
|
|
});
|
|
|
|
exports.statement = statement;
|
2024-01-16 21:26:16 +08:00
|
|
|
var expression = {
|
|
|
|
code: function code(str) {
|
|
|
|
return "(\n" + str + "\n)";
|
|
|
|
},
|
|
|
|
validate: function validate(_ref) {
|
|
|
|
var program = _ref.program;
|
|
|
|
|
2023-12-18 13:12:25 +08:00
|
|
|
if (program.body.length > 1) {
|
|
|
|
throw new Error("Found multiple statements but wanted one");
|
|
|
|
}
|
|
|
|
|
2024-01-16 21:26:16 +08:00
|
|
|
var expression = program.body[0].expression;
|
2023-12-18 13:12:25 +08:00
|
|
|
|
|
|
|
if (expression.start === 0) {
|
|
|
|
throw new Error("Parse result included parens.");
|
|
|
|
}
|
|
|
|
},
|
2024-01-16 21:26:16 +08:00
|
|
|
unwrap: function unwrap(ast) {
|
|
|
|
return ast.program.body[0].expression;
|
|
|
|
}
|
2023-12-18 13:12:25 +08:00
|
|
|
};
|
|
|
|
exports.expression = expression;
|
2024-01-16 21:26:16 +08:00
|
|
|
var program = {
|
|
|
|
code: function code(str) {
|
|
|
|
return str;
|
|
|
|
},
|
|
|
|
validate: function validate() {},
|
|
|
|
unwrap: function unwrap(ast) {
|
|
|
|
return ast.program;
|
|
|
|
}
|
2023-12-18 13:12:25 +08:00
|
|
|
};
|
|
|
|
exports.program = program;
|