3 ��X�I � @ s� d Z ddlZddlmZmZmZmZmZmZm Z ddl mZmZm Z mZmZmZmZmZmZ ddddgZejd �ZG d d� de�ZG dd� de�Zdd � Zddd�ZG dd� de�ZG dd� de�ZdS )z� pygments.lexers.erlang ~~~~~~~~~~~~~~~~~~~~~~ Lexers for Erlang. :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS. :license: BSD, see LICENSE for details. � N)�Lexer� RegexLexer�bygroups�words� do_insertions�include�default) �Text�Comment�Operator�Keyword�Name�String�Number�Punctuation�Generic�ErlangLexer�ErlangShellLexer�ElixirConsoleLexer�ElixirLexerz.*? c { @ sD e Zd ZdZdZdgZddddgZdgZd�Zd�Z d�Z d�Zd�Zd�Z d�Zd�Zd�Zd�Zd�e d� e d� e d� e d� Zd�e d� e d� Zd�Zd�efd�efeed�d��efee d�d��ejfeed�d��ejfd�ed�fe efd�ed�fd�ejfd�ejfd�e d� e ej!e�fd�e d� e ej"ee�fd�e d� e#j$fd�e#j$fd�e#j%fd�efe ej&feefd�e ej'fd�e d� ej(fd�e d� e d� ejfd�ej)fd�ed�fgeej*fd�ed�fd�ej+fd�efd�efgd�e d� e ej,eeej'�d�fd�e d� e ej,eeej�d�feej,d�fge-dσd�ed�fd�ed�fd�ed�fge-dσd�ed�fd�ed�fgd֜Z.d�S )�r z� For the Erlang functional programming language. Blame Jeremy Thurgood (http://jerith.za.net/). .. versionadded:: 0.9 ZErlangZerlangz*.erlz*.hrlz*.esz *.escriptz text/x-erlang�after�begin�case�catch�cond�end�fun�if�let�of�query�receive�try�when�abs�append_element�apply�atom_to_list�binary_to_list�bitstring_to_list�binary_to_term�bit_size�bump_reductions� byte_size�cancel_timer�check_process_code� delete_module� demonitor�disconnect_node�display�element�erase�exit�float� float_to_list�fun_info�fun_to_list�function_exported�garbage_collect�get�get_keys�group_leader�hash�hd�integer_to_list�iolist_to_binary�iolist_size�is_atom� is_binary�is_bitstring� is_boolean� is_builtin�is_float�is_function� is_integer�is_list� is_number�is_pid�is_port�is_process_alive� is_record�is_reference�is_tuple�length�link�list_to_atom�list_to_binary�list_to_bitstring�list_to_existing_atom� list_to_float�list_to_integer�list_to_pid� list_to_tuple�load_module�localtime_to_universaltime� make_tuple�md5� md5_final� md5_update�memory� module_loaded�monitor�monitor_node�node�nodes� open_port�phash�phash2�pid_to_list� port_close�port_command�port_connect�port_control� port_call� port_info�port_to_list�process_display�process_flag�process_info�purge_module�put� read_timer�ref_to_list�register�resume_process�round�send� send_after�send_nosuspend� set_cookie� setelement�size�spawn� spawn_link� spawn_monitor� spawn_opt�split_binary�start_timer� statistics�suspend_process�system_flag�system_info�system_monitor�system_profile�term_to_binary�tl�trace�trace_delivered� trace_info� trace_pattern�trunc� tuple_size� tuple_to_list�universaltime_to_localtime�unlink� unregister�whereisz1(\+\+?|--?|\*|/|<|>|/=|=:=|=/=|=<|>=|==?|<-|!|\?)�and�andalso�band�bnot�bor�bsl�bsr�bxor�div�not�or�orelse�rem�xorz(?:[a-z]\w*|'[^\n']*[^\\]')z (?:[A-Z_]\w*)z[bdefnrstv\'"\\]z[0-7][0-7]?[0-7]?z%(?:x[0-9a-fA-F]{2}|x\{[0-9a-fA-F]+\})z \^[a-zA-Z]z(?:\\(?:�|z))z(?:�)z(?:[2-9]|[12][0-9]|3[0-6])z\s+z%.*\nz\b)�suffixz^-� directive�"�stringz<<z>>�(z)(:)z (?:^|(?<=:))(z )(\s*)(\()z[+-]?z #[0-9a-zA-Z]+z[+-]?\d+z[+-]?\d+.\d+z[]\[:_@\".{}()|;,]z\?z\$(?:z|\\[ %]|[^\\])�#z(:?\.z)?z\A#!.+\nz#\{�map_keyz#popz~[0-9.*]*[~#+BPWXb-ginpswx]z[^"\\~]+�~z(define)(\s*)(\()(z(record)(\s*)(\()(�rootz=>�map_valz:=z\}�,z(?=\}))r� r� r� r� r� N)r r r r r r r r r r r r! r"