mermaid
Version:
Markdown-ish syntax for generating flowcharts, mindmaps, sequence diagrams, class diagrams, gantt charts, git graphs and more.
2 lines (1 loc) • 2.12 kB
JavaScript
import{a,b as m,c as d}from"./chunk-SLDQ463B.mjs";import{a as s}from"./chunk-JQRUD6KW.mjs";import{b as p}from"./chunk-5IQCK5RY.mjs";import"./chunk-JZGDI5JK.mjs";import"./chunk-OJINMHTS.mjs";import"./chunk-VQC2EELJ.mjs";import{b as n}from"./chunk-KD6SPIPN.mjs";import"./chunk-Q6NGPIAH.mjs";import"./chunk-RT4MAWR3.mjs";import"./chunk-YBMQ5JGJ.mjs";import"./chunk-GDY2UAB4.mjs";import"./chunk-3SMGFRGC.mjs";import"./chunk-3NPNU5GP.mjs";import"./chunk-TCEHX7R3.mjs";import"./chunk-5MVFYWFU.mjs";import"./chunk-SFMINX4W.mjs";import"./chunk-JFFVMJIA.mjs";import"./chunk-ZUNWM646.mjs";import"./chunk-ZS6VBONO.mjs";import"./chunk-IJBDOHL6.mjs";import"./chunk-QJSWEUOL.mjs";import{b as t}from"./chunk-H7VHZCWX.mjs";import{a as o}from"./chunk-AQ6EADP3.mjs";var u=n().Railroad.parser.LangiumParser,i=o(r=>{switch(r.$type){case"RailroadTerminalExpr":return{type:"terminal",value:r.value};case"RailroadNonTerminalExpr":return{type:"nonterminal",name:r.name};case"RailroadSpecialExpr":return{type:"special",text:r.text};case"RailroadSequenceExpr":{let e=r.elements.map(i);return e.length===1?e[0]:{type:"sequence",elements:e}}case"RailroadChoiceExpr":{let e=r.alternatives.map(i);return e.length===1?e[0]:{type:"choice",alternatives:e}}case"RailroadOptionalExpr":return{type:"optional",element:i(r.element)};case"RailroadOneOrMoreExpr":return{type:"repetition",element:i(r.element),min:1,max:1/0};case"RailroadZeroOrMoreExpr":return{type:"repetition",element:i(r.element),min:0,max:1/0};default:throw new Error(`Unsupported railroad expression: ${r.$type}`)}},"transformExpression"),c=o(r=>({name:r.name,definition:i(r.definition)}),"transformRule"),y=o(r=>{s(r,a),r.title&&a.setTitle(r.title),r.rules.map(e=>a.addRule(c(e)))},"populateDb"),R={parse:o(r=>{a.clear(),t.debug("[Railroad Parser] Starting Langium parse");let e=u.parse(r);if(e.lexerErrors.length>0||e.parserErrors.length>0)throw new p(e);let l=e.value;t.debug("[Railroad Parser] Parsed rules:",l.rules.length),y(l),t.debug("[Railroad Parser] Parse complete")},"parse"),parser:{yy:a}};var E={parser:R,db:a,renderer:d,styles:m},b=E;export{b as default,E as diagram};