code-server
Version:
Run VS Code on a remote server.
2 lines (1 loc) • 2.32 kB
JavaScript
import{a,b as u,c as f}from"./chunk-5TI3OQE5.js";import{a as m}from"./chunk-2S6PUNXZ.js";import{b as p}from"./chunk-R6TTN2K4.js";import"./chunk-MORPLMM4.js";import"./chunk-PAO23QCD.js";import"./chunk-NZ3Q2WJX.js";import"./chunk-PPKVOE2H.js";import"./chunk-JXO2KM4E.js";import{b as l}from"./chunk-PNBHH3ZV.js";import"./chunk-ABRXOUHG.js";import"./chunk-QSWXSH5R.js";import"./chunk-U4VSMEDZ.js";import"./chunk-CQHAQPZP.js";import"./chunk-4HJKLDAT.js";import"./chunk-ROB3ZELR.js";import"./chunk-JZV3OND4.js";import"./chunk-JHQ3LEJ2.js";import"./chunk-BQR5VGCX.js";import"./chunk-ECAF5OLA.js";import"./chunk-QRLMLG33.js";import"./chunk-5Z3D3SW5.js";import{b as s}from"./chunk-SNB7PWCV.js";import"./chunk-CU3WNRKO.js";import{a as t}from"./chunk-5ZAMBDF5.js";import"./chunk-3RNHDNP5.js";var v=l().RailroadAbnf.parser.LangiumParser,i=t(e=>{let r=e.alternatives.map(g);return r.length===1?r[0]:{type:"choice",alternatives:r}},"transformAlternation"),g=t(e=>{let r=e.elements.map(y);return r.length===1?r[0]:{type:"sequence",elements:r}},"transformConcatenation"),b=t(e=>{if(e.includes("*")){let[n,o]=e.split("*"),c=n?parseInt(n,10):0,d=o?parseInt(o,10):1/0;return{min:c,max:d}}let r=parseInt(e,10);return{min:r,max:r}},"parseRepeat"),y=t(e=>{let r=A(e.primary);if(!e.repeat)return r;let{min:n,max:o}=b(e.repeat);return n===0&&o===1?{type:"optional",element:r}:{type:"repetition",element:r,min:n,max:o}},"transformElement"),A=t(e=>{switch(e.$type){case"AbnfStringLiteral":return{type:"terminal",value:e.value};case"AbnfNumVal":return{type:"terminal",value:e.value};case"AbnfRuleName":return{type:"nonterminal",name:e.name};case"AbnfGroup":return i(e.element);case"AbnfOptionalGroup":return{type:"optional",element:i(e.element)};default:throw new Error(`Unsupported ABNF primary node: ${e.$type}`)}},"transformPrimary"),P=t(e=>({name:e.name,definition:i(e.definition)}),"transformRule"),h=t(e=>{m(e,a),e.title&&a.setTitle(e.title),e.rules.map(r=>a.addRule(P(r)))},"populateDb"),R={parse:t(e=>{a.clear(),s.debug("[ABNF Parser] Starting Langium parse");let r=v.parse(e);if(r.lexerErrors.length>0||r.parserErrors.length>0)throw new p(r);let n=r.value;s.debug("[ABNF Parser] Parsed rules:",n.rules.length),h(n),s.debug("[ABNF Parser] Parse complete")},"parse"),parser:{yy:a}},I={parser:R,db:a,renderer:f,styles:u};export{I as diagram};