{"version":3,"sources":["webpack:///./node_modules/react-syntax-highlighter/node_modules/highlight.js/lib/languages/scala.js"],"names":["module","exports","hljs","SUBST","className","variants","begin","end","STRING","illegal","contains","BACKSLASH_ESCAPE","relevance","TYPE","NAME","CLASS","beginKeywords","excludeEnd","C_LINE_COMMENT_MODE","C_BLOCK_COMMENT_MODE","excludeBegin","METHOD","name","keywords","literal","keyword","C_NUMBER_MODE"],"mappings":"8EAsGAA,EAAOC,QA/FP,SAAeC,GACb,IAKIC,EAAQ,CACVC,UAAW,QACXC,SAAU,CAAC,CACTC,MAAO,oBACN,CACDA,MAAO,OACPC,IAAK,OAGLC,EAAS,CACXJ,UAAW,SACXC,SAAU,CAAC,CACTC,MAAO,IACPC,IAAK,IACLE,QAAS,MACTC,SAAU,CAACR,EAAKS,mBACf,CACDL,MAAO,MACPC,IAAK,MACLK,UAAW,IACV,CACDN,MAAO,UACPC,IAAK,IACLE,QAAS,MACTC,SAAU,CAACR,EAAKS,iBAAkBR,IACjC,CACDC,UAAW,SACXE,MAAO,YACPC,IAAK,MACLG,SAAU,CAACP,GACXS,UAAW,MAOXC,EAAO,CACTT,UAAW,OACXE,MAAO,wBACPM,UAAW,GAETE,EAAO,CACTV,UAAW,QACXE,MAAO,iFACPM,UAAW,GAETG,EAAQ,CACVX,UAAW,QACXY,cAAe,0BACfT,IAAK,aACLU,YAAY,EACZP,SAAU,CAACR,EAAKgB,oBAAqBhB,EAAKiB,qBAAsB,CAC9DH,cAAe,eACfJ,UAAW,IACV,CACDN,MAAO,KACPC,IAAK,KACLa,cAAc,EACdH,YAAY,EACZL,UAAW,EACXF,SAAU,CAACG,IACV,CACDT,UAAW,SACXE,MAAO,KACPC,IAAK,KACLa,cAAc,EACdH,YAAY,EACZL,UAAW,EACXF,SAAU,CAACG,IACVC,IAEDO,EAAS,CACXjB,UAAW,WACXY,cAAe,MACfT,IAAK,cACLU,YAAY,EACZP,SAAU,CAACI,IAEb,MAAO,CACLQ,KAAM,QACNC,SAAU,CACRC,QAAS,kBACTC,QAAS,yPAEXf,SAAU,CAACR,EAAKgB,oBAAqBhB,EAAKiB,qBAAsBX,EApDrD,CACXJ,UAAW,SACXE,MAAO,uBAkDyEO,EAAMQ,EAAQN,EAAOb,EAAKwB,cA1F3F,CACftB,UAAW,OACXE,MAAO","file":"react-syntax-highlighter_languages_highlight_scala-f375d856cbf48d248569.js","sourcesContent":["/*\nLanguage: Scala\nCategory: functional\nAuthor: Jan Berkel <jan.berkel@gmail.com>\nContributors: Erik Osheim <d_m@plastic-idolatry.com>\nWebsite: https://www.scala-lang.org\n*/\nfunction scala(hljs) {\n  var ANNOTATION = {\n    className: 'meta',\n    begin: '@[A-Za-z]+'\n  }; // used in strings for escaping/interpolation/substitution\n\n  var SUBST = {\n    className: 'subst',\n    variants: [{\n      begin: '\\\\$[A-Za-z0-9_]+'\n    }, {\n      begin: '\\\\${',\n      end: '}'\n    }]\n  };\n  var STRING = {\n    className: 'string',\n    variants: [{\n      begin: '\"',\n      end: '\"',\n      illegal: '\\\\n',\n      contains: [hljs.BACKSLASH_ESCAPE]\n    }, {\n      begin: '\"\"\"',\n      end: '\"\"\"',\n      relevance: 10\n    }, {\n      begin: '[a-z]+\"',\n      end: '\"',\n      illegal: '\\\\n',\n      contains: [hljs.BACKSLASH_ESCAPE, SUBST]\n    }, {\n      className: 'string',\n      begin: '[a-z]+\"\"\"',\n      end: '\"\"\"',\n      contains: [SUBST],\n      relevance: 10\n    }]\n  };\n  var SYMBOL = {\n    className: 'symbol',\n    begin: '\\'\\\\w[\\\\w\\\\d_]*(?!\\')'\n  };\n  var TYPE = {\n    className: 'type',\n    begin: '\\\\b[A-Z][A-Za-z0-9_]*',\n    relevance: 0\n  };\n  var NAME = {\n    className: 'title',\n    begin: /[^0-9\\n\\t \"'(),.`{}\\[\\]:;][^\\n\\t \"'(),.`{}\\[\\]:;]+|[^0-9\\n\\t \"'(),.`{}\\[\\]:;=]/,\n    relevance: 0\n  };\n  var CLASS = {\n    className: 'class',\n    beginKeywords: 'class object trait type',\n    end: /[:={\\[\\n;]/,\n    excludeEnd: true,\n    contains: [hljs.C_LINE_COMMENT_MODE, hljs.C_BLOCK_COMMENT_MODE, {\n      beginKeywords: 'extends with',\n      relevance: 10\n    }, {\n      begin: /\\[/,\n      end: /\\]/,\n      excludeBegin: true,\n      excludeEnd: true,\n      relevance: 0,\n      contains: [TYPE]\n    }, {\n      className: 'params',\n      begin: /\\(/,\n      end: /\\)/,\n      excludeBegin: true,\n      excludeEnd: true,\n      relevance: 0,\n      contains: [TYPE]\n    }, NAME]\n  };\n  var METHOD = {\n    className: 'function',\n    beginKeywords: 'def',\n    end: /[:={\\[(\\n;]/,\n    excludeEnd: true,\n    contains: [NAME]\n  };\n  return {\n    name: 'Scala',\n    keywords: {\n      literal: 'true false null',\n      keyword: 'type yield lazy override def with val var sealed abstract private trait object if forSome for while throw finally protected extends import final return else break new catch super class case package default try this match continue throws implicit'\n    },\n    contains: [hljs.C_LINE_COMMENT_MODE, hljs.C_BLOCK_COMMENT_MODE, STRING, SYMBOL, TYPE, METHOD, CLASS, hljs.C_NUMBER_MODE, ANNOTATION]\n  };\n}\n\nmodule.exports = scala;"],"sourceRoot":""}