mermaid
Version:
Markdown-ish syntax for generating flowcharts, mindmaps, sequence diagrams, class diagrams, gantt charts, git graphs and more.
2 lines (1 loc) • 2.45 kB
JavaScript
import{a,b as l,c as m}from"./chunk-Y5NT6LW5.mjs";import{a as p}from"./chunk-V3KJR4XU.mjs";import{b as s}from"./chunk-Y5O5OPKC.mjs";import"./chunk-3T2MNPEU.mjs";import"./chunk-MLQVGYRW.mjs";import"./chunk-QX7LGXZU.mjs";import"./chunk-22SYA5HA.mjs";import"./chunk-YZG4BXY6.mjs";import"./chunk-NRRTYJAG.mjs";import"./chunk-CVBX6EWK.mjs";import"./chunk-RXM7Z7NK.mjs";import"./chunk-HI3EPXIC.mjs";import"./chunk-5NYYYZGL.mjs";import{b as i}from"./chunk-H7BX327W.mjs";import"./chunk-LIEGGFIX.mjs";import"./chunk-LLWYPJEZ.mjs";import"./chunk-2FTYKNOQ.mjs";import"./chunk-36VM3LGA.mjs";import"./chunk-44AU3KAP.mjs";import"./chunk-S4TE5DX6.mjs";import"./chunk-FE53TMRB.mjs";import{b as n}from"./chunk-L2B47AAZ.mjs";import{a as t}from"./chunk-QVIEFLGF.mjs";var c=i().RailroadPeg.parser.LangiumParser,g=t(e=>{let r=e.alternatives.map(d);return r.length===1?r[0]:{type:"choice",alternatives:r}},"transformOrderedChoice"),d=t(e=>{let r=e.elements.map(f);return r.length===1?r[0]:{type:"sequence",elements:r}},"transformSequence"),f=t(e=>{let r=y(e.suffix);return e.operator?{type:"special",text:e.operator==="&"?`&${u(r)}`:`!${u(r)}`}:r},"transformPrefix"),u=t(e=>{switch(e.type){case"terminal":return`"${e.value}"`;case"nonterminal":return e.name;case"special":return e.text;default:return"(...)"}},"nodeToLabel"),y=t(e=>{let r=S(e.primary);if(!e.operator)return r;switch(e.operator){case"?":return{type:"optional",element:r};case"*":return{type:"repetition",element:r,min:0,max:1/0};case"+":return{type:"repetition",element:r,min:1,max:1/0};default:throw new Error(`Unsupported PEG suffix operator: ${e.operator}`)}},"transformSuffix"),S=t(e=>{switch(e.$type){case"PegLiteral":return{type:"terminal",value:e.value};case"PegIdentifier":return{type:"nonterminal",name:e.name};case"PegGroup":return g(e.element);case"PegAny":return{type:"special",text:e.dot};default:throw new Error(`Unsupported PEG primary node: ${e.$type}`)}},"transformPrimary"),h=t(e=>({name:e.name,definition:g(e.definition)}),"transformRule"),R=t(e=>{p(e,a),e.title&&a.setTitle(e.title),e.rules.map(r=>a.addRule(h(r)))},"populateDb"),P={parse:t(e=>{a.clear(),n.debug("[PEG Parser] Starting Langium parse");let r=c.parse(e);if(r.lexerErrors.length>0||r.parserErrors.length>0)throw new s(r);let o=r.value;n.debug("[PEG Parser] Parsed rules:",o.rules.length),R(o),n.debug("[PEG Parser] Parse complete")},"parse"),parser:{yy:a}};var N={parser:P,db:a,renderer:m,styles:l};export{N as diagram};