ranui
Version:
A framework-agnostic Web Components UI library built on native custom elements, with TypeScript types, light/dark theming, SSR and PWA support.
2 lines (1 loc) • 2.22 kB
JavaScript
const o=require("./mermaid-parser.core-DYumW1vq.cjs"),t=require("./chunk-Y2CYZVJY-DPaYLFFP.cjs"),i=require("./src-C9EhKhbk.cjs");require("./chunk-WYO6CB5R-u4mJNOcO.cjs");require("./chunk-VAUOI2AC-DfQf5L2_.cjs");const n=require("./chunk-MOJQB5TN-oOeq982_.cjs"),l=require("./chunk-JWPE2WC7-D8EnWK1B.cjs");var m=o.createRailroadEbnfServices().RailroadEbnf.parser.LangiumParser,s=t.__name(e=>{const r=e.alternatives.map(p);return r.length===1?r[0]:{type:"choice",alternatives:r}},"transformChoice"),p=t.__name(e=>{const r=e.elements.map(f);return r.length===1?r[0]:{type:"sequence",elements:r}},"transformSequence"),u=t.__name(e=>{switch(e.$type){case"EbnfTerminal":return{type:"terminal",value:e.value};case"EbnfNonTerminal":return{type:"nonterminal",name:e.name};case"EbnfSpecial":return{type:"special",text:e.text};case"EbnfGroup":return s(e.element);case"EbnfOptional":return{type:"optional",element:s(e.element)};case"EbnfRepetition":return{type:"repetition",element:s(e.element),min:0,max:1/0};default:throw new Error(`Unsupported EBNF primary node: ${e.$type}`)}},"transformPrimary"),c=t.__name((e,r)=>{switch(r.$type){case"EbnfOptionalPostfix":return{type:"optional",element:e};case"EbnfZeroOrMorePostfix":return{type:"repetition",element:e,min:0,max:1/0};case"EbnfOneOrMorePostfix":return{type:"repetition",element:e,min:1,max:1/0};case"EbnfExceptionPostfix":return{type:"sequence",elements:[e,{type:"terminal",value:"-"},u(r.except)]};default:throw new Error(`Unsupported EBNF postfix node: ${r.$type}`)}},"transformPostfix"),f=t.__name(e=>e.postfixes.reduce((r,a)=>c(r,a),u(e.base)),"transformTerm"),d=t.__name(e=>({name:e.name,definition:s(e.definition)}),"transformRule"),b=t.__name(e=>{l.populateCommonDb(e,n.db),e.title&&n.db.setTitle(e.title),e.rules.map(r=>n.db.addRule(d(r)))},"populateDb"),_={parser:{parse:t.__name(e=>{n.db.clear(),i.log.debug("[EBNF Parser] Starting Langium parse");const r=m.parse(e);if(r.lexerErrors.length>0||r.parserErrors.length>0)throw new o.MermaidParseError(r);const a=r.value;i.log.debug("[EBNF Parser] Parsed rules:",a.rules.length),b(a),i.log.debug("[EBNF Parser] Parse complete")},"parse"),parser:{yy:n.db}},db:n.db,renderer:n.renderer,styles:n.getStyles};exports.diagram=_;