{
  "version": 3,
  "sources": ["../../../src/language/railroad/tokenBuilder.ts", "../../../src/language/railroad/valueConverter.ts", "../../../src/language/railroad/module.ts"],
  "sourcesContent": ["import { AbstractMermaidTokenBuilder } from '../common/index.js';\n\nexport class RailroadTokenBuilder extends AbstractMermaidTokenBuilder {\n  public constructor() {\n    super(['railroad-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 RailroadValueConverter 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 === 'RR_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 { RailroadTokenBuilder } from './tokenBuilder.js';\nimport { RailroadValueConverter } from './valueConverter.js';\nimport {\n  MermaidGeneratedSharedModule,\n  RailroadGrammarGeneratedModule as RailroadGeneratedModule,\n} from '../generated/module.js';\n\ninterface RailroadAddedServices {\n  parser: {\n    TokenBuilder: RailroadTokenBuilder;\n    ValueConverter: RailroadValueConverter;\n  };\n}\n\nexport type RailroadServices = LangiumCoreServices & RailroadAddedServices;\n\nexport const RailroadModule: Module<\n  RailroadServices,\n  PartialLangiumCoreServices & RailroadAddedServices\n> = {\n  parser: {\n    TokenBuilder: () => new RailroadTokenBuilder(),\n    ValueConverter: () => new RailroadValueConverter(),\n  },\n};\n\nexport function createRailroadServices(context: DefaultSharedCoreModuleContext = EmptyFileSystem): {\n  shared: LangiumSharedCoreServices;\n  Railroad: RailroadServices;\n} {\n  const shared: LangiumSharedCoreServices = inject(\n    createDefaultSharedCoreModule(context),\n    MermaidGeneratedSharedModule\n  );\n  const Railroad: RailroadServices = inject(\n    createDefaultCoreModule({ shared }),\n    RailroadGeneratedModule,\n    RailroadModule\n  );\n  shared.ServiceRegistry.register(Railroad);\n  return { shared, Railroad };\n}\n"],
  "mappings": "kGAEO,IAAMA,EAAN,cAAmCC,CAA4B,CAFtE,MAEsE,CAAAC,EAAA,6BAC7D,aAAc,CACnB,MAAM,CAAC,eAAe,CAAC,CACzB,CACF,ECFA,IAAMC,EAAsBC,EAACC,GAA0B,CACrD,IAAMC,EAAUD,EAAM,MAAM,EAAG,EAAE,EAC7BE,EAAQ,GAEZ,QAASC,EAAQ,EAAGA,EAAQF,EAAQ,OAAQE,IAAS,CACnD,IAAMC,EAAYH,EAAQE,CAAK,EAC/B,GAAIC,IAAc,MAAQD,EAAQ,EAAIF,EAAQ,OAAQ,CACpDE,IACA,IAAME,EAAUJ,EAAQE,CAAK,EAC7B,OAAQE,EAAS,CACf,IAAK,IACHH,GAAS;AAAA,EACT,MACF,IAAK,IACHA,GAAS,KACT,MACF,IAAK,IACHA,GAAS,IACT,MACF,QACEA,GAASG,CACb,CACA,QACF,CAEAH,GAASE,CACX,CAEA,OAAOF,CACT,EA7B4B,uBA+BfI,EAAN,cAAqCC,CAA8B,CAnC1E,MAmC0E,CAAAR,EAAA,+BACrD,aACjBS,EACAR,EACAS,EACW,CACX,IAAMP,EAAQ,MAAM,aAAaM,EAAMR,EAAOS,CAAO,EAErD,GAAID,EAAK,OAAS,SAAW,OAAON,GAAU,SAAU,CACtD,IAAMQ,EAAeR,EAAM,KAAK,EAChC,GACGQ,EAAa,WAAW,GAAG,GAAKA,EAAa,SAAS,GAAG,GACzDA,EAAa,WAAW,GAAG,GAAKA,EAAa,SAAS,GAAG,EAE1D,OAAOZ,EAAoBY,CAAY,CAE3C,CAEA,OAAOR,CACT,CAEU,mBACRM,EACAR,EACAW,EACuB,CACvB,GAAIH,EAAK,OAAS,YAChB,OAAOV,EAAoBE,CAAK,CAIpC,CACF,ECrCO,IAAMY,EAGT,CACF,OAAQ,CACN,aAAcC,EAAA,IAAM,IAAIC,EAAV,gBACd,eAAgBD,EAAA,IAAM,IAAIE,EAAV,iBAClB,CACF,EAEO,SAASC,EAAuBC,EAA0CC,EAG/E,CACA,IAAMC,EAAoCC,EACxCC,EAA8BJ,CAAO,EACrCK,CACF,EACMC,EAA6BH,EACjCI,EAAwB,CAAE,OAAAL,CAAO,CAAC,EAClCM,EACAb,CACF,EACA,OAAAO,EAAO,gBAAgB,SAASI,CAAQ,EACjC,CAAE,OAAAJ,EAAQ,SAAAI,CAAS,CAC5B,CAfgBV,EAAAG,EAAA",
  "names": ["RailroadTokenBuilder", "AbstractMermaidTokenBuilder", "__name", "decodeEscapedString", "__name", "input", "content", "value", "index", "character", "escaped", "RailroadValueConverter", "AbstractMermaidValueConverter", "rule", "cstNode", "trimmedValue", "_cstNode", "RailroadModule", "__name", "RailroadTokenBuilder", "RailroadValueConverter", "createRailroadServices", "context", "EmptyFileSystem", "shared", "inject", "createDefaultSharedCoreModule", "MermaidGeneratedSharedModule", "Railroad", "createDefaultCoreModule", "RailroadGrammarGeneratedModule"]
}
