diff options
author | Florian Dold <florian.dold@gmail.com> | 2017-05-24 15:10:37 +0200 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2017-05-24 15:11:17 +0200 |
commit | 7a3df06eb573d36142bd1a8e03c5ce8752d300b3 (patch) | |
tree | 70bfaea8884c374876f607774850a3a51c0cb381 /node_modules/highlight.js/lib/languages/erlang.js | |
parent | aca1143cb9eed16cf37f04e475e4257418dd18ac (diff) |
fix build issues and add typedoc
Diffstat (limited to 'node_modules/highlight.js/lib/languages/erlang.js')
-rw-r--r-- | node_modules/highlight.js/lib/languages/erlang.js | 145 |
1 files changed, 145 insertions, 0 deletions
diff --git a/node_modules/highlight.js/lib/languages/erlang.js b/node_modules/highlight.js/lib/languages/erlang.js new file mode 100644 index 000000000..5be789393 --- /dev/null +++ b/node_modules/highlight.js/lib/languages/erlang.js @@ -0,0 +1,145 @@ +module.exports = function(hljs) { + var BASIC_ATOM_RE = '[a-z\'][a-zA-Z0-9_\']*'; + var FUNCTION_NAME_RE = '(' + BASIC_ATOM_RE + ':' + BASIC_ATOM_RE + '|' + BASIC_ATOM_RE + ')'; + var ERLANG_RESERVED = { + keyword: + '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', + literal: + 'false true' + }; + + var COMMENT = hljs.COMMENT('%', '$'); + var NUMBER = { + className: 'number', + begin: '\\b(\\d+#[a-fA-F0-9]+|\\d+(\\.\\d+)?([eE][-+]?\\d+)?)', + relevance: 0 + }; + var NAMED_FUN = { + begin: 'fun\\s+' + BASIC_ATOM_RE + '/\\d+' + }; + var FUNCTION_CALL = { + begin: FUNCTION_NAME_RE + '\\(', end: '\\)', + returnBegin: true, + relevance: 0, + contains: [ + { + begin: FUNCTION_NAME_RE, relevance: 0 + }, + { + begin: '\\(', end: '\\)', endsWithParent: true, + returnEnd: true, + relevance: 0 + // "contains" defined later + } + ] + }; + var TUPLE = { + begin: '{', end: '}', + relevance: 0 + // "contains" defined later + }; + var VAR1 = { + begin: '\\b_([A-Z][A-Za-z0-9_]*)?', + relevance: 0 + }; + var VAR2 = { + begin: '[A-Z][a-zA-Z0-9_]*', + relevance: 0 + }; + var RECORD_ACCESS = { + begin: '#' + hljs.UNDERSCORE_IDENT_RE, + relevance: 0, + returnBegin: true, + contains: [ + { + begin: '#' + hljs.UNDERSCORE_IDENT_RE, + relevance: 0 + }, + { + begin: '{', end: '}', + relevance: 0 + // "contains" defined later + } + ] + }; + + var BLOCK_STATEMENTS = { + beginKeywords: 'fun receive if try case', end: 'end', + keywords: ERLANG_RESERVED + }; + BLOCK_STATEMENTS.contains = [ + COMMENT, + NAMED_FUN, + hljs.inherit(hljs.APOS_STRING_MODE, {className: ''}), + BLOCK_STATEMENTS, + FUNCTION_CALL, + hljs.QUOTE_STRING_MODE, + NUMBER, + TUPLE, + VAR1, VAR2, + RECORD_ACCESS + ]; + + var BASIC_MODES = [ + COMMENT, + NAMED_FUN, + BLOCK_STATEMENTS, + FUNCTION_CALL, + hljs.QUOTE_STRING_MODE, + NUMBER, + TUPLE, + VAR1, VAR2, + RECORD_ACCESS + ]; + FUNCTION_CALL.contains[1].contains = BASIC_MODES; + TUPLE.contains = BASIC_MODES; + RECORD_ACCESS.contains[1].contains = BASIC_MODES; + + var PARAMS = { + className: 'params', + begin: '\\(', end: '\\)', + contains: BASIC_MODES + }; + return { + aliases: ['erl'], + keywords: ERLANG_RESERVED, + illegal: '(</|\\*=|\\+=|-=|/\\*|\\*/|\\(\\*|\\*\\))', + contains: [ + { + className: 'function', + begin: '^' + BASIC_ATOM_RE + '\\s*\\(', end: '->', + returnBegin: true, + illegal: '\\(|#|//|/\\*|\\\\|:|;', + contains: [ + PARAMS, + hljs.inherit(hljs.TITLE_MODE, {begin: BASIC_ATOM_RE}) + ], + starts: { + end: ';|\\.', + keywords: ERLANG_RESERVED, + contains: BASIC_MODES + } + }, + COMMENT, + { + begin: '^-', end: '\\.', + relevance: 0, + excludeEnd: true, + returnBegin: true, + lexemes: '-' + hljs.IDENT_RE, + keywords: + '-module -record -undef -export -ifdef -ifndef -author -copyright -doc -vsn ' + + '-import -include -include_lib -compile -define -else -endif -file -behaviour ' + + '-behavior -spec', + contains: [PARAMS] + }, + NUMBER, + hljs.QUOTE_STRING_MODE, + RECORD_ACCESS, + VAR1, VAR2, + TUPLE, + {begin: /\.$/} // relevance booster + ] + }; +};
\ No newline at end of file |