summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUnknown <ciri@ciri.pl>2014-04-14 19:36:19 +0200
committerUnknown <ciri@ciri.pl>2014-04-14 19:36:19 +0200
commit11fbd47baffb8412466b4ba9865370193ad3df80 (patch)
treec00d3aba84276d4c41b07e1eb3c98665b1ac90f8
parent42be0b55557d9f6360675dc90d797a918aa58ef2 (diff)
downloadpygments-11fbd47baffb8412466b4ba9865370193ad3df80.tar.gz
Fixed #195
-rw-r--r--pygments/lexers/other.py55
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)
+ ]
+ }