{"version":3,"sources":["webpack:///./node_modules/react-syntax-highlighter/node_modules/highlight.js/lib/languages/delphi.js"],"names":["module","exports","hljs","KEYWORDS","COMMENT_MODES","C_LINE_COMMENT_MODE","COMMENT","relevance","DIRECTIVE","className","variants","begin","end","STRING","contains","CHAR_STRING","CLASS","IDENT_RE","returnBegin","TITLE_MODE","FUNCTION","beginKeywords","keywords","concat","name","aliases","case_insensitive","illegal","NUMBER_MODE"],"mappings":"8EA8EAA,EAAOC,QAxEP,SAAgBC,GACd,IAAIC,EAAW,26BACXC,EAAgB,CAACF,EAAKG,oBAAqBH,EAAKI,QAAQ,KAAM,KAAM,CACtEC,UAAW,IACTL,EAAKI,QAAQ,OAAQ,OAAQ,CAC/BC,UAAW,MAETC,EAAY,CACdC,UAAW,OACXC,SAAU,CAAC,CACTC,MAAO,OACPC,IAAK,MACJ,CACDD,MAAO,SACPC,IAAK,UAGLC,EAAS,CACXJ,UAAW,SACXE,MAAO,IACPC,IAAK,IACLE,SAAU,CAAC,CACTH,MAAO,QAkBPI,EAAc,CAChBN,UAAW,SACXE,MAAO,WAELK,EAAQ,CACVL,MAAOT,EAAKe,SAAW,wBACvBC,aAAa,EACbJ,SAAU,CAACZ,EAAKiB,aAEdC,EAAW,CACbX,UAAW,WACXY,cAAe,4CACfT,IAAK,OACLU,SAAU,qDACVR,SAAU,CAACZ,EAAKiB,WAAY,CAC1BV,UAAW,SACXE,MAAO,KACPC,IAAK,KACLU,SAAUnB,EACVW,SAAU,CAACD,EAAQE,EAAaP,GAAWe,OAAOnB,IACjDI,GAAWe,OAAOnB,IAEvB,MAAO,CACLoB,KAAM,SACNC,QAAS,CAAC,MAAO,MAAO,MAAO,SAAU,aAAc,UAAW,MAAO,OACzEC,kBAAkB,EAClBJ,SAAUnB,EACVwB,QAAS,2BACTb,SAAU,CAACD,EAAQE,EAAab,EAAK0B,YA3C1B,CACXnB,UAAW,SACXF,UAAW,EAEXG,SAAU,CAAC,CAETC,MAAO,mBACN,CAEDA,MAAO,WACN,CAEDA,MAAO,YA+BiDK,EAAOI,EAAUZ,GAAWe,OAAOnB","file":"react-syntax-highlighter_languages_highlight_delphi-1eba84180d840c9da4ca.js","sourcesContent":["/*\nLanguage: Delphi\nWebsite: https://www.embarcadero.com/products/delphi\n*/\n\n/** @type LanguageFn */\nfunction delphi(hljs) {\n  var KEYWORDS = 'exports register file shl array record property for mod while set ally label uses raise not ' + 'stored class safecall var interface or private static exit index inherited to else stdcall ' + 'override shr asm far resourcestring finalization packed virtual out and protected library do ' + 'xorwrite goto near function end div overload object unit begin string on inline repeat until ' + 'destructor write message program with read initialization except default nil if case cdecl in ' + 'downto threadvar of try pascal const external constructor type public then implementation ' + 'finally published procedure absolute reintroduce operator as is abstract alias assembler ' + 'bitpacked break continue cppdecl cvar enumerator experimental platform deprecated ' + 'unimplemented dynamic export far16 forward generic helper implements interrupt iochecks ' + 'local name nodefault noreturn nostackframe oldfpccall otherwise saveregisters softfloat ' + 'specialize strict unaligned varargs ';\n  var COMMENT_MODES = [hljs.C_LINE_COMMENT_MODE, hljs.COMMENT(/\\{/, /\\}/, {\n    relevance: 0\n  }), hljs.COMMENT(/\\(\\*/, /\\*\\)/, {\n    relevance: 10\n  })];\n  var DIRECTIVE = {\n    className: 'meta',\n    variants: [{\n      begin: /\\{\\$/,\n      end: /\\}/\n    }, {\n      begin: /\\(\\*\\$/,\n      end: /\\*\\)/\n    }]\n  };\n  var STRING = {\n    className: 'string',\n    begin: /'/,\n    end: /'/,\n    contains: [{\n      begin: /''/\n    }]\n  };\n  var NUMBER = {\n    className: 'number',\n    relevance: 0,\n    // Source: https://www.freepascal.org/docs-html/ref/refse6.html\n    variants: [{\n      // Hexadecimal notation, e.g., $7F.\n      begin: '\\\\$[0-9A-Fa-f]+'\n    }, {\n      // Octal notation, e.g., &42.\n      begin: '&[0-7]+'\n    }, {\n      // Binary notation, e.g., %1010.\n      begin: '%[01]+'\n    }]\n  };\n  var CHAR_STRING = {\n    className: 'string',\n    begin: /(#\\d+)+/\n  };\n  var CLASS = {\n    begin: hljs.IDENT_RE + '\\\\s*=\\\\s*class\\\\s*\\\\(',\n    returnBegin: true,\n    contains: [hljs.TITLE_MODE]\n  };\n  var FUNCTION = {\n    className: 'function',\n    beginKeywords: 'function constructor destructor procedure',\n    end: /[:;]/,\n    keywords: 'function constructor|10 destructor|10 procedure|10',\n    contains: [hljs.TITLE_MODE, {\n      className: 'params',\n      begin: /\\(/,\n      end: /\\)/,\n      keywords: KEYWORDS,\n      contains: [STRING, CHAR_STRING, DIRECTIVE].concat(COMMENT_MODES)\n    }, DIRECTIVE].concat(COMMENT_MODES)\n  };\n  return {\n    name: 'Delphi',\n    aliases: ['dpr', 'dfm', 'pas', 'pascal', 'freepascal', 'lazarus', 'lpr', 'lfm'],\n    case_insensitive: true,\n    keywords: KEYWORDS,\n    illegal: /\"|\\$[G-Zg-z]|\\/\\*|<\\/|\\|/,\n    contains: [STRING, CHAR_STRING, hljs.NUMBER_MODE, NUMBER, CLASS, FUNCTION, DIRECTIVE].concat(COMMENT_MODES)\n  };\n}\n\nmodule.exports = delphi;"],"sourceRoot":""}