{"version":3,"file":"erlang.mjs","sources":["../../../../../../node_modules/highlight.js/lib/languages/erlang.js"],"sourcesContent":["/*\nLanguage: Erlang\nDescription: Erlang is a general-purpose functional language, with strict evaluation, single assignment, and dynamic typing.\nAuthor: Nikolay Zakharov <nikolay.desh@gmail.com>, Dmitry Kovega <arhibot@gmail.com>\nWebsite: https://www.erlang.org\nCategory: functional\n*/\n\n/** @type LanguageFn */\nfunction erlang(hljs) {\n  const BASIC_ATOM_RE = '[a-z\\'][a-zA-Z0-9_\\']*';\n  const FUNCTION_NAME_RE = '(' + BASIC_ATOM_RE + ':' + BASIC_ATOM_RE + '|' + BASIC_ATOM_RE + ')';\n  const ERLANG_RESERVED = {\n    keyword:\n      'after and andalso|10 band begin bnot bor bsl bzr bxor case catch cond div end fun if '\n      + 'let not of orelse|10 query receive rem try when xor',\n    literal:\n      'false true'\n  };\n\n  const COMMENT = hljs.COMMENT('%', '$');\n  const NUMBER = {\n    className: 'number',\n    begin: '\\\\b(\\\\d+(_\\\\d+)*#[a-fA-F0-9]+(_[a-fA-F0-9]+)*|\\\\d+(_\\\\d+)*(\\\\.\\\\d+(_\\\\d+)*)?([eE][-+]?\\\\d+)?)',\n    relevance: 0\n  };\n  const NAMED_FUN = { begin: 'fun\\\\s+' + BASIC_ATOM_RE + '/\\\\d+' };\n  const FUNCTION_CALL = {\n    begin: FUNCTION_NAME_RE + '\\\\(',\n    end: '\\\\)',\n    returnBegin: true,\n    relevance: 0,\n    contains: [\n      {\n        begin: FUNCTION_NAME_RE,\n        relevance: 0\n      },\n      {\n        begin: '\\\\(',\n        end: '\\\\)',\n        endsWithParent: true,\n        returnEnd: true,\n        relevance: 0\n        // \"contains\" defined later\n      }\n    ]\n  };\n  const TUPLE = {\n    begin: /\\{/,\n    end: /\\}/,\n    relevance: 0\n    // \"contains\" defined later\n  };\n  const VAR1 = {\n    begin: '\\\\b_([A-Z][A-Za-z0-9_]*)?',\n    relevance: 0\n  };\n  const VAR2 = {\n    begin: '[A-Z][a-zA-Z0-9_]*',\n    relevance: 0\n  };\n  const RECORD_ACCESS = {\n    begin: '#' + hljs.UNDERSCORE_IDENT_RE,\n    relevance: 0,\n    returnBegin: true,\n    contains: [\n      {\n        begin: '#' + hljs.UNDERSCORE_IDENT_RE,\n        relevance: 0\n      },\n      {\n        begin: /\\{/,\n        end: /\\}/,\n        relevance: 0\n        // \"contains\" defined later\n      }\n    ]\n  };\n  const CHAR_LITERAL = {\n    scope: 'string',\n    match: /\\$(\\\\([^0-9]|[0-9]{1,3}|)|.)/,\n  };\n\n  const BLOCK_STATEMENTS = {\n    beginKeywords: 'fun receive if try case',\n    end: 'end',\n    keywords: ERLANG_RESERVED\n  };\n  BLOCK_STATEMENTS.contains = [\n    COMMENT,\n    NAMED_FUN,\n    hljs.inherit(hljs.APOS_STRING_MODE, { className: '' }),\n    BLOCK_STATEMENTS,\n    FUNCTION_CALL,\n    hljs.QUOTE_STRING_MODE,\n    NUMBER,\n    TUPLE,\n    VAR1,\n    VAR2,\n    RECORD_ACCESS,\n    CHAR_LITERAL\n  ];\n\n  const BASIC_MODES = [\n    COMMENT,\n    NAMED_FUN,\n    BLOCK_STATEMENTS,\n    FUNCTION_CALL,\n    hljs.QUOTE_STRING_MODE,\n    NUMBER,\n    TUPLE,\n    VAR1,\n    VAR2,\n    RECORD_ACCESS,\n    CHAR_LITERAL\n  ];\n  FUNCTION_CALL.contains[1].contains = BASIC_MODES;\n  TUPLE.contains = BASIC_MODES;\n  RECORD_ACCESS.contains[1].contains = BASIC_MODES;\n\n  const DIRECTIVES = [\n    \"-module\",\n    \"-record\",\n    \"-undef\",\n    \"-export\",\n    \"-ifdef\",\n    \"-ifndef\",\n    \"-author\",\n    \"-copyright\",\n    \"-doc\",\n    \"-vsn\",\n    \"-import\",\n    \"-include\",\n    \"-include_lib\",\n    \"-compile\",\n    \"-define\",\n    \"-else\",\n    \"-endif\",\n    \"-file\",\n    \"-behaviour\",\n    \"-behavior\",\n    \"-spec\"\n  ];\n\n  const PARAMS = {\n    className: 'params',\n    begin: '\\\\(',\n    end: '\\\\)',\n    contains: BASIC_MODES\n  };\n\n  return {\n    name: 'Erlang',\n    aliases: [ 'erl' ],\n    keywords: ERLANG_RESERVED,\n    illegal: '(</|\\\\*=|\\\\+=|-=|/\\\\*|\\\\*/|\\\\(\\\\*|\\\\*\\\\))',\n    contains: [\n      {\n        className: 'function',\n        begin: '^' + BASIC_ATOM_RE + '\\\\s*\\\\(',\n        end: '->',\n        returnBegin: true,\n        illegal: '\\\\(|#|//|/\\\\*|\\\\\\\\|:|;',\n        contains: [\n          PARAMS,\n          hljs.inherit(hljs.TITLE_MODE, { begin: BASIC_ATOM_RE })\n        ],\n        starts: {\n          end: ';|\\\\.',\n          keywords: ERLANG_RESERVED,\n          contains: BASIC_MODES\n        }\n      },\n      COMMENT,\n      {\n        begin: '^-',\n        end: '\\\\.',\n        relevance: 0,\n        excludeEnd: true,\n        returnBegin: true,\n        keywords: {\n          $pattern: '-' + hljs.IDENT_RE,\n          keyword: DIRECTIVES.map(x => `${x}|1.5`).join(\" \")\n        },\n        contains: [ PARAMS ]\n      },\n      NUMBER,\n      hljs.QUOTE_STRING_MODE,\n      RECORD_ACCESS,\n      VAR1,\n      VAR2,\n      TUPLE,\n      CHAR_LITERAL,\n      { begin: /\\.$/ } // relevance booster\n    ]\n  };\n}\n\nmodule.exports = erlang;\n"],"names":["erlang","hljs","BASIC_ATOM_RE","FUNCTION_NAME_RE","ERLANG_RESERVED","COMMENT","NUMBER","NAMED_FUN","FUNCTION_CALL","TUPLE","VAR1","VAR2","RECORD_ACCESS","CHAR_LITERAL","BLOCK_STATEMENTS","BASIC_MODES","DIRECTIVES","PARAMS","x","erlang_1"],"mappings":";;;;AASA,WAASA,EAAOC,GAAM;AACpB,UAAMC,IAAgB,wBAChBC,IAAmB,MAAMD,IAAgB,MAAMA,IAAgB,MAAMA,IAAgB,KACrFE,IAAkB;AAAA,MACtB,SACE;AAAA,MAEF,SACE;AAAA,IACN,GAEQC,IAAUJ,EAAK,QAAQ,KAAK,GAAG,GAC/BK,IAAS;AAAA,MACb,WAAW;AAAA,MACX,OAAO;AAAA,MACP,WAAW;AAAA,IACf,GACQC,IAAY,EAAE,OAAO,YAAYL,IAAgB,QAAO,GACxDM,IAAgB;AAAA,MACpB,OAAOL,IAAmB;AAAA,MAC1B,KAAK;AAAA,MACL,aAAa;AAAA,MACb,WAAW;AAAA,MACX,UAAU;AAAA,QACR;AAAA,UACE,OAAOA;AAAA,UACP,WAAW;AAAA;QAEb;AAAA,UACE,OAAO;AAAA,UACP,KAAK;AAAA,UACL,gBAAgB;AAAA,UAChB,WAAW;AAAA,UACX,WAAW;AAAA;AAAA;;IAInB,GACQM,IAAQ;AAAA,MACZ,OAAO;AAAA,MACP,KAAK;AAAA,MACL,WAAW;AAAA;AAAA,IAEf,GACQC,IAAO;AAAA,MACX,OAAO;AAAA,MACP,WAAW;AAAA,IACf,GACQC,IAAO;AAAA,MACX,OAAO;AAAA,MACP,WAAW;AAAA,IACf,GACQC,IAAgB;AAAA,MACpB,OAAO,MAAMX,EAAK;AAAA,MAClB,WAAW;AAAA,MACX,aAAa;AAAA,MACb,UAAU;AAAA,QACR;AAAA,UACE,OAAO,MAAMA,EAAK;AAAA,UAClB,WAAW;AAAA;QAEb;AAAA,UACE,OAAO;AAAA,UACP,KAAK;AAAA,UACL,WAAW;AAAA;AAAA;;IAInB,GACQY,IAAe;AAAA,MACnB,OAAO;AAAA,MACP,OAAO;AAAA,IACX,GAEQC,IAAmB;AAAA,MACvB,eAAe;AAAA,MACf,KAAK;AAAA,MACL,UAAUV;AAAA,IACd;AACE,IAAAU,EAAiB,WAAW;AAAA,MAC1BT;AAAA,MACAE;AAAA,MACAN,EAAK,QAAQA,EAAK,kBAAkB,EAAE,WAAW,IAAI;AAAA,MACrDa;AAAA,MACAN;AAAA,MACAP,EAAK;AAAA,MACLK;AAAA,MACAG;AAAA,MACAC;AAAA,MACAC;AAAA,MACAC;AAAA,MACAC;AAAA,IACJ;AAEE,UAAME,IAAc;AAAA,MAClBV;AAAA,MACAE;AAAA,MACAO;AAAA,MACAN;AAAA,MACAP,EAAK;AAAA,MACLK;AAAA,MACAG;AAAA,MACAC;AAAA,MACAC;AAAA,MACAC;AAAA,MACAC;AAAA,IACJ;AACE,IAAAL,EAAc,SAAS,CAAC,EAAE,WAAWO,GACrCN,EAAM,WAAWM,GACjBH,EAAc,SAAS,CAAC,EAAE,WAAWG;AAErC,UAAMC,IAAa;AAAA,MACjB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ,GAEQC,IAAS;AAAA,MACb,WAAW;AAAA,MACX,OAAO;AAAA,MACP,KAAK;AAAA,MACL,UAAUF;AAAA,IACd;AAEE,WAAO;AAAA,MACL,MAAM;AAAA,MACN,SAAS,CAAE,KAAK;AAAA,MAChB,UAAUX;AAAA,MACV,SAAS;AAAA,MACT,UAAU;AAAA,QACR;AAAA,UACE,WAAW;AAAA,UACX,OAAO,MAAMF,IAAgB;AAAA,UAC7B,KAAK;AAAA,UACL,aAAa;AAAA,UACb,SAAS;AAAA,UACT,UAAU;AAAA,YACRe;AAAA,YACAhB,EAAK,QAAQA,EAAK,YAAY,EAAE,OAAOC,EAAa,CAAE;AAAA;UAExD,QAAQ;AAAA,YACN,KAAK;AAAA,YACL,UAAUE;AAAA,YACV,UAAUW;AAAA;;QAGdV;AAAA,QACA;AAAA,UACE,OAAO;AAAA,UACP,KAAK;AAAA,UACL,WAAW;AAAA,UACX,YAAY;AAAA,UACZ,aAAa;AAAA,UACb,UAAU;AAAA,YACR,UAAU,MAAMJ,EAAK;AAAA,YACrB,SAASe,EAAW,IAAI,CAAAE,MAAK,GAAGA,CAAC,MAAM,EAAE,KAAK,GAAG;AAAA;UAEnD,UAAU,CAAED,CAAM;AAAA;QAEpBX;AAAA,QACAL,EAAK;AAAA,QACLW;AAAA,QACAF;AAAA,QACAC;AAAA,QACAF;AAAA,QACAI;AAAA,QACA,EAAE,OAAO,MAAK;AAAA;AAAA;IAEpB;AAAA,EACA;AAEA,SAAAM,IAAiBnB;;","x_google_ignoreList":[0]}