:copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
:license: BSD, see LICENSE for details. """
from pygments.lexer import RegexLexer from pygments.token import Comment, Operator, Keyword, Name, String, \
Number, Punctuation, Whitespace
__all__ = ['BQNLexer']
class BQNLexer(RegexLexer): """
A simple BQN lexer. """
name = 'BQN'
url = 'https://mlochbaum.github.io/BQN/index.html'
aliases = ['bqn']
filenames = ['*.bqn']
mimetypes = []
version_added = '2.16'
tokens = { 'root': [ # Whitespace # ==========
(r'\s+', Whitespace), # # Comment # ======= # '#' is a comment that continues to the end of the line
(r'#.*$', Comment.Single), # # Strings # =======
(r'\'((\'\')|[^\'])*\'', String.Single),
(r'"(("")|[^"])*"', String.Double), # # Null Character # ============== # Literal representation of the null character
(r'@', String.Symbol), # # Punctuation # =========== # This token type is used for diamond, commas # and array and list brackets and strand syntax
(r'[\.⋄,\[\]⟨⟩‿]', Punctuation), # # Expression Grouping # =================== # Since this token type is important in BQN, it is not included in # the punctuation token type but rather in the following one
(r'[\(\)]', String.Regex), # # Numbers # ======= # Includes the numeric literals and the Nothing character
(r'¯?([0-9]+\.?[0-9]+|[0-9]+)([Ee][¯]?[0-9]+)?|¯|∞|π|·', Number), # # Variables # =========
(r'\b[a-z]\w*\b', Name.Variable), # # 1-Modifiers # ===========
(r'[˙˜˘¨⌜⁼´˝`𝕣]', Name.Attribute),
(r'\b_[a-zA-Z0-9]+\b', Name.Attribute), # # 2-Modifiers # ===========
(r'[∘○⊸⟜⌾⊘◶⎉⚇⍟⎊]', Name.Property),
(r'\b_[a-zA-Z0-9]+_\b', Name.Property), # # Functions # ========= # The monadic or dyadic function primitives and function # operands and arguments, along with function self-reference
(r'[+\-×÷\*√⌊⌈∧∨¬|≤<>≥=≠≡≢⊣⊢⥊∾≍⋈↑↓↕«»⌽⍉/⍋⍒⊏⊑⊐⊒∊⍷⊔!𝕎𝕏𝔽𝔾𝕊]',
Operator),
(r'[A-Z]\w*|•\w+\b', Operator), # # Constant # ========
(r'˙', Name.Constant), # # Define/Export/Change # ====================
(r'[←↩⇐]', Keyword.Declaration), # # Blocks # ======
(r'[{}]', Keyword.Type), # # Extra characters # ================
(r'[;:?𝕨𝕩𝕗𝕘𝕤]', Name.Entity), #
],
}
Messung V0.5
¤ Dauer der Verarbeitung: 0.15 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.