3
V'íc, ã @ sj d Z ddlmZmZmZmZmZmZ ddlm Z m
Z
mZmZm
Z
mZmZmZmZ dgZG dd deZdS )zÊ
pygments.lexers.kuin
~~~~~~~~~~~~~~~~~~~~
Lexers for the Kuin language.
:copyright: Copyright 2006-2022 by the Pygments team, see AUTHORS.
:license: BSD, see LICENSE for details.
é )Ú
RegexLexerÚincludeÚusingÚthisÚbygroupsÚwords) ÚTextÚCommentÚOperatorÚKeywordÚNameÚStringÚNumberÚPunctuationÚ
WhitespaceÚ KuinLexerc G @ sV e Zd ZdZdZdZdgZdgZedgedde e
ee
ee
ee
ejd fd
e e
ee
ejdfde e
ee
ejd
fde e
ee
ejdfde e
ee
ejdfde e
ee
ejdfde e
ee
ejdfde e
ee
ejdfde e
ee
ejdfde e
ee
ejdfde e
ee
ejdfde
dfd e
d!fd"e
d#fd$e
d%fd&e
d'fd(e
d)fd*e
d+fd,ed-fd.efgd/e ejefd0efd1ejd2fgd1ejd2fd3ejfd4ejfd5ejd6fged7d4ed8fgd9e e
ee
e
d:fedged7d4ed;fgd<e e
ee
e
d:fedged7d4ed=fgd>e e
ee
e
d:fed7d4efged7d4ed?fgd@e e
ee
e
d:fededAedBged7d4edCfgdDe e
ee
e
d:feddGdGdHe
jdIfededAedBged7d4ed6fged7d4edJfgdKe e
ee
e
d:feddGdGdHe
dNfededAedBged7d4ed6fged7d4edOfgdPe e
ee
e
d:feddGdGdHe
dTfededAedBged7d4ed6fged7d4edUfgdVe e
ee
e
d:fededAedBged7d4edWfgdXe e
ee
e
d:fededAedBged7d4edYfgdZe e
ee
e
d:fededAedBged7d4ed[fgd\e e
ee
e
d:feddGdGdHe
d_fededAedBged7d4ed6fgd`e e
ee
ejfgdae e
ee
ejfged7d4ed6fged7d4ed6fged7d4ed6fged7d4ed6fged7d4ed6fged7d4ed6fged7d4ed6fged7d4ed6fgeddbefdcefddefdeefdfefeddGdGdHe
jfedkdGdGdHe
feddGdGdHe
jfdxejfdyejfdzejfd{ejfd|ejfd}e j!d~fde j"fde#fde#fde#fde#fde#fd
e#fde#fde#fde#fde#fdefde ejej$fgde j!fde j!dfd}e j!d6fged7d5e j!d6fgd+Z%dS )r z:
For Kuin source code.
.. versionadded:: 2.9
ZKuinzhttps://github.com/kuina/KuinZkuinz*.knÚ statementÚ
whitespacezT(\+?)([ \t]*)(\*?)([ \t]*)(\bfunc)([ \t]+(?:\n\s*\|)*[ \t]*)([a-zA-Z_][0-9a-zA-Z_]*)Úfunc_z;\b(class)([ \t]+(?:\n\s*\|)*[ \t]*)([a-zA-Z_][0-9a-zA-Z_]*)Úclass_z:\b(enum)([ \t]+(?:\n\s*\|)*[ \t]*)([a-zA-Z_][0-9a-zA-Z_]*)Úenum_zB\b(block)\b(?:([ \t]+(?:\n\s*\|)*[ \t]*)([a-zA-Z_][0-9a-zA-Z_]*))?Úblock_zB\b(ifdef)\b(?:([ \t]+(?:\n\s*\|)*[ \t]*)([a-zA-Z_][0-9a-zA-Z_]*))?Úifdef_z?\b(if)\b(?:([ \t]+(?:\n\s*\|)*[ \t]*)([a-zA-Z_][0-9a-zA-Z_]*))?Úif_zC\b(switch)\b(?:([ \t]+(?:\n\s*\|)*[ \t]*)([a-zA-Z_][0-9a-zA-Z_]*))?Úswitch_zB\b(while)\b(?:([ \t]+(?:\n\s*\|)*[ \t]*)([a-zA-Z_][0-9a-zA-Z_]*))?Úwhile_z@\b(for)\b(?:([ \t]+(?:\n\s*\|)*[ \t]*)([a-zA-Z_][0-9a-zA-Z_]*))?Úfor_zD\b(foreach)\b(?:([ \t]+(?:\n\s*\|)*[ \t]*)([a-zA-Z_][0-9a-zA-Z_]*))?Úforeach_z@\b(try)\b(?:([ \t]+(?:\n\s*\|)*[ \t]*)([a-zA-Z_][0-9a-zA-Z_]*))?Útry_z\b(do)\bÚdoz(\+?[ \t]*\bvar)\bÚvarz\b(const)\bÚconstz \b(ret)\bÚretz\b(throw)\bÚthrowz\b(alias)\bÚaliasz\b(assert)\bÚassertz\|Úcontinued_linez[ \t]*\nz^([ \t]*)(;.*)z[ \t]+(?![; \t])z\{Úmultiline_commentz(?:\s*;.*|[^{}\n]+)z\nz\}z#popÚexprÚfuncz)\b(end)([ \t]+(?:\n\s*\|)*[ \t]*)(func)\bz#pop:2Úclassz*\b(end)([ \t]+(?:\n\s*\|)*[ \t]*)(class)\bÚenumz)\b(end)([ \t]+(?:\n\s*\|)*[ \t]*)(enum)\bÚblockz*\b(end)([ \t]+(?:\n\s*\|)*[ \t]*)(block)\bÚbreakÚskipÚifdefz*\b(end)([ \t]+(?:\n\s*\|)*[ \t]*)(ifdef)\bÚrlsÚdbgz\b)ÚprefixÚsuffixÚifdef_spÚifz'\b(end)([ \t]+(?:\n\s*\|)*[ \t]*)(if)\bÚelifÚelseÚif_spÚswitchz+\b(end)([ \t]+(?:\n\s*\|)*[ \t]*)(switch)\bÚcaseÚdefaultÚtoÚ switch_spÚwhilez*\b(end)([ \t]+(?:\n\s*\|)*[ \t]*)(while)\bÚforz(\b(end)([ \t]+(?:\n\s*\|)*[ \t]*)(for)\bÚforeachz,\b(end)([ \t]+(?:\n\s*\|)*[ \t]*)(foreach)\bÚtryz(\b(end)([ \t]+(?:\n\s*\|)*[ \t]*)(try)\bÚcatchÚfinallyÚtry_spz+\b(break)\b([ \t]+)([a-zA-Z_][0-9a-zA-Z_]*)z*\b(skip)\b([ \t]+)([a-zA-Z_][0-9a-zA-Z_]*)z\(z\)z\[z\]ú,ÚtrueÚfalseÚnullÚinfÚmeÚbit16Úbit32Úbit64Úbit8ÚboolÚcharÚdictÚfloatÚintÚlistÚqueueÚstackz(\b[0-9]\.[0-9]+(?!\.)(:?e[\+-][0-9]+)?\bz\b2#[01]+(?:b(?:8|16|32|64))?\bz \b8#[0-7]+(?:b(?:8|16|32|64))?\bz$\b16#[0-9A-F]+(?:b(?:8|16|32|64))?\bz\b[0-9]+(?:b(?:8|16|32|64))?\bú"Ústringz
'(?:\\.|.)+?'z(?:\.|\$(?:>|<)?)z(?:\^)z(?:\+|-|!|##?)z
(?:\*|/|%)z(?:~)z(?:(?:=|<>)(?:&|\$)?|<=?|>=?)z(?:&)z(?:\|)z(?:\?)z(?::(?::|\+|-|\*|/|%|\^|~)?)z!\b([a-zA-Z_][0-9a-zA-Z_]*)(?=@)\bz (@)?\b([a-zA-Z_][0-9a-zA-Z_]*)\bz(?:\\[^{\n]|[^"\\])+z\\\{Ú
toStrInString)+Úrootr r r'