{"version":3,"sources":["webpack:///./node_modules/react-syntax-highlighter/node_modules/highlight.js/lib/languages/haskell.js"],"names":["module","exports","hljs","COMMENT","variants","contains","PRAGMA","className","begin","end","PREPROCESSOR","CONSTRUCTOR","relevance","LIST","illegal","inherit","TITLE_MODE","name","aliases","keywords","beginKeywords","C_NUMBER_MODE","QUOTE_STRING_MODE"],"mappings":"8EAuGAA,EAAOC,QAhGP,SAAiBC,GACf,IAAIC,EAAU,CACZC,SAAU,CAACF,EAAKC,QAAQ,KAAM,KAAMD,EAAKC,QAAQ,KAAM,KAAM,CAC3DE,SAAU,CAAC,YAGXC,EAAS,CACXC,UAAW,OACXC,MAAO,MACPC,IAAK,OAEHC,EAAe,CACjBH,UAAW,OACXC,MAAO,KACPC,IAAK,KAEHE,EAAc,CAChBJ,UAAW,OACXC,MAAO,kBAEPI,UAAW,GAETC,EAAO,CACTL,MAAO,MACPC,IAAK,MACLK,QAAS,IACTT,SAAU,CAACC,EAAQI,EAAc,CAC/BH,UAAW,OACXC,MAAO,0CACNN,EAAKa,QAAQb,EAAKc,WAAY,CAC/BR,MAAO,kBACLL,IAON,MAAO,CACLc,KAAM,UACNC,QAAS,CAAC,MACVC,SAAU,wOACVd,SAAU,CACV,CACEe,cAAe,SACfX,IAAK,QACLU,SAAU,eACVd,SAAU,CAACQ,EAAMV,GACjBW,QAAS,YACR,CACDN,MAAO,eACPC,IAAK,IACLU,SAAU,6BACVd,SAAU,CAACQ,EAAMV,GACjBW,QAAS,YACR,CACDP,UAAW,QACXC,MAAO,8BACPC,IAAK,QACLU,SAAU,8BACVd,SAAU,CAACM,EAAaE,EAAMV,IAC7B,CACDI,UAAW,QACXC,MAAO,0BACPC,IAAK,IACLU,SAAU,oCACVd,SAAU,CAACC,EAAQK,EAAaE,EAjCvB,CACXL,MAAO,IACPC,IAAK,IACLJ,SAAUQ,EAAKR,UA8BiCF,IAC7C,CACDiB,cAAe,UACfX,IAAK,IACLJ,SAAU,CAACM,EAAaE,EAAMV,IAC7B,CACDiB,cAAe,sBACfX,IAAK,IACLJ,SAAU,CAACH,EAAKmB,cAAelB,IAC9B,CACDK,MAAO,gBACPC,IAAK,IACLU,SAAU,uEACVd,SAAU,CAACM,EAAaT,EAAKoB,kBAAmBnB,IAC/C,CACDI,UAAW,OACXC,MAAO,kCACPC,IAAK,KAEPH,EAAQI,EAERR,EAAKoB,kBAAmBpB,EAAKmB,cAAeV,EAAaT,EAAKa,QAAQb,EAAKc,WAAY,CACrFR,MAAO,mBACLL,EAAS,CACXK,MAAO","file":"react-syntax-highlighter_languages_highlight_haskell-3b7ac44a57bdf19ecf83.js","sourcesContent":["/*\nLanguage: Haskell\nAuthor: Jeremy Hull <sourdrums@gmail.com>\nContributors: Zena Treep <zena.treep@gmail.com>\nWebsite: https://www.haskell.org\nCategory: functional\n*/\nfunction haskell(hljs) {\n  var COMMENT = {\n    variants: [hljs.COMMENT('--', '$'), hljs.COMMENT('{-', '-}', {\n      contains: ['self']\n    })]\n  };\n  var PRAGMA = {\n    className: 'meta',\n    begin: '{-#',\n    end: '#-}'\n  };\n  var PREPROCESSOR = {\n    className: 'meta',\n    begin: '^#',\n    end: '$'\n  };\n  var CONSTRUCTOR = {\n    className: 'type',\n    begin: '\\\\b[A-Z][\\\\w\\']*',\n    // TODO: other constructors (build-in, infix).\n    relevance: 0\n  };\n  var LIST = {\n    begin: '\\\\(',\n    end: '\\\\)',\n    illegal: '\"',\n    contains: [PRAGMA, PREPROCESSOR, {\n      className: 'type',\n      begin: '\\\\b[A-Z][\\\\w]*(\\\\((\\\\.\\\\.|,|\\\\w+)\\\\))?'\n    }, hljs.inherit(hljs.TITLE_MODE, {\n      begin: '[_a-z][\\\\w\\']*'\n    }), COMMENT]\n  };\n  var RECORD = {\n    begin: '{',\n    end: '}',\n    contains: LIST.contains\n  };\n  return {\n    name: 'Haskell',\n    aliases: ['hs'],\n    keywords: 'let in if then else case of where do module import hiding ' + 'qualified type data newtype deriving class instance as default ' + 'infix infixl infixr foreign export ccall stdcall cplusplus ' + 'jvm dotnet safe unsafe family forall mdo proc rec',\n    contains: [// Top-level constructions.\n    {\n      beginKeywords: 'module',\n      end: 'where',\n      keywords: 'module where',\n      contains: [LIST, COMMENT],\n      illegal: '\\\\W\\\\.|;'\n    }, {\n      begin: '\\\\bimport\\\\b',\n      end: '$',\n      keywords: 'import qualified as hiding',\n      contains: [LIST, COMMENT],\n      illegal: '\\\\W\\\\.|;'\n    }, {\n      className: 'class',\n      begin: '^(\\\\s*)?(class|instance)\\\\b',\n      end: 'where',\n      keywords: 'class family instance where',\n      contains: [CONSTRUCTOR, LIST, COMMENT]\n    }, {\n      className: 'class',\n      begin: '\\\\b(data|(new)?type)\\\\b',\n      end: '$',\n      keywords: 'data family type newtype deriving',\n      contains: [PRAGMA, CONSTRUCTOR, LIST, RECORD, COMMENT]\n    }, {\n      beginKeywords: 'default',\n      end: '$',\n      contains: [CONSTRUCTOR, LIST, COMMENT]\n    }, {\n      beginKeywords: 'infix infixl infixr',\n      end: '$',\n      contains: [hljs.C_NUMBER_MODE, COMMENT]\n    }, {\n      begin: '\\\\bforeign\\\\b',\n      end: '$',\n      keywords: 'foreign import export ccall stdcall cplusplus jvm ' + 'dotnet safe unsafe',\n      contains: [CONSTRUCTOR, hljs.QUOTE_STRING_MODE, COMMENT]\n    }, {\n      className: 'meta',\n      begin: '#!\\\\/usr\\\\/bin\\\\/env\\ runhaskell',\n      end: '$'\n    }, // \"Whitespaces\".\n    PRAGMA, PREPROCESSOR, // Literals and names.\n    // TODO: characters.\n    hljs.QUOTE_STRING_MODE, hljs.C_NUMBER_MODE, CONSTRUCTOR, hljs.inherit(hljs.TITLE_MODE, {\n      begin: '^[_a-z][\\\\w\\']*'\n    }), COMMENT, {\n      begin: '->|<-'\n    } // No markup, relevance booster\n    ]\n  };\n}\n\nmodule.exports = haskell;"],"sourceRoot":""}