end-of-semester-report/node_modules/@unified-latex/unified-latex-ctan/parser-9Q3EtimU.cjs.map
2025-05-14 16:14:35 +07:00

1 line
35 KiB
Plaintext

{"version":3,"file":"parser-9Q3EtimU.cjs","sources":["../package/tikz/libs/tikz-command-argument-parser.ts","../package/tikz/provides.ts","../package/tikz/libs/parser.ts"],"sourcesContent":["import { arg } from \"@unified-latex/unified-latex-builder\";\nimport * as Ast from \"@unified-latex/unified-latex-types\";\nimport {\n ArgSpecAst as ArgSpec,\n parse as parseArgspec,\n} from \"@unified-latex/unified-latex-util-argspec\";\nimport { Argument, ArgumentParser } from \"@unified-latex/unified-latex-types\";\nimport { gobbleSingleArgument } from \"@unified-latex/unified-latex-util-arguments\";\nimport { match } from \"@unified-latex/unified-latex-util-match\";\nimport { scan } from \"@unified-latex/unified-latex-util-scan\";\nimport { trim } from \"@unified-latex/unified-latex-util-trim\";\nimport { printRaw } from \"@unified-latex/unified-latex-util-print-raw\";\n\nconst OPTIONAL_ARGUMENT_ARG_SPEC = parseArgspec(\"o\")[0];\n\nfunction blankArg() {\n return arg([], { openMark: \"\", closeMark: \"\" });\n}\n\n/**\n * Find the arguments of a tikz command. Many tikz commands accept either\n * the a group as their only argument, or they scan their arguments until the first\n * `;` is found.\n *\n * This behavior cannot be achieved via a standard xparse spec.\n */\nexport const tikzCommandArgumentParser: ArgumentParser = (nodes, startPos) => {\n const origStartPos = startPos;\n let pos = startPos;\n let nodesRemoved = 0;\n\n const cursorPosAfterAnimations = eatAllAnimationSpecs(nodes, pos);\n let animationArg = blankArg();\n if (cursorPosAfterAnimations !== pos) {\n const argContent = nodes.splice(pos, cursorPosAfterAnimations - pos);\n trim(argContent);\n animationArg = arg(argContent, {\n openMark: \" \",\n closeMark: \" \",\n });\n }\n nodesRemoved += cursorPosAfterAnimations - pos;\n\n const {\n argument: _optionalArgument,\n nodesRemoved: optionalArgumentNodesRemoved,\n } = gobbleSingleArgument(nodes, OPTIONAL_ARGUMENT_ARG_SPEC, pos) as {\n argument: Argument;\n nodesRemoved: number;\n };\n nodesRemoved += optionalArgumentNodesRemoved;\n const optionalArg = _optionalArgument || blankArg();\n\n // Eat whitespace\n while (match.whitespace(nodes[pos])) {\n pos++;\n }\n const firstNode = nodes[pos];\n\n // If we're past the end of the array, give up.\n if (!firstNode) {\n return {\n args: [animationArg, optionalArg, blankArg()],\n nodesRemoved: 0,\n };\n }\n\n // If we're a group, grab the contents and call it good.\n if (match.group(firstNode)) {\n const args = [animationArg, optionalArg, arg(firstNode.content)];\n nodes.splice(origStartPos, pos - origStartPos + 1);\n return { args, nodesRemoved: pos - origStartPos + 1 + nodesRemoved };\n }\n\n // No group, so scan for a semicolon.\n const semicolonPosition = scan(nodes, \";\", { startIndex: pos });\n if (semicolonPosition != null) {\n const argNodes = nodes.splice(\n origStartPos,\n semicolonPosition - origStartPos + 1\n );\n trim(argNodes);\n const args = [animationArg, optionalArg, arg(argNodes)];\n return {\n args,\n nodesRemoved: origStartPos - semicolonPosition + 1 + nodesRemoved,\n };\n }\n\n // If there was no semicolon, give up.\n return {\n args: [animationArg, optionalArg, blankArg()],\n nodesRemoved: 0,\n };\n};\n\n/**\n * Find the next index after all animation specs. If no animation specs are present,\n * return `startPos`.\n *\n * An animation spec looks like\n * ```\n * :rotate = { 0s=\"0\", 2s=\"90\", begin on=click }\n * ```\n * Any number can be listed. They start with a colon and have an equals sign followed by a group.\n */\nfunction eatAllAnimationSpecs(nodes: Ast.Node[], startPos: number): number {\n const colonPos = scan(nodes, \":\", {\n startIndex: startPos,\n allowSubstringMatches: true,\n onlySkipWhitespaceAndComments: true,\n });\n\n if (!colonPos) {\n return startPos;\n }\n\n let lastMatchPos = startPos;\n let i = colonPos + 1;\n for (; i < nodes.length; i++) {\n const node = nodes[i];\n if (match.string(node, \"[\")) {\n // XXX As per the tikz manual, we stop scanning if we find an open square brace.\n break;\n }\n if (match.string(node, \"=\")) {\n i++;\n // Look for a group next\n while (match.whitespace(nodes[i]) || match.comment(nodes[i])) {\n i++;\n }\n if (!match.group(nodes[i])) {\n break;\n }\n // We have a match!\n lastMatchPos = i + 1;\n\n // Start the process again\n const colonPos = scan(nodes, \":\", {\n startIndex: lastMatchPos,\n allowSubstringMatches: true,\n onlySkipWhitespaceAndComments: true,\n });\n if (colonPos == null) {\n break;\n }\n i = colonPos + 1;\n }\n }\n\n return lastMatchPos;\n}\n","import {\n MacroInfoRecord,\n EnvInfoRecord,\n} from \"@unified-latex/unified-latex-types\";\nimport * as Ast from \"@unified-latex/unified-latex-types\";\nimport { attachMacroArgsInArray } from \"@unified-latex/unified-latex-util-arguments\";\nimport { tikzCommandArgumentParser } from \"./libs/tikz-command-argument-parser\";\n\nexport const macros: MacroInfoRecord = {\n pgfkeys: {\n signature: \"m\",\n renderInfo: { breakAround: true, pgfkeysArgs: true },\n },\n tikzoption: {\n signature: \"m\",\n renderInfo: { breakAround: true, pgfkeysArgs: true },\n },\n tikzstyle: {\n signature: \"m\",\n renderInfo: { breakAround: true, pgfkeysArgs: true },\n },\n usetikzlibrary: {\n signature: \"m\",\n renderInfo: { breakAround: true, pgfkeysArgs: true },\n },\n usepgfmodule: { signature: \"m\", renderInfo: { pgfkeysArgs: true } },\n usepgflibrary: { signature: \"m\", renderInfo: { pgfkeysArgs: true } },\n pgfplotsset: {\n signature: \"m\",\n renderInfo: { breakAround: true, pgfkeysArgs: true },\n },\n pgfplotstabletypeset: {\n signature: \"o m\",\n renderInfo: { breakAround: true, pgfkeysArgs: true },\n },\n tikz: {\n signature: \"o o m\",\n argumentParser: tikzCommandArgumentParser,\n renderInfo: { namedArguments: [\"animation\", \"options\", \"command\"] },\n },\n};\n\nexport const environments: EnvInfoRecord = {\n tikzpicture: {\n signature: \"o\",\n renderInfo: { pgfkeysArgs: true, tikzEnvironment: true },\n processContent: processTikzEnvironmentContent,\n },\n axis: {\n signature: \"o\",\n renderInfo: { pgfkeysArgs: true, tikzEnvironment: true },\n processContent: processTikzEnvironmentContent,\n },\n scope: {\n signature: \"o\",\n renderInfo: { pgfkeysArgs: true, tikzEnvironment: true },\n processContent: processTikzEnvironmentContent,\n },\n pgfonlayer: {\n signature: \"m\",\n renderInfo: { tikzEnvironment: true },\n processContent: processTikzEnvironmentContent,\n },\n pgflowlevelscope: {\n signature: \"m\",\n renderInfo: { tikzEnvironment: true },\n processContent: processTikzEnvironmentContent,\n },\n pgfviewboxscope: {\n signature: \"m m m m m\",\n renderInfo: { tikzEnvironment: true },\n processContent: processTikzEnvironmentContent,\n },\n pgftransparencygroup: {\n signature: \"o\",\n renderInfo: { pgfkeysArgs: true, tikzEnvironment: true },\n processContent: processTikzEnvironmentContent,\n },\n behindforegroundpath: {\n signature: \"m\",\n processContent: processTikzEnvironmentContent,\n },\n pgfmetadecoration: {\n signature: \"m\",\n processContent: processTikzEnvironmentContent,\n },\n colormixin: { signature: \"m\", renderInfo: { pgfkeysArgs: true } },\n};\n\n/**\n * Attach macro arguments for all macros that are only available within a tikz environment.\n */\nfunction processTikzEnvironmentContent(nodes: Ast.Node[]): Ast.Node[] {\n attachMacroArgsInArray(nodes, conditionalMacros);\n return nodes;\n}\n\n/**\n * Macros that are only parsed inside a tikz environment.\n */\nexport const conditionalMacros: MacroInfoRecord = {\n pgfextra: { signature: \"m\" },\n beginpgfgraphicnamed: { signature: \"m\" },\n pgfrealjobname: { signature: \"m\" },\n pgfplotstreampoint: { signature: \"m\" },\n pgfplotstreampointoutlier: { signature: \"m\" },\n pgfplotstreamspecial: { signature: \"m\" },\n pgfplotxyfile: { signature: \"m\" },\n pgfplotxyzfile: { signature: \"m\" },\n pgfplotfunction: { signature: \"mmm\" },\n pgfplotgnuplot: { signature: \"o m\" },\n pgfplothandlerrecord: { signature: \"m\" },\n pgfdeclareplothandler: { signature: \"m m m\" },\n pgfdeclarelayer: { signature: \"m\" },\n pgfsetlayers: { signature: \"m\", renderInfo: { pgfkeysArgs: true } },\n pgfonlayer: { signature: \"m\" },\n startpgfonlayer: { signature: \"m\" },\n pgfdeclarehorizontalshading: { signature: \"o m m m \" },\n pgfdeclareradialshading: { signature: \"o m m m\" },\n pgfdeclarefunctionalshading: { signature: \"o m m m m m\" },\n pgfshadecolortorgb: { signature: \"m m\" },\n pgfshadecolortocmyk: { signature: \"m m\" },\n pgfshadecolortogray: { signature: \"m m\" },\n pgfuseshading: { signature: \"m\" },\n pgfshadepath: { signature: \"m m\" },\n pgfsetadditionalshadetransform: { signature: \"m\" },\n pgfsetstrokeopacity: { signature: \"m\" },\n pgfsetfillopacity: { signature: \"m\" },\n pgfsetblendmode: { signature: \"m\" },\n pgfdeclarefading: { signature: \"m m\" },\n pgfsetfading: { signature: \"m m\" },\n pgfsetfadingforcurrentpath: { signature: \"m m\" },\n pgfsetfadingforcurrentpathstroked: { signature: \"m m\" },\n pgfanimateattribute: { signature: \"m m\" },\n pgfsnapshot: { signature: \"m\" },\n pgfqpoint: { signature: \"m m\" },\n pgfqpointxy: { signature: \"m m\" },\n pgfqpointxyz: { signature: \"m m m\" },\n pgfqpointscale: { signature: \"m m\" },\n pgfpathqmoveto: { signature: \"m m\" },\n pgfpathqlineto: { signature: \"m m\" },\n pgfpathqcurveto: { signature: \"m m m m m m\" },\n pgfpathqcircle: { signature: \"m\" },\n pgfqbox: { signature: \"m\" },\n pgfqboxsynced: { signature: \"m\" },\n pgfaliasimage: { signature: \"m m\" },\n pgfuseimage: { signature: \"m\" },\n pgfimage: { signature: \"o m\", renderInfo: { pgfkeysArgs: true } },\n pgfdeclaremask: { signature: \"o m m\", renderInfo: { pgfkeysArgs: true } },\n pgfdeclarepatternformonly: { signature: \"o m m m m m\" },\n pgfdeclarepatterninherentlycolored: { signature: \"o m m m m m\" },\n pgfsetfillpattern: { signature: \"m m\" },\n // Coordinate canvas and nonlinear transformations\n pgftransformshift: { signature: \"m\" },\n pgftransformxshift: { signature: \"m\" },\n pgftransformyshift: { signature: \"m\" },\n pgftransformscale: { signature: \"m\" },\n pgftransformxscale: { signature: \"m\" },\n pgftransformyscale: { signature: \"m\" },\n pgftransformxslant: { signature: \"m\" },\n pgftransformyslant: { signature: \"m\" },\n pgftransformrotate: { signature: \"m\" },\n pgftransformtriangle: { signature: \"m m m\" },\n pgftransformcm: { signature: \"m m m m m\" },\n pgftransformarrow: { signature: \"m m\" },\n pgftransformlineattime: { signature: \"m m m\" },\n pgftransformcurveattime: { signature: \"m m m m m\" },\n pgftransformarcaxesattime: { signature: \"m m m m m m\" },\n pgfgettransform: { signature: \"m\" },\n pgfsettransform: { signature: \"m\" },\n pgfgettransformentries: { signature: \"m m m m m m\" },\n pgfsettransformentries: { signature: \"m m m m m m\" },\n pgfpointtransformed: { signature: \"m\" },\n pgflowlevel: { signature: \"m\" },\n pgflowlevelobj: { signature: \"m m\" },\n pgflowlevelscope: { signature: \"m\" },\n startpgflowlevelscope: { signature: \"m\" },\n pgfviewboxscope: { signature: \"m m m m m\" },\n startpgfviewboxscope: { signature: \"m m m m m\" },\n pgftransformnonlinear: { signature: \"m\" },\n pgfpointtransformednonlinear: { signature: \"m\" },\n pgfsetcurvilinearbeziercurve: { signature: \"m m m m\" },\n pgfcurvilineardistancetotime: { signature: \"m\" },\n pgfpointcurvilinearbezierorthogonal: { signature: \"m m\" },\n pgfpointcurvilinearbezierpolar: { signature: \"m m\" },\n // Matrices\n pgfmatrix: { signature: \"m m m m m m m\" },\n pgfsetmatrixcolumnsep: { signature: \"m\" },\n pgfmatrixnextcell: { signature: \"o\" },\n pgfsetmatrixrowsep: { signature: \"m\" },\n pgfmatrixendrow: { signature: \"o\" },\n // Nodes and shapes\n pgfnode: { signature: \"m m m m m\" },\n pgfmultipartnode: { signature: \"m m m m\" },\n pgfcoordinate: { signature: \"m m\" },\n pgfnodealias: { signature: \"m m\" },\n pgfnoderename: { signature: \"m m\" },\n pgfpositionnodelater: { signature: \"m\" },\n pgfpositionnodenow: { signature: \"m\" },\n pgfnodepostsetupcode: { signature: \"m m\" },\n pgfpointanchor: { signature: \"m m\" },\n pgfpointshapeborder: { signature: \"m m\" },\n pgfdeclareshape: { signature: \"m m\" },\n saveddimen: { signature: \"m m\" },\n savedmacro: { signature: \" m\" },\n anchor: { signature: \"m m\" },\n deferredanchor: { signature: \"m m\" },\n anchorborder: { signature: \"m\" },\n backgroundpath: { signature: \"m\" },\n foregroundpath: { signature: \"m\" },\n behindbackgroundpath: { signature: \"m\" },\n beforebackgroundpath: { signature: \"m\" },\n beforeforegroundpath: { signature: \"m\" },\n behindforegroundpath: { signature: \"m\" },\n // Arrows\n pgfdeclarearrow: { signature: \"m\" },\n pgfarrowssettipend: { signature: \"m\" },\n pgfarrowssetbackend: { signature: \"m\" },\n pgfarrowssetlineend: { signature: \"m\" },\n pgfarrowssetvisualbackend: { signature: \"m\" },\n pgfarrowssetvisualtipend: { signature: \"m\" },\n pgfarrowshullpoint: { signature: \"m m\" },\n pgfarrowsupperhullpoint: { signature: \"m m\" },\n pgfarrowssave: { signature: \"m\" },\n pgfarrowssavethe: { signature: \"m\" },\n pgfarrowsaddtooptions: { signature: \"m\" },\n pgfarrowsaddtolateoptions: { signature: \"m\" },\n pgfarrowsaddtolengthscalelist: { signature: \"m\" },\n pgfarrowsaddtowidthscalelist: { signature: \"m\" },\n pgfarrowsthreeparameters: { signature: \"m\" },\n pgfarrowslinewidthdependent: { signature: \"m m m\" },\n pgfarrowslengthdependent: { signature: \"m\" },\n // Path\n pgfusepath: { signature: \"m\" },\n pgfsetlinewidth: { signature: \"m\" },\n pgfsetmiterlimit: { signature: \"m\" },\n pgfsetdash: { signature: \"m m\" },\n pgfsetstrokecolor: { signature: \"m\" },\n pgfsetcolor: { signature: \"m\" },\n pgfsetinnerlinewidth: { signature: \"m\" },\n pgfsetinnerstrokecolor: { signature: \"m\" },\n pgfsetarrowsstart: { signature: \"m\" },\n pgfsetarrowsend: { signature: \"m\" },\n pgfsetarrows: { signature: \"m\" },\n pgfsetshortenstart: { signature: \"m\" },\n pgfsetshortenend: { signature: \"m\" },\n pgfsetfillcolor: { signature: \"m\" },\n // Decorations\n pgfdeclaredecoration: { signature: \"m m m\" },\n state: { signature: \"m o m\" },\n pgfdecoratepath: { signature: \"m m\" },\n startpgfdecoration: { signature: \"m\" },\n pgfdecoration: { signature: \"m\" },\n pgfdecoratecurrentpath: { signature: \"m\" },\n pgfsetdecorationsegmenttransformation: { signature: \"m\" },\n pgfdeclaremetadecorate: { signature: \"m m m\" },\n pgfmetadecoration: { signature: \"m\" },\n startpgfmetadecoration: { signature: \"m\" },\n // Constructing paths\n pgfpathmoveto: { signature: \"m\" },\n pgfpathlineto: { signature: \"m\" },\n pgfpathcurveto: { signature: \"m m m\" },\n pgfpathquadraticcurveto: { signature: \"m m\" },\n pgfpathcurvebetweentime: { signature: \"m m m m m m\" },\n pgfpathcurvebetweentimecontinue: { signature: \"m m m m m m\" },\n pgfpatharc: { signature: \"m m m\" },\n pgfpatharcaxes: { signature: \"m m m m\" },\n pgfpatharcto: { signature: \"m m m m m m\" },\n pgfpatharctoprecomputed: { signature: \"m m m m m m m m\" },\n pgfpathellipse: { signature: \"m m m\" },\n pgfpathcircle: { signature: \"m m\" },\n pgfpathrectangle: { signature: \"m m\" },\n pgfpathrectanglecorners: { signature: \"m m\" },\n pgfpathgrid: { signature: \" o m m\" },\n pgfpathparabola: { signature: \"m m\" },\n pgfpathsine: { signature: \"m\" },\n pgfpathcosine: { signature: \"m\" },\n pgfsetcornersarced: { signature: \"m\" },\n \"pgf@protocolsizes\": { signature: \"m m\" },\n // Specifying coordinates\n pgfpoint: { signature: \"m m\" },\n pgfpointpolar: { signature: \"m m m\" },\n pgfpointxy: { signature: \"m m\" },\n pgfsetxvec: { signature: \"m\" },\n pgfsetyvec: { signature: \"m\" },\n pgfpointpolarxy: { signature: \"m m\" },\n pgfpointxyz: { signature: \"m m m\" },\n pgfsetzvec: { signature: \"m\" },\n pgfpointcylindrical: { signature: \"m m m\" },\n pgfpointspherical: { signature: \"m m m\" },\n pgfpointadd: { signature: \"m m\" },\n pgfpointscale: { signature: \"m m\" },\n pgfpointdiff: { signature: \"m m\" },\n pgfpointnormalised: { signature: \"m\" },\n pgfpointlineattime: { signature: \"m m m\" },\n pgfpointlineatdistance: { signature: \"m m m\" },\n pgfpointarcaxesattime: { signature: \"m m m m m m\" },\n pgfpointcurveattime: { signature: \"m m m m m\" },\n pgfpointborderrectangle: { signature: \"m m\" },\n pgfpointborderellipse: { signature: \"m m\" },\n pgfpointintersectionoflines: { signature: \"m m m m\" },\n pgfpointintersectionofcircles: { signature: \"m m m m m\" },\n pgfintersectionofpaths: { signature: \"m m\" },\n pgfpointintersectionsolution: { signature: \"m\" },\n pgfextractx: { signature: \"m m\" },\n pgfextracty: { signature: \"m m\" },\n pgfgetlastxy: { signature: \"m m\" },\n \"pgf@process\": { signature: \"m\" },\n // Heirarchical structres ...\n pgfsetbaseline: { signature: \"m\" },\n pgfsetbaselinepointnow: { signature: \"m\" },\n pgfsetbaselinepointlater: { signature: \"m\" },\n pgftext: { signature: \"o m\", renderInfo: { pgfkeysArgs: true } },\n pgfuseid: { signature: \"m\" },\n pgfusetype: { signature: \"m\" },\n pgfidrefnextuse: { signature: \"m m\" },\n pgfidrefprevuse: { signature: \"m m\" },\n pgfaliasid: { signature: \"m m\" },\n pgfgaliasid: { signature: \"m m\" },\n pgfifidreferenced: { signature: \"m m m\" },\n pgfrdfabout: { signature: \"m\" },\n pgfrdfcontent: { signature: \"m\" },\n pgfrdfdatatype: { signature: \"m\" },\n pgfrdfhref: { signature: \"m\" },\n pgfrdfprefix: { signature: \"m\" },\n pgfrdfproperty: { signature: \"m\" },\n pgfrdfrel: { signature: \"m\" },\n pgfrdfresource: { signature: \"m\" },\n pgfrdfrev: { signature: \"m\" },\n pgfrdfsrc: { signature: \"m\" },\n pgfrdftypeof: { signature: \"m\" },\n pgfrdfvocab: { signature: \"m\" },\n pgferror: { signature: \"m\" },\n pgfwarning: { signature: \"m\" },\n path: {\n signature: \"u;\",\n renderInfo: { breakAround: true, tikzPathCommand: true },\n },\n draw: {\n signature: \"u;\",\n renderInfo: { breakAround: true, tikzPathCommand: true },\n },\n fill: {\n signature: \"u;\",\n renderInfo: { breakAround: true, tikzPathCommand: true },\n },\n filldraw: {\n signature: \"u;\",\n renderInfo: { breakAround: true, tikzPathCommand: true },\n },\n pattern: {\n signature: \"u;\",\n renderInfo: { breakAround: true, tikzPathCommand: true },\n },\n shade: {\n signature: \"u;\",\n renderInfo: { breakAround: true, tikzPathCommand: true },\n },\n clip: {\n signature: \"u;\",\n renderInfo: { breakAround: true, tikzPathCommand: true },\n },\n useasboundingbox: {\n signature: \"u;\",\n renderInfo: { breakAround: true, tikzPathCommand: true },\n },\n node: {\n signature: \"u;\",\n renderInfo: { breakAround: true, tikzPathCommand: true },\n },\n coordinate: {\n signature: \"u;\",\n renderInfo: { breakAround: true, tikzPathCommand: true },\n },\n graph: {\n signature: \"u;\",\n renderInfo: { breakAround: true, tikzPathCommand: true },\n },\n scoped: {\n signature: \"o o m\",\n argumentParser: tikzCommandArgumentParser,\n renderInfo: {\n namedArguments: [\"animation\", \"options\", \"command\"],\n breakAround: true,\n },\n },\n};\n","import * as Ast from \"@unified-latex/unified-latex-types\";\nimport * as TikzSpec from \"./types\";\nimport { match } from \"@unified-latex/unified-latex-util-match\";\nimport { decorateArrayForPegjs } from \"@unified-latex/unified-latex-util-pegjs\";\nimport { TikzPegParser } from \"@unified-latex/unified-latex-util-pegjs\";\n\ntype TikzParseOptions = {\n startRule?: \"path_spec\" | \"foreach_body\";\n};\n\nfunction createMatchers() {\n return {\n isChar: match.string,\n isTerminal: (node: any) => match.string(node, \";\"),\n isOperation: (node: any) =>\n match.anyString(node) && node.content.match(/[a-zA-Z]/),\n isWhitespace: (node: any) =>\n match.whitespace(node) || match.parbreak(node),\n isComment: match.comment,\n isGroup: match.group,\n isMacro: match.macro,\n isAnyMacro: match.anyMacro,\n };\n}\n\nconst matchers = createMatchers();\n\n/**\n * Parse the contents of the `\\systeme{...}` macro\n */\nexport function parse<Options extends TikzParseOptions>(\n ast: Ast.Node[],\n options?: Options\n): Options extends { startRule: infer R }\n ? R extends \"path_spec\"\n ? TikzSpec.PathSpec\n : TikzSpec.ForeachBody\n : TikzSpec.PathSpec {\n const { startRule = \"path_spec\" } = options || {};\n if (!Array.isArray(ast)) {\n throw new Error(\"You must pass an array of nodes\");\n }\n // We need to at functions to `nodes` so that it imitates\n // a Javascript string. Because we're mutating, make a copy first\n ast = decorateArrayForPegjs([...ast]);\n // matchers are passed in via the second argument (the `options` argument)\n // so they are available from within the Pegjs grammar.\n return TikzPegParser.parse(ast, {\n ...matchers,\n startRule,\n });\n}\n"],"names":["parseArgspec","arg","trim","gobbleSingleArgument","match","scan","colonPos","attachMacroArgsInArray","decorateArrayForPegjs","TikzPegParser"],"mappings":"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"}