summaryrefslogtreecommitdiff
path: root/pygments
diff options
context:
space:
mode:
authorTim Hatch <tim@timhatch.com>2015-11-02 20:59:30 -0800
committerTim Hatch <tim@timhatch.com>2015-11-02 20:59:30 -0800
commit39b04c956deca69ff5befcfdcc76c5212f65d972 (patch)
treefa6afc9a37dc586cfe823ecb2294912587e3c559 /pygments
parent78a5a260042ce6911d2a3bc668f6be159d7a612b (diff)
parent470742e01fda77c990872ae52672c39522c5b5a1 (diff)
downloadpygments-39b04c956deca69ff5befcfdcc76c5212f65d972.tar.gz
Re-merge pull request #507.
Diffstat (limited to 'pygments')
-rw-r--r--pygments/lexers/_csound_builtins.py3
-rw-r--r--pygments/lexers/_mapping.py1
-rw-r--r--pygments/lexers/csound.py93
3 files changed, 47 insertions, 50 deletions
diff --git a/pygments/lexers/_csound_builtins.py b/pygments/lexers/_csound_builtins.py
index ddf87a64..5f7a798a 100644
--- a/pygments/lexers/_csound_builtins.py
+++ b/pygments/lexers/_csound_builtins.py
@@ -12,6 +12,7 @@
# endop <http://www.csounds.com/manual/html/endop.html
# goto <http://www.csounds.com/manual/html/goto.html>
# igoto <http://www.csounds.com/manual/html/igoto.html>
+# instr <http://www.csounds.com/manual/html/instr.html>
# kgoto <http://www.csounds.com/manual/html/kgoto.html>
# loop_ge <http://www.csounds.com/manual/html/loop_ge.html>
# loop_gt <http://www.csounds.com/manual/html/loop_gt.html>
@@ -463,7 +464,7 @@ OPCODES = set((
'ins',
'insglobal',
'insremot',
- 'instr',
+ #'instr',
'int',
'integ',
'interp',
diff --git a/pygments/lexers/_mapping.py b/pygments/lexers/_mapping.py
index a0ed60d8..af7eec36 100644
--- a/pygments/lexers/_mapping.py
+++ b/pygments/lexers/_mapping.py
@@ -91,6 +91,7 @@ LEXERS = {
'CrmshLexer': ('pygments.lexers.dsls', 'Crmsh', ('crmsh', 'pcmk'), ('*.crmsh', '*.pcmk'), ()),
'CrocLexer': ('pygments.lexers.d', 'Croc', ('croc',), ('*.croc',), ('text/x-crocsrc',)),
'CryptolLexer': ('pygments.lexers.haskell', 'Cryptol', ('cryptol', 'cry'), ('*.cry',), ('text/x-cryptol',)),
+ 'CsoundDocumentLexer': ('pygments.lexers.csound', 'Csound Document', (), ('*.csd',), ()),
'CsoundOrchestraLexer': ('pygments.lexers.csound', 'Csound Orchestra', (), ('*.orc',), ()),
'CsoundScoreLexer': ('pygments.lexers.csound', 'Csound Score', (), ('*.sco',), ()),
'CssDjangoLexer': ('pygments.lexers.templates', 'CSS+Django/Jinja', ('css+django', 'css+jinja'), (), ('text/css+django', 'text/css+jinja')),
diff --git a/pygments/lexers/csound.py b/pygments/lexers/csound.py
index 361f048a..b9613bdf 100644
--- a/pygments/lexers/csound.py
+++ b/pygments/lexers/csound.py
@@ -9,17 +9,17 @@
:license: BSD, see LICENSE for details.
"""
-import re
+import copy, re
from pygments.lexer import RegexLexer, bygroups, default, include, using, words
from pygments.token import Comment, Keyword, Name, Number, Operator, Punctuation, \
String, Text
from pygments.lexers._csound_builtins import OPCODES
+from pygments.lexers.html import HtmlLexer, XmlLexer
from pygments.lexers.python import PythonLexer
from pygments.lexers.scripting import LuaLexer
-# The CsoundDocumentLexer casuses a Pygments test to fail.
-__all__ = ['CsoundScoreLexer', 'CsoundOrchestraLexer'] # , 'CsoundDocumentLexer']
+__all__ = ['CsoundScoreLexer', 'CsoundOrchestraLexer', 'CsoundDocumentLexer']
newline = (r'((?:;|//).*)*(\n)', bygroups(Comment.Single, Text))
@@ -309,49 +309,44 @@ class CsoundOrchestraLexer(CsoundLexer):
}
-# Below is a lexer for Csound documents, but it causes a Pygments test to fail.
-
-# import copy
-# from pygments.lexers.html import HtmlLexer, XmlLexer
-#
-# class CsoundDocumentLexer(XmlLexer):
-# """
-# For `Csound <http://csound.github.io>`_ documents.
-# """
-#
-# name = 'Csound Document'
-# aliases = ['csound']
-# filenames = ['*.csd']
-#
-# tokens = copy.deepcopy(XmlLexer.tokens)
-# for i, item in enumerate(tokens['root']):
-# if len(item) > 2 and item[2] == 'tag':
-# (tokens['root']).insert(i, (r'(<)(\s*)(CsInstruments)(\s*)',
-# bygroups(Name.Tag, Text, Name.Tag, Text),
-# ('orchestra content', 'tag')))
-# (tokens['root']).insert(i, (r'(<)(\s*)(CsScore)(\s*)',
-# bygroups(Name.Tag, Text, Name.Tag, Text),
-# ('score content', 'tag')))
-# (tokens['root']).insert(i, (r'(<)(\s*)(html)(\s*)',
-# bygroups(Name.Tag, Text, Name.Tag, Text),
-# ('HTML', 'tag')))
-# break
-#
-# tokens['orchestra content'] = [
-# (r'(<)(\s*)(/)(\s*)(CsInstruments)(\s*)(>)',
-# bygroups(Name.Tag, Text, Name.Tag, Text, Name.Tag, Text, Name.Tag),
-# '#pop'),
-# (r'.+?(?=<\s*/\s*CsInstruments\s*>)', using(CsoundOrchestraLexer))
-# ]
-# tokens['score content'] = [
-# (r'(<)(\s*)(/)(\s*)(CsScore)(\s*)(>)',
-# bygroups(Name.Tag, Text, Name.Tag, Text, Name.Tag, Text, Name.Tag),
-# '#pop'),
-# (r'.+?(?=<\s*/\s*CsScore\s*>)', using(CsoundScoreLexer))
-# ]
-# tokens['HTML'] = [
-# (r'(<)(\s*)(/)(\s*)(html)(\s*)(>)',
-# bygroups(Name.Tag, Text, Name.Tag, Text, Name.Tag, Text, Name.Tag),
-# '#pop'),
-# (r'.+?(?=<\s*/\s*html\s*>)', using(HtmlLexer))
-# ]
+class CsoundDocumentLexer(XmlLexer):
+ """
+ For `Csound <http://csound.github.io>`_ documents.
+
+
+ """
+
+ name = 'Csound Document'
+ aliases = []
+ filenames = ['*.csd']
+ mimetypes = []
+
+ tokens = copy.deepcopy(XmlLexer.tokens)
+ for i, item in enumerate(tokens['root']):
+ if len(item) > 2 and item[2] == 'tag':
+ (tokens['root']).insert(i, (r'(<)(\s*)(CsInstruments)(\s*)',
+ bygroups(Name.Tag, Text, Name.Tag, Text),
+ ('orchestra content', 'tag')))
+ (tokens['root']).insert(i, (r'(<)(\s*)(CsScore)(\s*)',
+ bygroups(Name.Tag, Text, Name.Tag, Text),
+ ('score content', 'tag')))
+ (tokens['root']).insert(i, (r'(<)(\s*)(html)(\s*)',
+ bygroups(Name.Tag, Text, Name.Tag, Text),
+ ('HTML', 'tag')))
+ break
+
+ tokens['orchestra content'] = [
+ (r'(<)(\s*)(/)(\s*)(CsInstruments)(\s*)(>)',
+ bygroups(Name.Tag, Text, Name.Tag, Text, Name.Tag, Text, Name.Tag), '#pop'),
+ (r'.+?(?=<\s*/\s*CsInstruments\s*>)', using(CsoundOrchestraLexer))
+ ]
+ tokens['score content'] = [
+ (r'(<)(\s*)(/)(\s*)(CsScore)(\s*)(>)',
+ bygroups(Name.Tag, Text, Name.Tag, Text, Name.Tag, Text, Name.Tag), '#pop'),
+ (r'.+?(?=<\s*/\s*CsScore\s*>)', using(CsoundScoreLexer))
+ ]
+ tokens['HTML'] = [
+ (r'(<)(\s*)(/)(\s*)(html)(\s*)(>)',
+ bygroups(Name.Tag, Text, Name.Tag, Text, Name.Tag, Text, Name.Tag), '#pop'),
+ (r'.+?(?=<\s*/\s*html\s*>)', using(HtmlLexer))
+ ]