{"version":3,"file":"elm.mjs","sources":["../../../../../../node_modules/highlight.js/lib/languages/elm.js"],"sourcesContent":["/*\nLanguage: Elm\nAuthor: Janis Voigtlaender <janis.voigtlaender@gmail.com>\nWebsite: https://elm-lang.org\nCategory: functional\n*/\n\n/** @type LanguageFn */\nfunction elm(hljs) {\n  const COMMENT = { variants: [\n    hljs.COMMENT('--', '$'),\n    hljs.COMMENT(\n      /\\{-/,\n      /-\\}/,\n      { contains: [ 'self' ] }\n    )\n  ] };\n\n  const CONSTRUCTOR = {\n    className: 'type',\n    begin: '\\\\b[A-Z][\\\\w\\']*', // TODO: other constructors (built-in, infix).\n    relevance: 0\n  };\n\n  const LIST = {\n    begin: '\\\\(',\n    end: '\\\\)',\n    illegal: '\"',\n    contains: [\n      {\n        className: 'type',\n        begin: '\\\\b[A-Z][\\\\w]*(\\\\((\\\\.\\\\.|,|\\\\w+)\\\\))?'\n      },\n      COMMENT\n    ]\n  };\n\n  const RECORD = {\n    begin: /\\{/,\n    end: /\\}/,\n    contains: LIST.contains\n  };\n\n  const CHARACTER = {\n    className: 'string',\n    begin: '\\'\\\\\\\\?.',\n    end: '\\'',\n    illegal: '.'\n  };\n\n  const KEYWORDS = [\n    \"let\",\n    \"in\",\n    \"if\",\n    \"then\",\n    \"else\",\n    \"case\",\n    \"of\",\n    \"where\",\n    \"module\",\n    \"import\",\n    \"exposing\",\n    \"type\",\n    \"alias\",\n    \"as\",\n    \"infix\",\n    \"infixl\",\n    \"infixr\",\n    \"port\",\n    \"effect\",\n    \"command\",\n    \"subscription\"\n  ];\n\n  return {\n    name: 'Elm',\n    keywords: KEYWORDS,\n    contains: [\n\n      // Top-level constructions.\n\n      {\n        beginKeywords: 'port effect module',\n        end: 'exposing',\n        keywords: 'port effect module where command subscription exposing',\n        contains: [\n          LIST,\n          COMMENT\n        ],\n        illegal: '\\\\W\\\\.|;'\n      },\n      {\n        begin: 'import',\n        end: '$',\n        keywords: 'import as exposing',\n        contains: [\n          LIST,\n          COMMENT\n        ],\n        illegal: '\\\\W\\\\.|;'\n      },\n      {\n        begin: 'type',\n        end: '$',\n        keywords: 'type alias',\n        contains: [\n          CONSTRUCTOR,\n          LIST,\n          RECORD,\n          COMMENT\n        ]\n      },\n      {\n        beginKeywords: 'infix infixl infixr',\n        end: '$',\n        contains: [\n          hljs.C_NUMBER_MODE,\n          COMMENT\n        ]\n      },\n      {\n        begin: 'port',\n        end: '$',\n        keywords: 'port',\n        contains: [ COMMENT ]\n      },\n\n      // Literals and names.\n      CHARACTER,\n      hljs.QUOTE_STRING_MODE,\n      hljs.C_NUMBER_MODE,\n      CONSTRUCTOR,\n      hljs.inherit(hljs.TITLE_MODE, { begin: '^[_a-z][\\\\w\\']*' }),\n      COMMENT,\n\n      { // No markup, relevance booster\n        begin: '->|<-' }\n    ],\n    illegal: /;/\n  };\n}\n\nmodule.exports = elm;\n"],"names":["elm","hljs","COMMENT","CONSTRUCTOR","LIST","RECORD","CHARACTER","elm_1"],"mappings":";;;;AAQA,WAASA,EAAIC,GAAM;AACjB,UAAMC,IAAU,EAAE,UAAU;AAAA,MAC1BD,EAAK,QAAQ,MAAM,GAAG;AAAA,MACtBA,EAAK;AAAA,QACH;AAAA,QACA;AAAA,QACA,EAAE,UAAU,CAAE,MAAM,EAAE;AAAA;IAE5B,EAAG,GAEKE,IAAc;AAAA,MAClB,WAAW;AAAA,MACX,OAAO;AAAA;AAAA,MACP,WAAW;AAAA,IACf,GAEQC,IAAO;AAAA,MACX,OAAO;AAAA,MACP,KAAK;AAAA,MACL,SAAS;AAAA,MACT,UAAU;AAAA,QACR;AAAA,UACE,WAAW;AAAA,UACX,OAAO;AAAA;QAETF;AAAA;IAEN,GAEQG,IAAS;AAAA,MACb,OAAO;AAAA,MACP,KAAK;AAAA,MACL,UAAUD,EAAK;AAAA,IACnB,GAEQE,IAAY;AAAA,MAChB,WAAW;AAAA,MACX,OAAO;AAAA,MACP,KAAK;AAAA,MACL,SAAS;AAAA,IACb;AA0BE,WAAO;AAAA,MACL,MAAM;AAAA,MACN,UA1Be;AAAA,QACf;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACJ;AAAA,MAKI,UAAU;AAAA;AAAA,QAIR;AAAA,UACE,eAAe;AAAA,UACf,KAAK;AAAA,UACL,UAAU;AAAA,UACV,UAAU;AAAA,YACRF;AAAA,YACAF;AAAA;UAEF,SAAS;AAAA;QAEX;AAAA,UACE,OAAO;AAAA,UACP,KAAK;AAAA,UACL,UAAU;AAAA,UACV,UAAU;AAAA,YACRE;AAAA,YACAF;AAAA;UAEF,SAAS;AAAA;QAEX;AAAA,UACE,OAAO;AAAA,UACP,KAAK;AAAA,UACL,UAAU;AAAA,UACV,UAAU;AAAA,YACRC;AAAA,YACAC;AAAA,YACAC;AAAA,YACAH;AAAA;;QAGJ;AAAA,UACE,eAAe;AAAA,UACf,KAAK;AAAA,UACL,UAAU;AAAA,YACRD,EAAK;AAAA,YACLC;AAAA;;QAGJ;AAAA,UACE,OAAO;AAAA,UACP,KAAK;AAAA,UACL,UAAU;AAAA,UACV,UAAU,CAAEA,CAAO;AAAA;;QAIrBI;AAAA,QACAL,EAAK;AAAA,QACLA,EAAK;AAAA,QACLE;AAAA,QACAF,EAAK,QAAQA,EAAK,YAAY,EAAE,OAAO,kBAAmB;AAAA,QAC1DC;AAAA,QAEA;AAAA;AAAA,UACE,OAAO;AAAA,QAAO;AAAA;MAElB,SAAS;AAAA,IACb;AAAA,EACA;AAEA,SAAAK,IAAiBP;;","x_google_ignoreList":[0]}