{
  "version": 3,
  "sources": ["../../../src/language/railroad-peg/tokenBuilder.ts", "../../../src/language/railroad-peg/valueConverter.ts", "../../../src/language/railroad-peg/module.ts"],
  "sourcesContent": ["import { AbstractMermaidTokenBuilder } from '../common/index.js';\n\nexport class RailroadPegTokenBuilder extends AbstractMermaidTokenBuilder {\n  constructor() {\n    super(['railroad-peg-beta']);\n  }\n}\n", "import type { CstNode, GrammarAST, ValueType } from 'langium';\n\nimport { AbstractMermaidValueConverter } from '../common/index.js';\n\nconst decodeEscapedString = (input: string): string => {\n  const content = input.slice(1, -1);\n  let value = '';\n\n  for (let index = 0; index < content.length; index++) {\n    const character = content[index];\n    if (character === '\\\\' && index + 1 < content.length) {\n      index++;\n      const escaped = content[index];\n      switch (escaped) {\n        case 'n':\n          value += '\\n';\n          break;\n        case 'r':\n          value += '\\r';\n          break;\n        case 't':\n          value += '\\t';\n          break;\n        default:\n          value += escaped;\n      }\n      continue;\n    }\n\n    value += character;\n  }\n\n  return value;\n};\n\nexport class RailroadPegValueConverter extends AbstractMermaidValueConverter {\n  protected override runConverter(\n    rule: GrammarAST.AbstractRule,\n    input: string,\n    cstNode: CstNode\n  ): ValueType {\n    const value = super.runConverter(rule, input, cstNode);\n\n    if (rule.name === 'TITLE' && typeof value === 'string') {\n      const trimmedValue = value.trim();\n      if (\n        (trimmedValue.startsWith('\"') && trimmedValue.endsWith('\"')) ||\n        (trimmedValue.startsWith(\"'\") && trimmedValue.endsWith(\"'\"))\n      ) {\n        return decodeEscapedString(trimmedValue);\n      }\n    }\n\n    return value;\n  }\n\n  protected runCustomConverter(\n    rule: GrammarAST.AbstractRule,\n    input: string,\n    _cstNode: CstNode\n  ): ValueType | undefined {\n    if (rule.name === 'PEG_STRING') {\n      return decodeEscapedString(input);\n    }\n\n    return undefined;\n  }\n}\n", "import type {\n  DefaultSharedCoreModuleContext,\n  LangiumCoreServices,\n  LangiumSharedCoreServices,\n  Module,\n  PartialLangiumCoreServices,\n} from 'langium';\nimport {\n  EmptyFileSystem,\n  createDefaultCoreModule,\n  createDefaultSharedCoreModule,\n  inject,\n} from 'langium';\n\nimport { RailroadPegTokenBuilder } from './tokenBuilder.js';\nimport { RailroadPegValueConverter } from './valueConverter.js';\nimport {\n  MermaidGeneratedSharedModule,\n  RailroadPegGrammarGeneratedModule as RailroadPegGeneratedModule,\n} from '../generated/module.js';\n\ninterface RailroadPegAddedServices {\n  parser: {\n    TokenBuilder: RailroadPegTokenBuilder;\n    ValueConverter: RailroadPegValueConverter;\n  };\n}\n\nexport type RailroadPegServices = LangiumCoreServices & RailroadPegAddedServices;\n\nexport const RailroadPegModule: Module<\n  RailroadPegServices,\n  PartialLangiumCoreServices & RailroadPegAddedServices\n> = {\n  parser: {\n    TokenBuilder: () => new RailroadPegTokenBuilder(),\n    ValueConverter: () => new RailroadPegValueConverter(),\n  },\n};\n\nexport function createRailroadPegServices(\n  context: DefaultSharedCoreModuleContext = EmptyFileSystem\n): {\n  shared: LangiumSharedCoreServices;\n  RailroadPeg: RailroadPegServices;\n} {\n  const shared: LangiumSharedCoreServices = inject(\n    createDefaultSharedCoreModule(context),\n    MermaidGeneratedSharedModule\n  );\n  const RailroadPeg: RailroadPegServices = inject(\n    createDefaultCoreModule({ shared }),\n    RailroadPegGeneratedModule,\n    RailroadPegModule\n  );\n  shared.ServiceRegistry.register(RailroadPeg);\n  return { shared, RailroadPeg };\n}\n"],
  "mappings": ";;;;;;;;;;;;;;AAEO,IAAM,0BAAN,cAAsC,4BAA4B;AAAA,EAFzE,OAEyE;AAAA;AAAA;AAAA,EACvE,cAAc;AACZ,UAAM,CAAC,mBAAmB,CAAC;AAAA,EAC7B;AACF;;;ACFA,IAAM,sBAAsB,wBAAC,UAA0B;AACrD,QAAM,UAAU,MAAM,MAAM,GAAG,EAAE;AACjC,MAAI,QAAQ;AAEZ,WAAS,QAAQ,GAAG,QAAQ,QAAQ,QAAQ,SAAS;AACnD,UAAM,YAAY,QAAQ,KAAK;AAC/B,QAAI,cAAc,QAAQ,QAAQ,IAAI,QAAQ,QAAQ;AACpD;AACA,YAAM,UAAU,QAAQ,KAAK;AAC7B,cAAQ,SAAS;AAAA,QACf,KAAK;AACH,mBAAS;AACT;AAAA,QACF,KAAK;AACH,mBAAS;AACT;AAAA,QACF,KAAK;AACH,mBAAS;AACT;AAAA,QACF;AACE,mBAAS;AAAA,MACb;AACA;AAAA,IACF;AAEA,aAAS;AAAA,EACX;AAEA,SAAO;AACT,GA7B4B;AA+BrB,IAAM,4BAAN,cAAwC,8BAA8B;AAAA,EAnC7E,OAmC6E;AAAA;AAAA;AAAA,EACxD,aACjB,MACA,OACA,SACW;AACX,UAAM,QAAQ,MAAM,aAAa,MAAM,OAAO,OAAO;AAErD,QAAI,KAAK,SAAS,WAAW,OAAO,UAAU,UAAU;AACtD,YAAM,eAAe,MAAM,KAAK;AAChC,UACG,aAAa,WAAW,GAAG,KAAK,aAAa,SAAS,GAAG,KACzD,aAAa,WAAW,GAAG,KAAK,aAAa,SAAS,GAAG,GAC1D;AACA,eAAO,oBAAoB,YAAY;AAAA,MACzC;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAAA,EAEU,mBACR,MACA,OACA,UACuB;AACvB,QAAI,KAAK,SAAS,cAAc;AAC9B,aAAO,oBAAoB,KAAK;AAAA,IAClC;AAEA,WAAO;AAAA,EACT;AACF;;;ACrCO,IAAM,oBAGT;AAAA,EACF,QAAQ;AAAA,IACN,cAAc,6BAAM,IAAI,wBAAwB,GAAlC;AAAA,IACd,gBAAgB,6BAAM,IAAI,0BAA0B,GAApC;AAAA,EAClB;AACF;AAEO,SAAS,0BACd,UAA0C,iBAI1C;AACA,QAAM,SAAoC;AAAA,IACxC,8BAA8B,OAAO;AAAA,IACrC;AAAA,EACF;AACA,QAAM,cAAmC;AAAA,IACvC,wBAAwB,EAAE,OAAO,CAAC;AAAA,IAClC;AAAA,IACA;AAAA,EACF;AACA,SAAO,gBAAgB,SAAS,WAAW;AAC3C,SAAO,EAAE,QAAQ,YAAY;AAC/B;AAjBgB;",
  "names": []
}
