summaryrefslogtreecommitdiff
path: root/pygments/lexers/math.py
diff options
context:
space:
mode:
authorJeffrey B. Arnold <jeffrey.arnold@gmail.com>2012-09-17 00:04:36 -0400
committerJeffrey B. Arnold <jeffrey.arnold@gmail.com>2012-09-17 00:04:36 -0400
commitd9a3a5c8a7cc568ea8b971153773967a44178d2a (patch)
treeb79b37f6e0856926e90d49ba27f53637c59d182a /pygments/lexers/math.py
parent92628028f2c489950c358b803b49235a9f328c5b (diff)
parentfbed153cb98976256d5707d902a9c91599c7b152 (diff)
downloadpygments-d9a3a5c8a7cc568ea8b971153773967a44178d2a.tar.gz
merge with
Diffstat (limited to 'pygments/lexers/math.py')
-rw-r--r--pygments/lexers/math.py42
1 files changed, 41 insertions, 1 deletions
diff --git a/pygments/lexers/math.py b/pygments/lexers/math.py
index 5d732519..06221489 100644
--- a/pygments/lexers/math.py
+++ b/pygments/lexers/math.py
@@ -21,7 +21,8 @@ from pygments.lexers import _scilab_builtins
__all__ = ['JuliaLexer', 'JuliaConsoleLexer', 'MuPADLexer', 'MatlabLexer',
'MatlabSessionLexer', 'OctaveLexer', 'ScilabLexer', 'NumPyLexer',
- 'RConsoleLexer', 'SLexer', 'JagsLexer', 'BugsLexer', 'StanLexer']
+ 'RConsoleLexer', 'SLexer', 'JagsLexer', 'BugsLexer', 'StanLexer',
+ 'RdLexer']
class JuliaLexer(RegexLexer):
@@ -1383,3 +1384,42 @@ class StanLexer(RegexLexer):
else:
return 0.0
+
+
+class RdLexer(RegexLexer):
+ """ Pygments Lexer for R documentation (Rd) files
+
+ This is a very minimal implementation, highlighting little more
+ than the macros. A description of Rd syntax is found in `Writing R
+ Extensions <http://cran.r-project.org/doc/manuals/R-exts.html>`_
+ and `Parsing Rd files <developer.r-project.org/parseRd.pdf>`_.
+
+ """
+ name = 'Rd'
+ aliases = ['rd']
+ filenames = ['*.Rd']
+ mimetypes = ['text/x-r-doc']
+
+
+ # To account for verbatim / LaTeX-like / and R-like areas
+ # would require parsing.
+ tokens = {
+ 'root' : [
+ # catch escaped brackets and percent sign
+ (r'\\[\\{}%]', String.Escape),
+ # comments
+ (r'%.*$', Comment),
+ # special macros with no arguments
+ (r'\\(?:cr|l?dots|R|tab)\b', Keyword.Constant),
+ # macros
+ (r'\\[a-zA-Z]+\b', Keyword),
+ # special preprocessor macros
+ (r'^\s*#(?:ifn?def|endif).*\b', Comment.Preproc),
+ # Non escaped brackets
+ (r'[{}]', Name.Builtin),
+ # everything else
+ (r'.', Text),
+ ]
+ }
+
+