UNPKG

dina-agi

Version:

DINA AGI - Dynamic Intelligence Network Architecture. 128 Autonomous Agents with Claude Flow, Swarms, and 300+ MCPs. True AGI System.

322 lines 11.1 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var parsimmon_1 = require("parsimmon"); var Syntax_1 = require("./Syntax"); var Syntax_2 = require("./Syntax"); var Utils_1 = require("../../../Utils"); var parsimmon_2 = require("parsimmon"); exports.defaultParserConf = { verbatimEnvironments: ["verbatim"] }; exports.takeTill = function (predicate) { return parsimmon_1.takeWhile(function (c) { return !predicate(c); }); }; var takeTillNewline = parsimmon_1.regexp(/[^\n]*/); var maybeNewline = parsimmon_1.regexp(/\n?/); var whitespace = parsimmon_1.regexp(/\s*/m); var commentSymbol = parsimmon_1.string("%"); function unsafeUnion(xs, ys) { var xn = xs.length; var yn = ys.length; if (xn === 0) { return ys; } else if (yn === 0) { return xs; } var obj = {}; for (var i = 0; i < xn; i++) { obj[xs[i]] = true; } for (var j = 0; j < yn; j++) { obj[ys[j]] = true; } var keys = []; for (var k in obj) { if (obj.hasOwnProperty(k)) { keys.push(k); } } keys.sort(); return keys; } function mergeReplies(result, last) { if (!last) { return result; } if (result.furthest > last.furthest) { return result; } var expected = (result.furthest === last.furthest) ? unsafeUnion(result.expected, last.expected) : last.expected; return { status: result.status, index: result.index, value: result.value, furthest: last.furthest, expected: expected }; } function manyTillAndMap(manyOf, till, map, initial) { return parsimmon_1.Parser(function (input, i) { var accum = initial; var j = 0; var result = undefined; while (i < input.length) { var endCodonFound = till._(input, i); if (endCodonFound.status) { i = Utils_1.mustBeNumber(endCodonFound.index); break; } var bigParse = manyOf._(input, i); if (isNotOk(bigParse)) return bigParse; result = Utils_1.mustNotBeUndefined(mergeReplies(bigParse, result)); if (isNotOk(result)) { return result; } j++; var value = Utils_1.mustNotBeUndefined(result.value); accum = map(accum, value); i = Utils_1.mustBeNumber(result.index); } var result2 = parsimmon_1.makeSuccess(i, accum); return mustBeOk(mergeReplies(result2, result)); }); } function manyTill(manyOf, till) { return manyTillAndMap(manyOf, till, function (a, el) { return a.concat([el]); }, []); } function token(parser) { return parser.skip(whitespace); } function word(str) { return parsimmon_1.string(str).thru(token); } var lbrace = "{"; var rbrace = "}"; var lbracket = "["; var rbracket = "]"; var comma = ","; var colon = ":"; var openingBracket = parsimmon_1.string(lbracket); var closingBracket = parsimmon_1.string(rbracket); var isClosingbracket = function (str) { return str === (rbracket); }; exports.notTextDefault = { "$": true, "%": true, "\\": true, "{": true, "]": true, "}": true }; exports.notTextMathMode = { "^": true, "_": true, "$": true, "%": true, "\\": true, "{": true, "]": true, "}": true }; exports.notTextMathModeAndNotClosingBracket = { "^": true, "_": true, "$": true, "%": true, "\\": true, "{": true, "}": true }; exports.notTextDefaultAndNotClosingBracket = { "$": true, "%": true, "\\": true, "{": true, "}": true }; function takeAtLeastOneTill(till) { return parsimmon_1.Parser(function (str, i) { var firstChar = str.charAt(i); if (i >= str.length || till(firstChar)) { return parsimmon_2.makeFailure(i, "text character"); } else { var strz = [firstChar]; i++; var char = str.charAt(i); while (!till(char) && i < str.length) { strz.push(char); i++; char = str.charAt(i); } return parsimmon_1.makeSuccess(i, strz.join("")); } }); } function textParser(notText) { return takeAtLeastOneTill(isNotText(notText)) .map(function (match) { return Syntax_2.newTeXRaw(match); }); } exports.textParser = textParser; var text = textParser(exports.notTextDefault); var text2 = textParser(exports.notTextDefaultAndNotClosingBracket); var spaces = parsimmon_1.regexp(/ */) .map(Syntax_2.newTeXRaw); exports.comment = commentSymbol .then(takeTillNewline) .skip(maybeNewline) .map(Syntax_1.newTeXComment); exports.specialCharsDefault = { "'": true, "(": true, ")": true, ",": true, ".": true, "-": true, '"': true, "!": true, "^": true, "$": true, "&": true, "#": true, "{": true, "}": true, "%": true, "~": true, "|": true, "/": true, ":": true, ";": true, "=": true, "[": true, "]": true, "\\": true, "`": true, " ": true }; function isSpecialCharacter(char, specialChars) { var chars = specialChars === undefined ? exports.specialCharsDefault : specialChars; return chars.hasOwnProperty(char); } exports.isSpecialCharacter = isSpecialCharacter; function isNotText(notText) { return function (char) { return notText.hasOwnProperty(char); }; } exports.isNotText = isNotText; exports.mathSymbol = parsimmon_1.string("$"); exports.commandSymbol = parsimmon_1.string("\\"); function latexBlockParser(mode, sub, sup) { if (sub === void 0) { sub = "_"; } if (sup === void 0) { sup = "^"; } switch (mode) { case "Math": return exports.latexBlockParserMathMode(sub, sup); default: return exports.latexBlockParserTextMode; } } exports.latexBlockParser = latexBlockParser; exports.latexBlockParserTextMode = parsimmon_1.lazy(function () { return parsimmon_1.alt(parsimmon_1.alt(textParser(exports.notTextDefault), exports.dolMath, exports.comment, textParser(exports.notTextDefaultAndNotClosingBracket), exports.environment, command("Paragraph"))); }); exports.latexBlockParserMathMode = function (sub, sup) { return parsimmon_1.lazy(function () { return parsimmon_1.alt(parsimmon_1.alt(shiftedScript("Math", sub, sup), textParser(exports.notTextMathMode), exports.dolMath, exports.comment, textParser(exports.notTextMathModeAndNotClosingBracket), exports.environment, command("Math"))); }); }; exports.latexParser = exports.latexBlockParserTextMode.many(); var anonym = parsimmon_1.string(lbrace) .then(exports.latexBlockParserTextMode.many()) .skip(parsimmon_1.string(rbrace)); exports.env = parsimmon_1.Parser(function (input, i) { var beginFound = parsimmon_1.string("\\begin") .then(parsimmon_1.string(lbrace)) .then(spaces) .then(parsimmon_1.regexp(/[a-zA-Z]+/)) .skip(spaces) .skip(parsimmon_1.string(rbrace)) ._(input, i); if (isNotOk(beginFound)) return beginFound; i = Utils_1.mustBeNumber(beginFound.index); var envName = beginFound.value; return manyTill(exports.latexBlockParserTextMode, parsimmon_1.string("\\end") .then(parsimmon_1.string(lbrace)) .then(spaces) .then(parsimmon_1.string(envName)) .then(spaces) .then(parsimmon_1.string(rbrace))).map(function (latex) { return Syntax_1.newTeXEnv(envName, latex); })._(input, i); }); exports.environment = parsimmon_1.alt(anonym, exports.env); exports.specialChar = parsimmon_1.test(isSpecialCharacter); function isUppercaseAlph(c) { return c >= "A" && c <= "Z"; } function isLowercaseAlph(c) { return c >= "a" && c <= "z"; } exports.endCmd = function (c) { return !isLowercaseAlph(c) && !isUppercaseAlph(c); }; var openingBrace = parsimmon_1.string("{"); var closingBrace = parsimmon_1.string("}"); var isClosingBrace = function (str) { return str === ("}"); }; function fixArg(mode) { return openingBrace .then(manyTill(latexBlockParser(mode, "_"), closingBrace)).map(Syntax_1.newFixArg); } exports.fixArg = fixArg; function optArg(mode) { return openingBracket .then(manyTill(latexBlockParser(mode), closingBracket)) .map(Syntax_1.newOptArg); } exports.optArg = optArg; function cmdArg(mode) { return parsimmon_1.alt(fixArg(mode), optArg(mode)); } exports.cmdArg = cmdArg; function cmdArgs(mode) { return parsimmon_1.alt(parsimmon_1.string("{}").map(function () { return []; }), cmdArg(mode).map(function (s) { return s; }).atLeast(0)).map(function (e) { return e; }); } exports.cmdArgs = cmdArgs; function command(mode) { return parsimmon_1.seqMap(exports.commandSymbol, parsimmon_1.alt(exports.specialChar, exports.takeTill(exports.endCmd)), cmdArgs(mode), function (ignored, name, argz) { return argz !== undefined ? Syntax_1.newTeXComm.apply(void 0, [name].concat(argz)) : Syntax_1.newTeXComm(name); }).map(function (res) { return res; }); } exports.command = command; exports.subOrSuperscriptSymbolParser = function (subscriptSymbol, superscriptSymbol) { return parsimmon_1.alt(parsimmon_1.string(subscriptSymbol), parsimmon_1.string(superscriptSymbol)).map(function (parsedStr) { return (parsedStr === subscriptSymbol ? Syntax_1.SubOrSuperSymbol.SUB : Syntax_1.SubOrSuperSymbol.SUP); }); }; function shiftedScript(mode, sub, sup) { return parsimmon_1.seqMap(exports.subOrSuperscriptSymbolParser(sub, sup), cmdArgs(mode), function (symbol, argz) { return Syntax_1.newSubOrSuperScript(symbol, symbol === Syntax_1.SubOrSuperSymbol.SUB ? sub : sup, argz); }).map(function (res) { return res; }); } exports.shiftedScript = shiftedScript; exports.dolMath = math(); function math(mathType, sMath, eMath) { if (mathType === void 0) { mathType = "Dollar"; } if (sMath === void 0) { sMath = "$"; } if (eMath === void 0) { eMath = "$"; } return parsimmon_1.string(sMath) .then(latexBlockParser("Math", "_") .many() .map(function (str) { return Syntax_1.newTeXMath(mathType, sMath, eMath, str); })) .skip(parsimmon_1.string(eMath)); } function isOk(parse) { return parse !== undefined && parse.status === true; } exports.isOk = isOk; function isNotOk(parse) { return parse !== undefined && parse.status === false; } exports.isNotOk = isNotOk; function mustBeOk(parse) { if (!isOk(parse)) throw new Error("Expected parse to be success: " + JSON.stringify(parse)); return parse; } exports.mustBeOk = mustBeOk; //# sourceMappingURL=Parser.js.map