diff options
author | Unknown <ciri@ciri.pl> | 2014-04-14 19:36:19 +0200 |
---|---|---|
committer | Unknown <ciri@ciri.pl> | 2014-04-14 19:36:19 +0200 |
commit | 11fbd47baffb8412466b4ba9865370193ad3df80 (patch) | |
tree | c00d3aba84276d4c41b07e1eb3c98665b1ac90f8 | |
parent | 42be0b55557d9f6360675dc90d797a918aa58ef2 (diff) | |
download | pygments-11fbd47baffb8412466b4ba9865370193ad3df80.tar.gz |
Fixed #195
-rw-r--r-- | pygments/lexers/other.py | 55 |
1 files changed, 54 insertions, 1 deletions
diff --git a/pygments/lexers/other.py b/pygments/lexers/other.py index 80b06b28..f3e8c920 100644 --- a/pygments/lexers/other.py +++ b/pygments/lexers/other.py @@ -36,7 +36,8 @@ __all__ = ['BrainfuckLexer', 'BefungeLexer', 'RedcodeLexer', 'MOOCodeLexer', 'ECLLexer', 'UrbiscriptLexer', 'OpenEdgeLexer', 'BroLexer', 'MscgenLexer', 'KconfigLexer', 'VGLLexer', 'SourcePawnLexer', 'RobotFrameworkLexer', 'PuppetLexer', 'NSISLexer', 'RPMSpecLexer', - 'CbmBasicV2Lexer', 'AutoItLexer', 'RexxLexer', 'APLLexer'] + 'CbmBasicV2Lexer', 'AutoItLexer', 'RexxLexer', 'APLLexer', + 'AmbientTalkLexer'] class ECLLexer(RegexLexer): @@ -3884,3 +3885,55 @@ class APLLexer(RegexLexer): (r'[{}]', Keyword.Type), ], } + +class AmbientTalkLexer(RegexLexer): + name = 'AmbientTalk' + filenames = ['*.at'] + aliases = ['AT', 'ambienttalk', 'AmbientTalk/2', 'ambienttalk/2', 'AT/2'] + mimetypes = ['text/x-ambienttalk'] + + flags = re.MULTILINE | re.DOTALL + + builtin = ['if:', 'then:', 'else:', 'when:', 'whenever:', 'discovered:', + 'disconnected:', 'reconnected:', 'takenOffline:', 'becomes:', + 'export:', 'as:', 'object:', 'actor:', 'mirror:', 'taggedAs:', + 'mirroredBy:', 'is:'] + tokens = { + 'root' : [ + (r'\s+', Text), + (r'//.*?\n', Comment.Single), + (r'/\*.*?\*/', Comment.Multiline), + (r'(def|deftype|import|alias|exclude)\b', Keyword), + (r"(%s)" % "|".join(builtin), Name.Builtin), + (r'(true|false|nil)\b', Keyword.Constant), + (r'(~|lobby|jlobby|/)\.', Keyword.Constant, 'namespace'), + (r'"(\\\\|\\"|[^"])*"', String), + (r'\|', Punctuation, 'arglist'), + (r'<:|[\^\*!%&<>+=,./?-]|:=', Operator), + (r"`\w[\w\d]*", String.Symbol), + (r"\w[\w\d]*:", Name.Function), + (r"[\{\}()\[\];`]", Punctuation), + (r'(self|super)\b', Name.Variable.Instance), + (r"\w[\w\d]*", Name.Variable), + (r"@\w[\w\d]*", Name.Class), + (r"@\[", Name.Class, 'annotations'), + include('numbers'), + ], + 'numbers' : [ + (r'(\d+\.\d*|\d*\.\d+)([eE][+-]?[0-9]+)?', Number.Float), + (r'\d+', Number.Integer) + ], + 'namespace': [ + (r'\w[\w\d]*\.', Name.Namespace), + (r'\w[\w\d]*:', Name.Function , '#pop'), + (r'\w[\w\d]*(?!\.)', Name.Function , '#pop') + ], + 'annotations' : [ + (r"(.*?)\]", Name.Class, '#pop') + ], + 'arglist' : [ + (r'\|', Punctuation, '#pop'), + (r'\s*(,)\s*', Punctuation), + (r'\w[\w\d]*', Name.Variable) + ] + } |