3 ��X� � @ sZ d Z ddlmZmZmZ ddlmZmZmZm Z m Z mZmZm Z dgZG dd� de�ZdS )z� pygments.lexers.whiley ~~~~~~~~~~~~~~~~~~~~~~ Lexers for the Whiley language. :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS. :license: BSD, see LICENSE for details. � )� RegexLexer�bygroups�words)�Comment�Keyword�Name�Number�Operator�Punctuation�String�Text�WhileyLexerc $ @ sb e Zd ZdZdZdgZdgZdgZdefde j fde jfd ej fd e jfedVd)d*�ejfedWd)d*�ejfd2eejeeeej�fd3ejfd4ejfd5eejeeeej�fd6eejeeeej�fd7ejfedXd)d*�ejfdCejfdDejfdEejfdFejfdGejfdHejfdIeejejej�fdJedKfdLefdMe fdNefgdJedOfdPejfdQejfdRefdSefgdT�Z!dUS )Yr zO Lexer for the Whiley programming language. .. versionadded:: 2.2 ZWhileyz*.whileyZwhileyz text/x-whileyz\s+z//.*z/\*\*/z(?s)/\*\*.*?\*/z (?s)/\*.*?\*/�if�else�while�for�do�return�switch�case�default�break�continue�requires�ensures�where�assert�assume�all�no�some�in�is�new�throw�try�catch�debug�skip�fail�finite�totalz\b)�suffix�function�method�public�private� protected�export�nativez-(constant|type)(\s+)([a-zA-Z_]\w*)(\s+)(is)\bz(true|false|null)\bz(bool|byte|int|real|any|void)\bz#(import)(\s+)(\*)([^\S\n]+)(from)\bz-(import)(\s+)([a-zA-Z_]\w*)([^\S\n]+)(from)\bz(package|import)\b�i8�i16�i32�i64�u8�u16�u32�u64�uint�nat�toStringz[01]+bz[0-9]+\.[0-9]+z[0-9]+\.(?!\.)z0x[0-9a-fA-F]+z[0-9]+z'[^\\]'z(')(\\['"\\btnfr])(')�"�stringz [{}()\[\],.;]u= [+\-*/%&|<>^!~@=:?∀∃∅⊂⊆⊃⊇∪∩≤≥∈∧∨]z[a-zA-Z_]\w*z#popz \\[btnfr]z\\u[0-9a-fA-F]{4}z\\.z[^\\"]+)�rootr@ N)r r r r r r r r r r r r r r r r r r r r! r"