/usr/share/source-highlight/erlang.lang is in libsource-highlight-common 3.1.8-1.1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 | # Erlang lang definition file
# by Caolan McMahon
# from: http://caolanmcmahon.com/erlang_syntax_highlighting
# patched by Miklos Vajna
# further modifications by Lorenzo Bettini
# and even further by Erik Søe Sørensen
#==================== Keywords and other known names: ====================
# Actual keywords:
keyword = "after|and|andalso|band|begin|bnot|bor|bsl|bsr|bxor|case|catch|cond|div|end|fun|if|let|not|of|or|orelse|query|receive|rem|try|when|xor"
# Built-in functions - type tests:
predef_func = "is_atom|is_binary|is_bitstring|is_boolean|is_float|is_function|is_function|is_integer|is_list|is_number|is_pid|is_port|is_record|is_record|is_reference|is_tuple"
# Built-in functions - other guard functions:
predef_func = "abs|bit_size|byte_size|element|float|hd|length|node|node|round|self|size|tl|trunc|tuple_size"
# Built-in functions - others:
predef_func = '(?<!_)\b(alive|apply|atom_to_list|binary_to_list|binary_to_term|concat_binary|date|disconnect_node|erase|exit|float_to_list|get|get_keys|group_leader|halt|integer_to_list|is_alive|link|list_to_atom|list_to_binary|list_to_float|list_to_integer|list_to_pid|list_to_tuple|load_module|make_ref|monitor_node|nodes|now|open_port|pid_to_list|process_flag|process_info|process|put|register|registered|setelement|spawn|spawn_link|split_binary|statistics|term_to_binary|throw|time|tuple_to_list|unlink|unregister|whereis|atom|binary|constant|function|integer|list|number|pid|ports|port_close|port_info|reference|record|check_process_code|delete_module|get_cookie|hash|math|module_loaded|preloaded|processes|purge_module|set_cookie|set_node|acos|asin|atan|atan2|cos|cosh|exp|log|log10|pi|pow|power|sin|sinh|sqrt|tan|tanh|call|module_info|parse_transform|undefined_function|error_handler|creation|current_function|dictionary|group_leader|heap_size|high|initial_call|linked|low|memory_in_use|message_queue|net_kernel|normal|priority|reductions|registered_name|runnable|running|stack_trace|status|timer|trap_exit|waiting|command|count_in|count_out|creation|in|in_format|linked|out|owner|packeting|atom_tables|communicating|creation|current_gc|current_reductions|current_runtime|current_wall_clock|distribution_port|entry_points|error_handler|friends|garbage_collection|magic_cookie|magic_cookies|module_table|monitored_nodes|name|next_ref|ports|preloaded|processes|reductions|ref_state|registry|runtime|wall_clock|apply_lambda|module_info|module_lambdas|record|record_index|record_info|badarg|nocookie|fun|badsig|kill|exit)\b(?![[:blank:]]*:)'
# Other key atoms:
predef_var = "false|true|undefined|normal|killed|shutdown|'EXIT'"
#==================== Comments: ====================
environment comment start "%" begin
include "url.lang"
include "html_simple.lang"
type = '@[[:alpha:]]+'
include "todo.lang"
end
#==================== Variables and other names: ====================
# Wildcard symbol
# (Placed before variables because of common prefix '_'.)
symbol = "_"
# Variables
# (Placed before 'normal' because of common prefix '_'.)
variable = '\b[A-Z_][A-Za-z0-9_]*\b'
# Number in non-decimal base
# (Placed before other numbers because of common prefix '[0-9]'.)
number = '[0-9]+#[0-9A-Za-z]+'
function = '\w+(\s+)?[:@]?(\s+)?\w+(?=[[:blank:]]*[\(/])'
# Record names
usertype = '#[A-Za-z0-9_]+'
# Field names
# (Placed before atoms because of common prefix '[a-z]'.)
property = '\b[a-z][A-Za-z0-9_]*\b(?=[[:blank:]]*=)'
property = '\'[^\']\'(?=[[:blank:]]*=)'
atom = '\b[a-z][A-Za-z0-9_]*\b'
atom delim "'" "'" escape "\\" multiline
#==================== Literals: ====================
# Other numbers (too broad, really)
include "number.lang"
# Character literal
string = '\$\\?.'
string delim "\"" "\"" escape "\\" multiline
#==================== Preprocessor stuff: ====================
# Macros
preproc = '\?[A-Za-z0-9_]+'
state preproc start "-author" begin
include "url.lang"
normal = ")" exit
end
preproc = '-[[:alpha:]_]+'
#==================== Misc. symbols: ====================
# Groupers & separators
normal = "(|)|{|}|[|]|;|,"
normal = "\|"
normal = "\|\|"
# Operators
symbol = "+|-|*|/|==|=|=:=|=/=|<|=<|>|>=|++|--|=|!|<-|->"
symbol = ':|@|\\|\"|\.'
|