diff options
author | Tinnet Coronam <tinnet@coronam.net> | 2012-10-17 21:33:00 +0200 |
---|---|---|
committer | Tinnet Coronam <tinnet@coronam.net> | 2012-10-17 21:33:00 +0200 |
commit | 3c6befe93b212798429f124da39f0add1e28bb94 (patch) | |
tree | 3d4ca34ddb828daa94428c54190f01c2e179b34e | |
parent | 327adfb620d99472b7b52f09e6be7e81352626d3 (diff) | |
download | pygments-3c6befe93b212798429f124da39f0add1e28bb94.tar.gz |
moved lexer to compiled.py, updated mapping
-rw-r--r-- | pygments/lexers/_mapping.py | 2 | ||||
-rw-r--r-- | pygments/lexers/compiled.py | 124 | ||||
-rw-r--r-- | pygments/lexers/monkey.py | 137 |
3 files changed, 124 insertions, 139 deletions
diff --git a/pygments/lexers/_mapping.py b/pygments/lexers/_mapping.py index 0404640a..66fbddd5 100644 --- a/pygments/lexers/_mapping.py +++ b/pygments/lexers/_mapping.py @@ -168,7 +168,7 @@ LEXERS = { 'ModelicaLexer': ('pygments.lexers.other', 'Modelica', ('modelica',), ('*.mo',), ('text/x-modelica',)), 'Modula2Lexer': ('pygments.lexers.compiled', 'Modula-2', ('modula2', 'm2'), ('*.def', '*.mod'), ('text/x-modula2',)), 'MoinWikiLexer': ('pygments.lexers.text', 'MoinMoin/Trac Wiki markup', ('trac-wiki', 'moin'), (), ('text/x-trac-wiki',)), - 'MonkeyLexer': ('pygments.lexers.monkey', 'Monkey', ('monkey',), ('*.monkey',), ()), + 'MonkeyLexer': ('pygments.lexers.compiled', 'Monkey', ('monkey',), ('*.monkey',), ('text/x-monkey',)), 'MoonScriptLexer': ('pygments.lexers.agile', 'MoonScript', ('moon', 'moonscript'), ('*.moon',), ('text/x-moonscript', 'application/x-moonscript')), 'MscgenLexer': ('pygments.lexers.other', 'Mscgen', ('mscgen', 'msc'), ('*.msc',), ()), 'MuPADLexer': ('pygments.lexers.math', 'MuPAD', ('mupad',), ('*.mu',), ()), diff --git a/pygments/lexers/compiled.py b/pygments/lexers/compiled.py index 450a9c4d..7ea02a00 100644 --- a/pygments/lexers/compiled.py +++ b/pygments/lexers/compiled.py @@ -27,7 +27,7 @@ __all__ = ['CLexer', 'CppLexer', 'DLexer', 'DelphiLexer', 'ECLexer', 'DylanLexer', 'ObjectiveCLexer', 'FortranLexer', 'GLShaderLexer', 'PrologLexer', 'CythonLexer', 'ValaLexer', 'OocLexer', 'GoLexer', 'FelixLexer', 'AdaLexer', 'Modula2Lexer', 'BlitzMaxLexer', - 'NimrodLexer', 'FantomLexer', 'RustLexer', 'CUDALexer'] + 'NimrodLexer', 'FantomLexer', 'RustLexer', 'CUDALexer', 'MonkeyLexer'] class CLexer(RegexLexer): @@ -3050,3 +3050,125 @@ class CUDALexer(CLexer): elif value in self.functions: token = Name.Function yield index, token, value + + +class MonkeyLexer(RegexLexer): + """ + For + `Monkey <https://en.wikipedia.org/wiki/Monkey_(programming_language)>`_ + source code. + """ + + name = 'Monkey' + aliases = ['monkey'] + filenames = ['*.monkey'] + mimetypes = ['text/x-monkey'] + + name_variable = r'[a-z_][a-zA-Z0-9_]*' + name_function = r'[A-Z][a-zA-Z0-9_]*' + name_constant = r'[A-Z_][A-Z0-9_]*' + name_class = r'[A-Z][a-zA-Z0-9_]*' + name_module = r'[a-z0-9_]*' + + keyword_type = r'(?:Int|Float|String|Bool|Object|Array|Void)' + # ? == Bool // % == Int // # == Float // $ == String + keyword_type_special = r'[?%#$]' + + flags = re.MULTILINE + + tokens = { + 'root': [ + #Text + (r'\n', Text), + (r'\r', Text), + (r'\t+', Text), + (r'\s+', Text), + # Comments + (r"'.*", Comment), + (r'(?i)^#rem\b', Comment.Multiline, 'comment'), + (r'(?i)^(?:#If|#ElseIf|#Else|#End|#EndIf|#Print|#Error)\s?.*$', Comment.Preproc), + # String + ('"', String.Double, 'string'), + # Numbers + (r'[0-9]+\.[0-9]*(?!\.)', Number.Float), + (r'\.[0-9]+(?!\.)', Number.Float), + (r'[0-9]+', Number.Integer), + (r'\$[0-9a-f]+', Number.Hex), + (r'\%[10]+', Number), # Binary + # Native data types + (r'\b%s\b' % keyword_type, Keyword.Type), + # Exception handling + (r'(?i)\b(?:Try|Catch|Throw)\b', Keyword.Reserved), + (r'Throwable', Name.Exception), + # Builtins + (r'(?i)\b(?:Null|True|False)\b', Name.Builtin), + (r'(?i)\b(?:Self|Super)\b', Name.Builtin.Pseudo), + (r'\b(?:HOST|LANG|TARGET|CONFIG)\b', Name.Constant), + # Keywords + (r'(?i)^(Import)(\s+)(.*)(\n)', bygroups(Keyword.Namespace, Text, Name.Namespace, Text)), + (r'(?i)^Strict\b.*\n', Keyword.Reserved), + (r'(?i)(Const|Local|Global|Field)(\s+)', bygroups(Keyword.Declaration, Text), 'variables'), + (r'(?i)(New|Class|Interface|Extends|Implements)(\s+)', bygroups(Keyword.Reserved, Text), 'classname'), + (r'(?i)(Function|Method)(\s+)', bygroups(Keyword.Reserved, Text), 'funcname'), + (r'(?i)(?:End|Return|Public|Private|Extern|Property|Final|Abstract)\b', Keyword.Reserved), + # Flow Control stuff + (r'(?i)(?:If|Then|Else|ElseIf|EndIf|' + r'Select|Case|Default|' + r'While|Wend|' + r'Repeat|Until|Forever|' + r'For|To|Until|Step|EachIn|Next|' + r'Exit|Continue)\s+', Keyword.Reserved), + # not used yet + (r'(?i)\b(?:Module|Inline)\b', Keyword.Reserved), + # Array + (r'[\[\]]', Punctuation), + # Other + (r'<=|>=|<>|[*]=|/=|[+]=|-=|&=|~=|[|]=|[-&*/^+=<>]', Operator), + (r'Not|Mod|Shl|Shr|And|Or', Operator.Word), + (r'[\(\){}!#,.:]', Punctuation), + # catch the rest + (r'%s\b' % name_constant, Name.Constant), + (r'%s\b' % name_function, Name.Function), + (r'%s\b' % name_variable, Name.Variable), + ], + 'funcname': [ + (r'(?i)%s\b' % name_function, Name.Function), + (r':', Punctuation, 'classname'), + (r'\s+', Text), + (r'\(', Punctuation, 'variables'), + (r'\)', Punctuation, '#pop') + ], + 'classname': [ + (r'%s\.' % name_module, Name.Namespace), + (r'%s\b' % keyword_type, Keyword.Type), + (r'%s\b' % name_class, Name.Class), + (r'\s+', Text), + # array (of given size) + (r'(\[)\s*(\d*)\s*(\])', bygroups(Punctuation, Number.Integer, Punctuation)), + # generic + (r'<', Punctuation, '#push'), + (r'>', Punctuation, '#pop'), + (r'\n', Text, '#pop'), + (r'', Text, '#pop') + ], + 'variables': [ + (r'%s\b' % name_constant, Name.Constant), + (r'%s\b' % name_variable, Name.Variable), + (r'%s' % keyword_type_special, Keyword.Type), + (r'\s+', Text), + (r':', Punctuation, 'classname'), + (r',', Punctuation, '#push'), + (r'', Text, '#pop') + ], + 'string': [ + (r'[^"~]+', String.Double), + (r'~q|~n|~r|~r|~t|~z|~~', String.Escape), + (r'"', String.Double, '#pop'), + ], + 'comment' : [ + (r'(?i)^#rem.*?', Comment.Multiline, "#push"), + (r'(?i)^#end.*?', Comment.Multiline, "#pop"), + (r'\n', Comment.Multiline), + (r'.*', Comment.Multiline), + ], + }
\ No newline at end of file diff --git a/pygments/lexers/monkey.py b/pygments/lexers/monkey.py deleted file mode 100644 index a130a489..00000000 --- a/pygments/lexers/monkey.py +++ /dev/null @@ -1,137 +0,0 @@ -# -*- coding: utf-8 -*- -""" - pygments.lexers.monkey - ~~~~~~~~~~~~~~~~~~~~~~ - - Lexer for the monkey language - - :copyright: Copyright 2012 - :license: BSD, see LICENSE for details. -""" -import re - -from pygments.lexer import RegexLexer, bygroups, include -from pygments.token import Punctuation, Text, Comment, Operator, Keyword, Name, String, Number, Literal, Other - -__all__ = ['MonkeyLexer'] - -class MonkeyLexer(RegexLexer): - """ - For - `Monkey <https://en.wikipedia.org/wiki/Monkey_(programming_language)>`_ - source code. - """ - - name = 'Monkey' - aliases = ['monkey'] - filenames = ['*.monkey'] - mimetypes = [] # TODO - - name_variable = r'[a-z_][a-zA-Z0-9_]*' - name_function = r'[A-Z][a-zA-Z0-9_]*' - name_constant = r'[A-Z_][A-Z0-9_]*' - name_class = r'[A-Z][a-zA-Z0-9_]*' - name_module = r'[a-z0-9_]*' - - keyword_type = r'(?:Int|Float|String|Bool|Object|Array|Void)' - # ? == Bool // % == Int // # == Float // $ == String - keyword_type_special = r'[?%#$]' - - flags = re.MULTILINE - - tokens = { - 'root': [ - #Text - (r'\n', Text), - (r'\r', Text), - (r'\t+', Text), - (r'\s+', Text), - # Comments - (r"'.*", Comment), - (r'(?i)^#rem\b', Comment.Multiline, 'comment'), - (r'(?i)^(?:#If|#ElseIf|#Else|#End|#EndIf|#Print|#Error)\s?.*$', Comment.Preproc), - # String - ('"', String.Double, 'string'), - # Numbers - (r'[0-9]+\.[0-9]*(?!\.)', Number.Float), - (r'\.[0-9]+(?!\.)', Number.Float), - (r'[0-9]+', Number.Integer), - (r'\$[0-9a-f]+', Number.Hex), - (r'\%[10]+', Number), # Binary - # Native data types - (r'\b%s\b' % keyword_type, Keyword.Type), - # Exception handling - (r'(?i)\b(?:Try|Catch|Throw)\b', Keyword.Reserved), - (r'Throwable', Name.Exception), - # Builtins - (r'(?i)\b(?:Null|True|False)\b', Name.Builtin), - (r'(?i)\b(?:Self|Super)\b', Name.Builtin.Pseudo), - (r'\b(?:HOST|LANG|TARGET|CONFIG)\b', Name.Constant), - # Keywords - (r'(?i)^(Import)(\s+)(.*)(\n)', bygroups(Keyword.Namespace, Text, Name.Namespace, Text)), - (r'(?i)^Strict\b.*\n', Keyword.Reserved), - (r'(?i)(Const|Local|Global|Field)(\s+)', bygroups(Keyword.Declaration, Text), 'variables'), - (r'(?i)(New|Class|Interface|Extends|Implements)(\s+)', bygroups(Keyword.Reserved, Text), 'classname'), - (r'(?i)(Function|Method)(\s+)', bygroups(Keyword.Reserved, Text), 'funcname'), - (r'(?i)(?:End|Return|Public|Private|Extern|Property|Final|Abstract)\b', Keyword.Reserved), - # Flow Control stuff - (r'(?i)(?:If|Then|Else|ElseIf|EndIf|' - r'Select|Case|Default|' - r'While|Wend|' - r'Repeat|Until|Forever|' - r'For|To|Until|Step|EachIn|Next|' - r'Exit|Continue)\s+', Keyword.Reserved), - # not used yet - (r'(?i)\b(?:Module|Inline)\b', Keyword.Reserved), - # Array - (r'[\[\]]', Punctuation), - # Other - (r'<=|>=|<>|[*]=|/=|[+]=|-=|&=|~=|[|]=|[-&*/^+=<>]', Operator), - (r'Not|Mod|Shl|Shr|And|Or', Operator.Word), - (r'[\(\){}!#,.:]', Punctuation), - # catch the rest - (r'%s\b' % name_constant, Name.Constant), - (r'%s\b' % name_function, Name.Function), - (r'%s\b' % name_variable, Name.Variable), - ], - 'funcname': [ - (r'(?i)%s\b' % name_function, Name.Function), - (r':', Punctuation, 'classname'), - (r'\s+', Text), - (r'\(', Punctuation, 'variables'), - (r'\)', Punctuation, '#pop') - ], - 'classname': [ - (r'%s\.' % name_module, Name.Namespace), - (r'%s\b' % keyword_type, Keyword.Type), - (r'%s\b' % name_class, Name.Class), - (r'\s+', Text), - # array (of given size) - (r'(\[)\s*(\d*)\s*(\])', bygroups(Punctuation, Number.Integer, Punctuation)), - # generic - (r'<', Punctuation, '#push'), - (r'>', Punctuation, '#pop'), - (r'\n', Text, '#pop'), - (r'', Text, '#pop') - ], - 'variables': [ - (r'%s\b' % name_constant, Name.Constant), - (r'%s\b' % name_variable, Name.Variable), - (r'%s' % keyword_type_special, Keyword.Type), - (r'\s+', Text), - (r':', Punctuation, 'classname'), - (r',', Punctuation, '#push'), - (r'', Text, '#pop') - ], - 'string': [ - (r'[^"~]+', String.Double), - (r'~q|~n|~r|~r|~t|~z|~~', String.Escape), - (r'"', String.Double, '#pop'), - ], - 'comment' : [ - (r'(?i)^#rem.*?', Comment.Multiline, "#push"), - (r'(?i)^#end.*?', Comment.Multiline, "#pop"), - (r'\n', Comment.Multiline), - (r'.*', Comment.Multiline), - ], - }
\ No newline at end of file |