1"use strict";(globalThis.webpackChunkkysely_site=globalThis.webpackChunkkysely_site||[]).push([[9330],{9330(e,t,r){r.d(t,{diagram:()=>y});var n=r(4722),a=r(9389),s=(r(2617),r(3399),r(7694)),i=r(1248),l=r(1049),o=(0,l.WG)().RailroadEbnf.parser.LangiumParser,p=(0,i.K)(e=>{const t=e.alternatives.map(m);return 1===t.length?t[0]:{type:"choice",alternatives:t}},"transformChoice"),m=(0,i.K)(e=>{const t=e.elements.map(f);return 1===t.length?t[0]:{type:"sequence",elements:t}},"transformSequence"),u=(0,i.K)(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 p(e.element);case"EbnfOptional":return{type:"optional",element:p(e.element)};case"EbnfRepetition":return{type:"repetition",element:p(e.element),min:0,max:1/0};default:throw new Error(`Unsupported EBNF primary node: ${e.$type}`)}},"transformPrimary"),c=(0,i.K)((e,t)=>{switch(t.$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(t.except)]};default:throw new Error(`Unsupported EBNF postfix node: ${t.$type}`)}},"transformPostfix"),f=(0,i.K)(e=>e.postfixes.reduce((e,t)=>c(e,t),u(e.base)),"transformTerm"),b=(0,i.K)(e=>({name:e.name,definition:p(e.definition)}),"transformRule"),d=(0,i.K)(e=>{(0,a.S)(e,n.db),e.title&&n.db.setTitle(e.title),e.rules.map(e=>n.db.addRule(b(e)))},"populateDb"),y={parser:{parse:(0,i.K)(e=>{n.db.clear(),s.R.debug("[EBNF Parser] Starting Langium parse");const t=o.parse(e);if(t.lexerErrors.length>0||t.parserErrors.length>0)throw new l.zg(t);const r=t.value;s.R.debug("[EBNF Parser] Parsed rules:",r.rules.length),d(r),s.R.debug("[EBNF Parser] Parse complete")},"parse"),parser:{yy:n.db}},db:n.db,renderer:n.U,styles:n.$}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.