@lcap/nasl-parser
Version:
Take Nasl text to Nasl AST with the help of generalized parsing.
73 lines • 3.11 kB
JavaScript
;
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.toNaslMatchCase = exports.toNaslMatchExpr = exports.toNaslMatchStmt = void 0;
const common_util_1 = require("./common-util");
const nasl = __importStar(require("@lcap/nasl"));
const toNaslMatchStmt = (expr, cases) => {
const nm = new nasl.Match({
expression: expr.nasl,
cases: cases.nasl.norm?.concat(cases.nasl.dft)
});
return (0, common_util_1.PackNaslAndCst)(nm, (0, common_util_1.TYPE)('MatchStmt', { expr: expr.cst, cases: cases.cst.norm?.concat(cases.cst.dft) }));
};
exports.toNaslMatchStmt = toNaslMatchStmt;
const toNaslMatchExpr = (expr, cases) => {
const nme = new nasl.Match({
expression: expr.nasl,
isExpression: true,
cases: cases.nasl
});
return (0, common_util_1.PackNaslAndCst)(nme, (0, common_util_1.TYPE)('MatchExpr', { expr: expr.cst, cases: cases.cst }));
};
exports.toNaslMatchExpr = toNaslMatchExpr;
const toNaslMatchCase = (body, pats) => {
const nmc = new nasl.MatchCase({
patterns: pats?.nasl,
body: body.nasl
});
return (0, common_util_1.PackNaslAndCst)(nmc, (0, common_util_1.TYPE)('MatchCase', { pats: pats?.cst, body: body.cst }));
};
exports.toNaslMatchCase = toNaslMatchCase;
// export const toNaslMatchCases = ([normal, def]) => {
// const naslCases = normal.map(c => c.nasl).concat(def.nasl);
// const cstCases = normal.map(c => c.cst).concat(def.cst);
// return PackNaslAndCst(naslCases, cstCases);
// }
// export const toNaslMatchNormalCase = (pats, expr) => {
// const nmc = new nasl.MatchCase({
// patterns: pats.nasl,
// body: expr.nasl
// })
// return PackNaslAndCst(nmc, TYPE('MatchNormalCase', { pats: pats.cst, expr: expr.cst }));
// }
// export const toNaslMatchDefaultCase = (expr) => {
// const nmc = new nasl.MatchCase({
// patterns: [],
// body: expr.nasl
// })
// return PackNaslAndCst(nmc, TYPE('MatchDefaultCase', { expr: expr.cst }));
// }
//# sourceMappingURL=to-nasl-match.js.map