"" "
pygments.lexers.ride
~~~~~~~~~~~~~~~~~~~~
Lexer
for the Ride programming language.
:copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
:license: BSD, see LICENSE
for details.
"" "
from pygments.lexer
import RegexLexer, words, include
from pygments.token
import Comment, Keyword, Name, Number, Punctuation, \
String, Text
__all__ = [
'RideLexer' ]
class RideLexer(RegexLexer):
"" "
For Ride source code.
"" "
name =
'Ride'
aliases = [
'ride' ]
filenames = [
'*.ride' ]
mimetypes = [
'text/x-ride' ]
url =
'https://docs.waves.tech/en/ride '
version_added =
'2.6'
validName = r
'[a-zA-Z_][a-zA-Z0-9_\' ]*
'
builtinOps = (
'||' ,
'|' ,
'>=' ,
'>' ,
'==' ,
'!' ,
'=' ,
'<=' ,
'<' ,
'::' ,
':+' ,
':' ,
'!=' ,
'/' ,
'.' ,
'=>' ,
'-' ,
'+' ,
'*' ,
'&&' ,
'%' ,
'++' ,
)
globalVariablesName = (
'NOALG' ,
'MD5' ,
'SHA1' ,
'SHA224' ,
'SHA256' ,
'SHA384' ,
'SHA512' ,
'SHA3224' ,
'SHA3256' ,
'SHA3384' ,
'SHA3512' ,
'nil' ,
'this' ,
'unit' ,
'height' ,
'lastBlock' ,
'Buy' ,
'Sell' ,
'CEILING' ,
'FLOOR' ,
'DOWN' ,
'HALFDOWN' ,
'HALFEVEN' ,
'HALFUP' ,
'UP' ,
)
typesName = (
'Unit' ,
'Int' ,
'Boolean' ,
'ByteVector' ,
'String' ,
'Address' ,
'Alias' ,
'Transfer' ,
'AssetPair' ,
'DataEntry' ,
'Order' ,
'Transaction' ,
'GenesisTransaction' ,
'PaymentTransaction' ,
'ReissueTransaction' ,
'BurnTransaction' ,
'MassTransferTransaction' ,
'ExchangeTransaction' ,
'TransferTransaction' ,
'SetAssetScriptTransaction' ,
'InvokeScriptTransaction' ,
'IssueTransaction' ,
'LeaseTransaction' ,
'LeaseCancelTransaction' ,
'CreateAliasTransaction' ,
'SetScriptTransaction' ,
'SponsorFeeTransaction' ,
'DataTransaction' ,
'WriteSet' ,
'AttachedPayment' ,
'ScriptTransfer' ,
'TransferSet' ,
'ScriptResult' ,
'Invocation' ,
'Asset' ,
'BlockInfo' ,
'Issue' ,
'Reissue' ,
'Burn' ,
'NoAlg' ,
'Md5' ,
'Sha1' ,
'Sha224' ,
'Sha256' ,
'Sha384' ,
'Sha512' ,
'Sha3224' ,
'Sha3256' ,
'Sha3384' ,
'Sha3512' ,
'BinaryEntry' ,
'BooleanEntry' ,
'IntegerEntry' ,
'StringEntry' ,
'List' ,
'Ceiling' ,
'Down' ,
'Floor' ,
'HalfDown' ,
'HalfEven' ,
'HalfUp' ,
'Up' ,
)
functionsName = (
'fraction' ,
'size' ,
'toBytes' ,
'take' ,
'drop' ,
'takeRight' ,
'dropRight' ,
'toString' ,
'isDefined' ,
'extract' ,
'throw' ,
'getElement' ,
'value' ,
'cons' ,
'toUtf8String' ,
'toInt' ,
'indexOf' ,
'lastIndexOf' ,
'split' ,
'parseInt' ,
'parseIntValue' ,
'keccak256' ,
'blake2b256' ,
'sha256' ,
'sigVerify' ,
'toBase58String' ,
'fromBase58String' ,
'toBase64String' ,
'fromBase64String' ,
'transactionById' ,
'transactionHeightById' ,
'getInteger' ,
'getBoolean' ,
'getBinary' ,
'getString' ,
'addressFromPublicKey' ,
'addressFromString' ,
'addressFromRecipient' ,
'assetBalance' ,
'wavesBalance' ,
'getIntegerValue' ,
'getBooleanValue' ,
'getBinaryValue' ,
'getStringValue' ,
'addressFromStringValue' ,
'assetInfo' ,
'rsaVerify' ,
'checkMerkleProof' ,
'median' ,
'valueOrElse' ,
'valueOrErrorMessage' ,
'contains' ,
'log' ,
'pow' ,
'toBase16String' ,
'fromBase16String' ,
'blockInfoByHeight' ,
'transferTransactionById' ,
)
reservedWords = words((
'match' ,
'case' ,
'else' ,
'func' ,
'if' ,
'let' ,
'then' ,
'@Callable' ,
'@Verifier' ,
), suffix=r
'\b' )
tokens = {
'root' : [
# Comments
(r
'#.*', Comment.Single),
# Whitespace
(r
'\s+' , Text),
# Strings
(r
'"' , String,
'doublequote' ),
(r
'utf8\' ', String, ' utf8quote
'),
(r
'base(58|64|16)\' ', String, ' singlequote
'),
# Keywords
(reservedWords, Keyword.Reserved),
(r
'\{-#.*?#-\}', Keyword.Reserved),
(r
'FOLD<\d+>' , Keyword.Reserved),
# Types
(words(typesName), Keyword.Type),
# Main
# (specialName, Keyword.Reserved),
# Prefix Operators
(words(builtinOps, prefix=r
'\(' , suffix=r
'\)' ), Name.Function),
# Infix Operators
(words(builtinOps), Name.Function),
(words(globalVariablesName), Name.Function),
(words(functionsName), Name.Function),
# Numbers
include(
'numbers' ),
# Variable Names
(validName, Name.Variable),
# Parens
(r
'[,()\[\]{}]' , Punctuation),
],
'doublequote' : [
(r
'\\u[0-9a-fA-F]{4}' , String.Escape),
(r
'\\[nrfvb\\"]' , String.Escape),
(r
'[^"]' , String),
(r
'"' , String,
'#pop'),
],
'utf8quote' : [
(r
'\\u[0-9a-fA-F]{4}' , String.Escape),
(r
'\\[nrfvb\\\' ]
', String.Escape),
(r
'[^\' ]
', String),
(r
'\' ', String, ' #pop'),
],
'singlequote' : [
(r
'[^\' ]
', String),
(r
'\' ', String, ' #pop'),
],
'numbers' : [
(r
'_?\d+' , Number.Integer),
],
}
Messung V0.5 C=88 H=25 G=64
¤ Dauer der Verarbeitung: 0.2 Sekunden
¤
*© Formatika GbR, Deutschland