summaryrefslogtreecommitdiff
path: root/pygments/lexers/compiled.py
diff options
context:
space:
mode:
authorGeorg Brandl <georg@python.org>2014-01-09 17:11:04 +0100
committerGeorg Brandl <georg@python.org>2014-01-09 17:11:04 +0100
commit892bb0777e85b06f2cb50d1a1e6a7c705006399b (patch)
treeb7b9aeee3a789c740d714220bb5dba9eabcfc921 /pygments/lexers/compiled.py
parent099fadd12f7ab86233063f12ab50d9d87eb48ec7 (diff)
parentfced16446f0b632f2d41f31735fa1fdcd4266fb8 (diff)
downloadpygments-892bb0777e85b06f2cb50d1a1e6a7c705006399b.tar.gz
Merge in webhat/pygments-main-with-pike (pull request #237)
Diffstat (limited to 'pygments/lexers/compiled.py')
-rw-r--r--pygments/lexers/compiled.py39
1 files changed, 38 insertions, 1 deletions
diff --git a/pygments/lexers/compiled.py b/pygments/lexers/compiled.py
index b5d52342..6b4362dc 100644
--- a/pygments/lexers/compiled.py
+++ b/pygments/lexers/compiled.py
@@ -30,7 +30,7 @@ __all__ = ['CLexer', 'CppLexer', 'DLexer', 'DelphiLexer', 'ECLexer',
'Modula2Lexer', 'BlitzMaxLexer', 'BlitzBasicLexer', 'NimrodLexer',
'FantomLexer', 'RustLexer', 'CudaLexer', 'MonkeyLexer', 'SwigLexer',
'DylanLidLexer', 'DylanConsoleLexer', 'CobolLexer',
- 'CobolFreeformatLexer', 'LogosLexer', 'ClayLexer']
+ 'CobolFreeformatLexer', 'LogosLexer', 'ClayLexer', 'PikeLexer']
class CFamilyLexer(RegexLexer):
@@ -231,6 +231,43 @@ class CppLexer(CFamilyLexer):
def analyse_text(text):
return 0.1
+class PikeLexer(CppLexer):
+ """
+ For `Pike <http://pike.lysator.liu.se/>`_ source code.
+
+ *New in Pygments 1.7.*
+ """
+ name = 'Pike'
+ aliases = ['pike']
+ filenames = ['*.pike', '*.pmod']
+ mimetypes = ['text/x-pike']
+
+ tokens = {
+ 'statements': [
+ (r'(catch|new|private|protected|public|gauge|'
+ r'throw|throws|class|interface|implement|abstract|extends|from|'
+ r'this|super|new|constant|final|static|import|use|extern|'
+ r'inline|proto|break|continue|if|else|for|'
+ r'while|do|switch|case|as|in|version|return|true|false|null|'
+ r'__VERSION__|__MAJOR__|__MINOR__|__BUILD__|__REAL_VERSION__|'
+ r'__REAL_MAJOR__|__REAL_MINOR__|__REAL_BUILD__|__DATE__|__TIME__|'
+ r'__FILE__|__DIR__|__LINE__|__AUTO_BIGNUM__|__NT__|__PIKE__|'
+ r'__amigaos__|_Pragma|static_assert|defined|sscanf)\b',
+ Keyword),
+ (r'(bool|int|long|float|short|double|char|string|object|void|mapping|'
+ r'array|multiset|program|function|lambda|mixed|'
+ r'[a-z_][a-z0-9_]*_t)\b',
+ Keyword.Type),
+ (r'(class)(\s+)', bygroups(Keyword, Text), 'classname'),
+ (r'[~!%^&*+=|?:<>/-@]', Operator),
+ inherit,
+ ],
+ 'classname': [
+ (r'[a-zA-Z_][a-zA-Z0-9_]*', Name.Class, '#pop'),
+ # template specification
+ (r'\s*(?=>)', Text, '#pop'),
+ ],
+ }
class SwigLexer(CppLexer):
"""