3
V'ícT ã @ s^ d Z ddlZddlmZmZ ddlmZmZmZm Z m
Z
mZmZm
Z
dgZG dd deZdS )zÂ
pygments.lexers.comal
~~~~~~~~~~~~~~~~~~~~~
Lexer for COMAL-80.
:copyright: Copyright 2006-2022 by the Pygments team, see AUTHORS.
:license: BSD, see LICENSE for details.
é N)Ú
RegexLexerÚwords)ÚCommentÚ
WhitespaceÚOperatorÚKeywordÚStringÚNumberÚNameÚPunctuationÚComal80Lexerc E @ sî e Zd ZdZdZdZddgZddgZej Z
dZd Zd
e
jfdefdefd
e ejfedddddddddg edejfeddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVg?edejfedWdXdYdZd[d\d]d^d_d`g
edejfedadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{d|d}gedejfed~ddgedejfdedfed ejfed efd
ejfdejfdejfdejfde fgdefdej!fdedfgdZ"dS )r z#
For COMAL-80 source code.
zCOMAL-80z#https://en.wikipedia.org/wiki/COMALZcomalZcomal80z*.cmlz*.comalu \b(?!['\[\]â£\\])u [a-z]['\[\]â£\\\w]*z//.*\nz\s+u :[=+-]|\<\>|[-+*/^â<>=]z(and +then|or +else)ÚandZbitandZbitorZbitxorÚdivÚinÚmodÚnotÚor)ÚsuffixÚappendZatZcaseÚchainÚcloseÚcopyÚcreateÚcursorÚdataÚdeleteÚdirZdoÚelifÚelseÚendZendcaseÚendifZendforZendloopZendtrapZendwhileÚexecÚexitÚfileÚforÚgotoÚhandlerÚifÚinputZletZloopÚmountÚnullZofÚopenZ otherwiseÚoutputÚpageÚpassZpokeÚprintÚrandomÚreadÚrepeatÚreportÚreturnÚrenameZrestoreÚselectÚstepÚstopÚsysZthenZtoZtrapÚunitzunit$ZuntilZusingÚwhenÚwhileÚwriteÚzoneÚclosedZdimZendfuncZendprocZexternalÚfuncÚimportÚprocÚrefZuseÚabsZatnzchr$ÚcosZeodÚeofÚerrZerrfileZerrtextÚescÚexpÚintzkey$ÚlenÚlogÚordÚpeekZ randomizeZrndZsgnÚsinzspc$Zsqrzstatus$zstr$ÚtabÚtanÚtimeÚvalÚfalseÚpiÚtrueú"Ústringz:(?=[ \n/])z[$#]?z%[01]+z\$[0-9a-f]+z\d*\.\d*(e[-+]?\d+)?z\d+z[(),:;]z[^"]+z"[0-9]*"z#pop)ÚrootrX N)#Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚnameÚurlÚaliasesÚ filenamesÚreÚ
IGNORECASEÚflagsÚ_suffixZ_identifierr ÚSingler r ÚWordr r ZReservedZDeclarationr