erlang function
Highlight.js language definition for erlang.
Implementation
Mode erlang(Highlight hljs) {
final Mode mode0 = Mode();
final Mode mode1 = Mode();
final Mode mode2 = Mode();
final Mode mode3 = Mode();
final Mode mode4 = Mode();
final Mode mode5 = Mode();
final Mode mode6 = Mode();
final Mode mode7 = Mode();
final Mode mode8 = Mode();
final Mode mode9 = Mode();
final Mode mode10 = Mode();
final Mode mode11 = Mode();
final Mode mode12 = Mode();
final Mode mode13 = Mode();
final Mode mode14 = Mode();
final Mode mode15 = Mode();
final Mode mode16 = Mode();
final Mode mode17 = Mode();
final Mode mode18 = Mode();
final Mode mode19 = Mode();
final Mode mode20 = Mode();
final Mode mode21 = Mode();
final Mode mode22 = Mode();
final Mode mode23 = Mode();
final Mode mode24 = Mode();
final Mode mode25 = Mode();
final Mode mode26 = Mode();
final Mode mode27 = Mode();
final Mode mode28 = Mode();
final Mode mode29 = Mode();
final Mode mode30 = Mode();
final Mode mode31 = Mode();
final Mode mode32 = Mode();
mode0.scope = r'params';
mode0.begin = r'\(';
mode0.end = r'\)';
mode0.contains = [
mode1,
mode4,
mode5,
mode8,
mode11,
mode23,
mode24,
mode25,
mode26,
mode27,
mode28,
mode29,
mode32,
];
mode1.scope = r'comment';
mode1.begin = r'%';
mode1.end = r'$';
mode1.contains = [mode2, mode3];
mode2.scope = r'doctag';
mode2.begin = r'[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)';
mode2.end = r'(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):';
mode2.excludeBegin = true;
mode2.relevance = 0;
mode3.begin =
r"[ ]+((?:I|a|is|so|us|to|at|if|in|it|on|[A-Za-z]+['](d|ve|re|ll|t|s|n)|[A-Za-z]+[-][a-z]+|[A-Za-z][a-z]{2,})[.]?[:]?([.][ ]|[ ])){3}";
mode4.begin = r"fun\s+[a-z'][a-zA-Z0-9_']*/\d+";
mode5.beginKeywords = r'fun receive if try case maybe';
mode5.end = r'end';
mode5.keywords = {
r'keyword':
r'after and andalso|10 band begin bnot bor bsl bzr bxor case catch cond div end fun if let not of orelse|10 query receive rem try when xor maybe else',
r'literal': r'false true',
};
mode5.contains = [
mode1,
mode4,
mode6,
r'self',
mode8,
mode11,
mode23,
mode24,
mode25,
mode26,
mode27,
mode28,
mode29,
mode32,
];
mode6.scope = r'';
mode6.begin = r"'";
mode6.end = r"'";
mode6.illegal = r'\n';
mode6.contains = [mode7];
mode7.begin = r'\\[\s\S]';
mode7.relevance = 0;
mode8.begin =
r"([a-z'][a-zA-Z0-9_']*:[a-z'][a-zA-Z0-9_']*|[a-z'][a-zA-Z0-9_']*)\(";
mode8.end = r'\)';
mode8.returnBegin = true;
mode8.relevance = 0;
mode8.contains = [mode9, mode10];
mode9.begin =
r"([a-z'][a-zA-Z0-9_']*:[a-z'][a-zA-Z0-9_']*|[a-z'][a-zA-Z0-9_']*)";
mode9.relevance = 0;
mode10.begin = r'\(';
mode10.end = r'\)';
mode10.endsWithParent = true;
mode10.returnEnd = true;
mode10.relevance = 0;
mode10.contains = [
mode1,
mode4,
mode5,
mode8,
mode11,
mode23,
mode24,
mode25,
mode26,
mode27,
mode28,
mode29,
mode32,
];
mode11.scope = r'string';
mode11.contains = [mode7];
mode11.variants = [
mode12,
mode13,
mode14,
mode15,
mode16,
mode17,
mode18,
mode19,
mode20,
mode21,
mode22,
];
mode12.match = r'~\w?"""("*)(?!")[\s\S]*?"""\1';
mode13.begin = r'~\w?\(';
mode13.end = r'\)';
mode14.begin = r'~\w?\[';
mode14.end = r'\]';
mode15.begin = r'~\w?{';
mode15.end = r'}';
mode16.begin = r'~\w?<';
mode16.end = r'>';
mode17.begin = r'~\w?\/';
mode17.end = r'\/';
mode18.begin = r'~\w?\|';
mode18.end = r'\|';
mode19.begin = r"~\w?'";
mode19.end = r"'";
mode20.begin = r'~\w?"';
mode20.end = r'"';
mode21.begin = r'~\w?`';
mode21.end = r'`';
mode22.begin = r'~\w?#';
mode22.end = r'#';
mode23.scope = r'string';
mode23.match = r'"""("*)(?!")[\s\S]*?"""\1';
mode24.scope = r'string';
mode24.begin = r'"';
mode24.end = r'"';
mode24.illegal = r'\n';
mode24.contains = [mode7];
mode25.scope = r'number';
mode25.begin =
r'\b(\d+(_\d+)*#[a-fA-F0-9]+(_[a-fA-F0-9]+)*|\d+(_\d+)*(\.\d+(_\d+)*)?([eE][-+]?\d+)?)';
mode25.relevance = 0;
mode26.begin = r'\{';
mode26.end = r'\}';
mode26.relevance = 0;
mode26.contains = [
mode1,
mode4,
mode5,
mode8,
mode11,
mode23,
mode24,
mode25,
r'self',
mode27,
mode28,
mode29,
mode32,
];
mode27.begin = r'\b_([A-Z][A-Za-z0-9_]*)?';
mode27.relevance = 0;
mode28.begin = r'[A-Z][a-zA-Z0-9_]*';
mode28.relevance = 0;
mode29.begin = r'#[a-zA-Z_]\w*';
mode29.relevance = 0;
mode29.returnBegin = true;
mode29.contains = [mode30, mode31];
mode30.begin = r'#[a-zA-Z_]\w*';
mode30.relevance = 0;
mode31.begin = r'\{';
mode31.end = r'\}';
mode31.relevance = 0;
mode31.contains = [
mode1,
mode4,
mode5,
mode8,
mode11,
mode23,
mode24,
mode25,
mode26,
mode27,
mode28,
mode29,
mode32,
];
mode32.scope = r'string';
mode32.match = r'\$(\\([^0-9]|[0-9]{1,3}|)|.)';
return Mode(
name: r'Erlang',
aliases: [r'erl'],
keywords: {
r'keyword':
r'after and andalso|10 band begin bnot bor bsl bzr bxor case catch cond div end fun if let not of orelse|10 query receive rem try when xor maybe else',
r'literal': r'false true',
},
illegal: r'(</|\*=|\+=|-=|/\*|\*/|\(\*|\*\))',
contains: [
Mode(
scope: r'function',
begin: r"^[a-z'][a-zA-Z0-9_']*\s*\(",
end: r'->',
returnBegin: true,
illegal: r'\(|#|//|/\*|\\|:|;',
contains: [
mode0,
Mode(scope: r'title', begin: r"[a-z'][a-zA-Z0-9_']*", relevance: 0),
],
starts: Mode(
end: r';|\.',
keywords: {
r'keyword':
r'after and andalso|10 band begin bnot bor bsl bzr bxor case catch cond div end fun if let not of orelse|10 query receive rem try when xor maybe else',
r'literal': r'false true',
},
contains: [
mode1,
mode4,
mode5,
mode8,
mode11,
mode23,
mode24,
mode25,
mode26,
mode27,
mode28,
mode29,
mode32,
],
),
),
mode1,
Mode(
begin: r'^-',
end: r'\.',
relevance: 0,
excludeEnd: true,
returnBegin: true,
keywords: {
r'$pattern': r'-[a-zA-Z]\w*',
r'keyword':
r'-module|1.5 -record|1.5 -undef|1.5 -export|1.5 -ifdef|1.5 -ifndef|1.5 -author|1.5 -copyright|1.5 -doc|1.5 -moduledoc|1.5 -vsn|1.5 -import|1.5 -include|1.5 -include_lib|1.5 -compile|1.5 -define|1.5 -else|1.5 -endif|1.5 -file|1.5 -behaviour|1.5 -behavior|1.5 -spec|1.5 -on_load|1.5 -nifs|1.5',
},
contains: [mode0, mode11, mode23, mode24],
),
mode25,
mode11,
mode23,
mode24,
mode29,
mode27,
mode28,
mode26,
mode32,
Mode(begin: r'\.$'),
],
);
}