{"version":3,"file":"listings-cb494lgp.cjs","names":[],"sources":["../package/listings/libs/argument-parser.ts","../package/listings/provides.ts"],"sourcesContent":["import { arg } from \"@unified-latex/unified-latex-builder\";\nimport { Argument, ArgumentParser } from \"@unified-latex/unified-latex-types\";\nimport { parse as parseArgspec } from \"@unified-latex/unified-latex-util-argspec\";\nimport { Node } from \"@unified-latex/unified-latex-util-argspec/libs/argspec-types\";\nimport { gobbleSingleArgument } from \"@unified-latex/unified-latex-util-arguments\";\nimport { match } from \"@unified-latex/unified-latex-util-match\";\n\nconst argSpecM = parseArgspec(\"m\")[0];\nconst argSpecO = parseArgspec(\"o\")[0];\nconst argSpecRDelim: { [delim: string]: Node } = {};\n\n/**\n * This argument parser parses arguments in the form of\n * - [⟨key=value list⟩]⟨character⟩⟨source code⟩⟨same character⟩\n * - [⟨key=value list⟩]{⟨source code⟩}\n */\nexport const argumentParser: ArgumentParser = (nodes, startPos) => {\n    const { argument: optionalArg, nodesRemoved: optionalArgNodesRemoved } =\n        gobbleSingleArgument(nodes, argSpecO, startPos);\n\n    let codeArg: Argument | Argument[] | null = null;\n    let codeArgNodesRemoved: number = 0;\n    const nextNode = nodes[startPos];\n    if (match.group(nextNode)) {\n        const mandatoryArg = gobbleSingleArgument(nodes, argSpecM, startPos);\n        codeArg = mandatoryArg.argument;\n        codeArgNodesRemoved = mandatoryArg.nodesRemoved;\n    } else if (match.string(nextNode) && nextNode.content.length === 1) {\n        const delim = nextNode.content;\n        argSpecRDelim[delim] =\n            argSpecRDelim[delim] || parseArgspec(`r${delim}${delim}`)[0];\n        const delimArg = gobbleSingleArgument(\n            nodes,\n            argSpecRDelim[delim],\n            startPos\n        );\n        codeArg = delimArg.argument;\n        codeArgNodesRemoved = delimArg.nodesRemoved;\n    }\n\n    return {\n        args: [optionalArg || arg(null), codeArg || arg(null)],\n        nodesRemoved: optionalArgNodesRemoved + codeArgNodesRemoved,\n    };\n};\n","import {\n    MacroInfoRecord,\n    EnvInfoRecord,\n} from \"@unified-latex/unified-latex-types\";\nimport { argumentParser } from \"./libs/argument-parser\";\n\nexport const macros: MacroInfoRecord = {\n    lstset: { signature: \"m\" },\n    lstinline: { argumentParser: argumentParser },\n    lstinputlisting: { signature: \"o m\" },\n    lstdefinestyle: { signature: \"m m\" },\n    lstnewenvironment: { signature: \"m o o m m\" },\n    lstMakeShortInline: { signature: \"o m\" },\n    lstDeleteShortInline: { signature: \"m\" },\n    lstdefineformat: { signature: \"m m\" },\n    lstdefinelanguage: { signature: \"o m o m o\" },\n    lstalias: { signature: \"o m o m\" },\n    lstloadlanguages: { signature: \"m\" },\n};\n\nexport const environments: EnvInfoRecord = {\n    lstlisting: { signature: \"o\", renderInfo: { pgfkeysArgs: true } },\n};\n"],"mappings":";;;;;;AAOA,IAAM,YAAA,GAAA,0CAAA,OAAwB,IAAI,CAAC;AACnC,IAAM,YAAA,GAAA,0CAAA,OAAwB,IAAI,CAAC;AACnC,IAAM,gBAA2C,EAAE;;;;;;AAOnD,IAAa,kBAAkC,OAAO,aAAa;CAC/D,MAAM,EAAE,UAAU,aAAa,cAAc,6BAAA,GAAA,4CAAA,sBACpB,OAAO,UAAU,SAAS;CAEnD,IAAI,UAAwC;CAC5C,IAAI,sBAA8B;CAClC,MAAM,WAAW,MAAM;AACvB,KAAI,wCAAA,MAAM,MAAM,SAAS,EAAE;EACvB,MAAM,gBAAA,GAAA,4CAAA,sBAAoC,OAAO,UAAU,SAAS;AACpE,YAAU,aAAa;AACvB,wBAAsB,aAAa;YAC5B,wCAAA,MAAM,OAAO,SAAS,IAAI,SAAS,QAAQ,WAAW,GAAG;EAChE,MAAM,QAAQ,SAAS;AACvB,gBAAc,SACV,cAAc,WAAA,GAAA,0CAAA,OAAuB,IAAI,QAAQ,QAAQ,CAAC;EAC9D,MAAM,YAAA,GAAA,4CAAA,sBACF,OACA,cAAc,QACd,SACH;AACD,YAAU,SAAS;AACnB,wBAAsB,SAAS;;AAGnC,QAAO;EACH,MAAM,CAAC,gBAAA,GAAA,qCAAA,KAAmB,KAAK,EAAE,YAAA,GAAA,qCAAA,KAAe,KAAK,CAAC;EACtD,cAAc,0BAA0B;EAC3C;;;;ACrCL,IAAa,SAA0B;CACnC,QAAQ,EAAE,WAAW,KAAK;CAC1B,WAAW,EAAkB,gBAAgB;CAC7C,iBAAiB,EAAE,WAAW,OAAO;CACrC,gBAAgB,EAAE,WAAW,OAAO;CACpC,mBAAmB,EAAE,WAAW,aAAa;CAC7C,oBAAoB,EAAE,WAAW,OAAO;CACxC,sBAAsB,EAAE,WAAW,KAAK;CACxC,iBAAiB,EAAE,WAAW,OAAO;CACrC,mBAAmB,EAAE,WAAW,aAAa;CAC7C,UAAU,EAAE,WAAW,WAAW;CAClC,kBAAkB,EAAE,WAAW,KAAK;CACvC;AAED,IAAa,eAA8B,EACvC,YAAY;CAAE,WAAW;CAAK,YAAY,EAAE,aAAa,MAAM;CAAE,EACpE"}