summaryrefslogtreecommitdiff
path: root/pygments
diff options
context:
space:
mode:
Diffstat (limited to 'pygments')
-rw-r--r--pygments/__init__.py6
-rw-r--r--pygments/cmdline.py11
-rw-r--r--pygments/filter.py2
-rwxr-xr-xpygments/formatters/_mapping.py13
-rw-r--r--pygments/formatters/html.py77
-rw-r--r--pygments/formatters/img.py19
-rw-r--r--pygments/formatters/irc.py182
-rw-r--r--pygments/formatters/terminal.py71
-rw-r--r--pygments/formatters/terminal256.py64
-rw-r--r--pygments/lexer.py19
-rw-r--r--pygments/lexers/_cocoa_builtins.py9
-rw-r--r--pygments/lexers/_csound_builtins.py1339
-rw-r--r--pygments/lexers/_lasso_builtins.py6468
-rw-r--r--pygments/lexers/_mapping.py64
-rw-r--r--pygments/lexers/_stan_builtins.py11
-rw-r--r--pygments/lexers/algebra.py40
-rw-r--r--pygments/lexers/archetype.py14
-rw-r--r--pygments/lexers/asm.py3
-rw-r--r--pygments/lexers/business.py2
-rw-r--r--pygments/lexers/c_cpp.py40
-rw-r--r--pygments/lexers/c_like.py164
-rw-r--r--pygments/lexers/chapel.py11
-rw-r--r--pygments/lexers/configs.py291
-rw-r--r--pygments/lexers/csound.py366
-rw-r--r--pygments/lexers/css.py33
-rw-r--r--pygments/lexers/dsls.py208
-rw-r--r--pygments/lexers/elm.py119
-rw-r--r--pygments/lexers/esoteric.py111
-rw-r--r--pygments/lexers/ezhil.py68
-rw-r--r--pygments/lexers/fortran.py17
-rw-r--r--pygments/lexers/functional.py2
-rw-r--r--pygments/lexers/grammar_notation.py131
-rw-r--r--pygments/lexers/graph.py1
-rw-r--r--pygments/lexers/hexdump.py97
-rw-r--r--pygments/lexers/idl.py11
-rw-r--r--pygments/lexers/int_fiction.py1
-rw-r--r--pygments/lexers/j.py144
-rw-r--r--pygments/lexers/javascript.py283
-rw-r--r--pygments/lexers/julia.py5
-rw-r--r--pygments/lexers/jvm.py18
-rw-r--r--pygments/lexers/lisp.py258
-rw-r--r--pygments/lexers/make.py1
-rw-r--r--pygments/lexers/modeling.py6
-rw-r--r--pygments/lexers/modula2.py313
-rw-r--r--pygments/lexers/oberon.py105
-rw-r--r--pygments/lexers/parasail.py79
-rw-r--r--pygments/lexers/pascal.py13
-rw-r--r--pygments/lexers/praat.py295
-rw-r--r--pygments/lexers/prolog.py8
-rw-r--r--pygments/lexers/python.py88
-rw-r--r--pygments/lexers/qvt.py150
-rw-r--r--pygments/lexers/rdf.py206
-rw-r--r--pygments/lexers/roboconf.py82
-rw-r--r--pygments/lexers/ruby.py2
-rw-r--r--pygments/lexers/rust.py2
-rw-r--r--pygments/lexers/scripting.py322
-rw-r--r--pygments/lexers/shell.py543
-rw-r--r--pygments/lexers/sql.py4
-rw-r--r--pygments/lexers/supercollider.py90
-rw-r--r--pygments/lexers/templates.py10
-rw-r--r--pygments/lexers/testing.py86
-rw-r--r--pygments/lexers/theorem.py22
-rw-r--r--pygments/lexers/trafficscript.py53
-rw-r--r--pygments/lexers/webmisc.py79
-rw-r--r--pygments/lexers/x10.py69
-rw-r--r--pygments/sphinxext.py2
-rw-r--r--pygments/styles/arduino.py3
-rw-r--r--pygments/token.py1
-rw-r--r--pygments/util.py6
69 files changed, 9549 insertions, 3884 deletions
diff --git a/pygments/__init__.py b/pygments/__init__.py
index 1ce34b2a..b37bdccb 100644
--- a/pygments/__init__.py
+++ b/pygments/__init__.py
@@ -46,13 +46,13 @@ def lex(code, lexer):
except TypeError as err:
if isinstance(err.args[0], str) and \
('unbound method get_tokens' in err.args[0] or
- 'missing 1 required positional argument' in err.args[0]):
+ 'missing 1 required positional argument' in err.args[0]):
raise TypeError('lex() argument must be a lexer instance, '
'not a class')
raise
-def format(tokens, formatter, outfile=None):
+def format(tokens, formatter, outfile=None): # pylint: disable=redefined-builtin
"""
Format a tokenlist ``tokens`` with the formatter ``formatter``.
@@ -70,7 +70,7 @@ def format(tokens, formatter, outfile=None):
except TypeError as err:
if isinstance(err.args[0], str) and \
('unbound method format' in err.args[0] or
- 'missing 1 required positional argument' in err.args[0]):
+ 'missing 1 required positional argument' in err.args[0]):
raise TypeError('format() argument must be a formatter instance, '
'not a class')
raise
diff --git a/pygments/cmdline.py b/pygments/cmdline.py
index f5ea5653..00745edc 100644
--- a/pygments/cmdline.py
+++ b/pygments/cmdline.py
@@ -19,11 +19,12 @@ from pygments import __version__, highlight
from pygments.util import ClassNotFound, OptionError, docstring_headline, \
guess_decode, guess_decode_from_terminal, terminal_encoding
from pygments.lexers import get_all_lexers, get_lexer_by_name, guess_lexer, \
- get_lexer_for_filename, find_lexer_class_for_filename, TextLexer
+ get_lexer_for_filename, find_lexer_class_for_filename
+from pygments.lexers.special import TextLexer
from pygments.formatters.latex import LatexEmbeddedLexer, LatexFormatter
from pygments.formatters import get_all_formatters, get_formatter_by_name, \
- get_formatter_for_filename, find_formatter_class, \
- TerminalFormatter # pylint:disable-msg=E0611
+ get_formatter_for_filename, find_formatter_class
+from pygments.formatters.terminal import TerminalFormatter
from pygments.filters import get_all_filters, find_filter_class
from pygments.styles import get_all_styles, get_style_by_name
@@ -247,7 +248,7 @@ def main_inner(popts, args, usage):
print(usage, file=sys.stderr)
return 2
- what, name = args
+ what, name = args # pylint: disable=unbalanced-tuple-unpacking
if what not in ('lexer', 'formatter', 'filter'):
print(usage, file=sys.stderr)
return 2
@@ -269,7 +270,7 @@ def main_inner(popts, args, usage):
opts.pop('-P', None)
# encodings
- inencoding = parsed_opts.get('inencoding', parsed_opts.get('encoding'))
+ inencoding = parsed_opts.get('inencoding', parsed_opts.get('encoding'))
outencoding = parsed_opts.get('outencoding', parsed_opts.get('encoding'))
# handle ``pygmentize -N``
diff --git a/pygments/filter.py b/pygments/filter.py
index 529d4f54..c8176ed9 100644
--- a/pygments/filter.py
+++ b/pygments/filter.py
@@ -69,6 +69,6 @@ class FunctionFilter(Filter):
Filter.__init__(self, **options)
def filter(self, lexer, stream):
- # pylint: disable-msg=E1102
+ # pylint: disable=not-callable
for ttype, value in self.function(lexer, stream, self.options):
yield ttype, value
diff --git a/pygments/formatters/_mapping.py b/pygments/formatters/_mapping.py
index bfc82253..569ae849 100755
--- a/pygments/formatters/_mapping.py
+++ b/pygments/formatters/_mapping.py
@@ -20,6 +20,7 @@ FORMATTERS = {
'BmpImageFormatter': ('pygments.formatters.img', 'img_bmp', ('bmp', 'bitmap'), ('*.bmp',), 'Create a bitmap image from source code. This uses the Python Imaging Library to generate a pixmap from the source code.'),
'GifImageFormatter': ('pygments.formatters.img', 'img_gif', ('gif',), ('*.gif',), 'Create a GIF image from source code. This uses the Python Imaging Library to generate a pixmap from the source code.'),
'HtmlFormatter': ('pygments.formatters.html', 'HTML', ('html',), ('*.html', '*.htm'), "Format tokens as HTML 4 ``<span>`` tags within a ``<pre>`` tag, wrapped in a ``<div>`` tag. The ``<div>``'s CSS class can be set by the `cssclass` option."),
+ 'IRCFormatter': ('pygments.formatters.irc', 'IRC', ('irc', 'IRC'), (), 'Format tokens with IRC color sequences'),
'ImageFormatter': ('pygments.formatters.img', 'img', ('img', 'IMG', 'png'), ('*.png',), 'Create a PNG image from source code. This uses the Python Imaging Library to generate a pixmap from the source code.'),
'JpgImageFormatter': ('pygments.formatters.img', 'img_jpg', ('jpg', 'jpeg'), ('*.jpg',), 'Create a JPEG image from source code. This uses the Python Imaging Library to generate a pixmap from the source code.'),
'LatexFormatter': ('pygments.formatters.latex', 'LaTeX', ('latex', 'tex'), ('*.tex',), 'Format tokens as LaTeX code. This needs the `fancyvrb` and `color` standard packages.'),
@@ -27,8 +28,9 @@ FORMATTERS = {
'RawTokenFormatter': ('pygments.formatters.other', 'Raw tokens', ('raw', 'tokens'), ('*.raw',), 'Format tokens as a raw representation for storing token streams.'),
'RtfFormatter': ('pygments.formatters.rtf', 'RTF', ('rtf',), ('*.rtf',), 'Format tokens as RTF markup. This formatter automatically outputs full RTF documents with color information and other useful stuff. Perfect for Copy and Paste into Microsoft(R) Word(R) documents.'),
'SvgFormatter': ('pygments.formatters.svg', 'SVG', ('svg',), ('*.svg',), 'Format tokens as an SVG graphics file. This formatter is still experimental. Each line of code is a ``<text>`` element with explicit ``x`` and ``y`` coordinates containing ``<tspan>`` elements with the individual token styles.'),
- 'Terminal256Formatter': ('pygments.formatters.terminal256', 'Terminal256', ('terminal256', 'console256', '256'), (), 'Format tokens with ANSI color sequences, for output in a 256-color terminal or console. Like in `TerminalFormatter` color sequences are terminated at newlines, so that paging the output works correctly.'),
+ 'Terminal256Formatter': ('pygments.formatters.terminal256', 'Terminal256', ('terminal256', 'console256', '256'), (), 'Format tokens with ANSI color sequences, for output in a 256-color terminal or console. Like in `TerminalFormatter` color sequences are terminated at newlines, so that paging the output works correctly.'),
'TerminalFormatter': ('pygments.formatters.terminal', 'Terminal', ('terminal', 'console'), (), 'Format tokens with ANSI color sequences, for output in a text console. Color sequences are terminated at newlines, so that paging the output works correctly.'),
+ 'TerminalTrueColorFormatter': ('pygments.formatters.terminal256', 'TerminalTrueColor', ('terminal16m', 'console16m', '16m'), (), 'Format tokens with ANSI color sequences, for output in a true-color terminal or console. Like in `TerminalFormatter` color sequences are terminated at newlines, so that paging the output works correctly.'),
'TestcaseFormatter': ('pygments.formatters.other', 'Testcase', ('testcase',), (), 'Format tokens as appropriate for a new testcase.')
}
@@ -64,11 +66,18 @@ if __name__ == '__main__': # pragma: no cover
# extract useful sourcecode from this file
with open(__file__) as fp:
content = fp.read()
+ # replace crnl to nl for Windows.
+ #
+ # Note that, originally, contributers should keep nl of master
+ # repository, for example by using some kind of automatic
+ # management EOL, like `EolExtension
+ # <https://www.mercurial-scm.org/wiki/EolExtension>`.
+ content = content.replace("\r\n", "\n")
header = content[:content.find('FORMATTERS = {')]
footer = content[content.find("if __name__ == '__main__':"):]
# write new file
- with open(__file__, 'w') as fp:
+ with open(__file__, 'wb') as fp:
fp.write(header)
fp.write('FORMATTERS = {\n %s\n}\n\n' % ',\n '.join(found_formatters))
fp.write(footer)
diff --git a/pygments/formatters/html.py b/pygments/formatters/html.py
index 67ad685f..a0087515 100644
--- a/pygments/formatters/html.py
+++ b/pygments/formatters/html.py
@@ -140,7 +140,7 @@ class HtmlFormatter(Formatter):
When `tagsfile` is set to the path of a ctags index file, it is used to
generate hyperlinks from names to their definition. You must enable
- `anchorlines` and run ctags with the `-n` option for this to work. The
+ `lineanchors` and run ctags with the `-n` option for this to work. The
`python-ctags` module from PyPI must be installed to use this feature;
otherwise a `RuntimeError` will be raised.
@@ -321,6 +321,12 @@ class HtmlFormatter(Formatter):
.. versionadded:: 1.6
+ `filename`
+ A string used to generate a filename when rendering <pre> blocks,
+ for example if displaying source code.
+
+ .. versionadded:: 2.1
+
**Subclassing the HTML formatter**
@@ -388,6 +394,7 @@ class HtmlFormatter(Formatter):
self.noclobber_cssfile = get_bool_opt(options, 'noclobber_cssfile', False)
self.tagsfile = self._decodeifneeded(options.get('tagsfile', ''))
self.tagurlformat = self._decodeifneeded(options.get('tagurlformat', ''))
+ self.filename = self._decodeifneeded(options.get('filename', ''))
if self.tagsfile:
if not ctags:
@@ -521,7 +528,7 @@ class HtmlFormatter(Formatter):
cssfilename = os.path.join(os.path.dirname(filename),
self.cssfile)
except AttributeError:
- print('Note: Cannot determine output file name, ' \
+ print('Note: Cannot determine output file name, '
'using current directory as base for the CSS file name',
file=sys.stderr)
cssfilename = self.cssfile
@@ -530,21 +537,21 @@ class HtmlFormatter(Formatter):
if not os.path.exists(cssfilename) or not self.noclobber_cssfile:
cf = open(cssfilename, "w")
cf.write(CSSFILE_TEMPLATE %
- {'styledefs': self.get_style_defs('body')})
+ {'styledefs': self.get_style_defs('body')})
cf.close()
except IOError as err:
err.strerror = 'Error writing CSS file: ' + err.strerror
raise
yield 0, (DOC_HEADER_EXTERNALCSS %
- dict(title = self.title,
- cssfile = self.cssfile,
- encoding = self.encoding))
+ dict(title=self.title,
+ cssfile=self.cssfile,
+ encoding=self.encoding))
else:
yield 0, (DOC_HEADER %
- dict(title = self.title,
- styledefs = self.get_style_defs('body'),
- encoding = self.encoding))
+ dict(title=self.title,
+ styledefs=self.get_style_defs('body'),
+ encoding=self.encoding))
for t, line in inner:
yield t, line
@@ -623,35 +630,35 @@ class HtmlFormatter(Formatter):
if self.noclasses:
if sp:
for t, line in lines:
- if num%sp == 0:
+ if num % sp == 0:
style = 'background-color: #ffffc0; padding: 0 5px 0 5px'
else:
style = 'background-color: #f0f0f0; padding: 0 5px 0 5px'
yield 1, '<span style="%s">%*s </span>' % (
- style, mw, (num%st and ' ' or num)) + line
+ style, mw, (num % st and ' ' or num)) + line
num += 1
else:
for t, line in lines:
yield 1, ('<span style="background-color: #f0f0f0; '
'padding: 0 5px 0 5px">%*s </span>' % (
- mw, (num%st and ' ' or num)) + line)
+ mw, (num % st and ' ' or num)) + line)
num += 1
elif sp:
for t, line in lines:
yield 1, '<span class="lineno%s">%*s </span>' % (
- num%sp == 0 and ' special' or '', mw,
- (num%st and ' ' or num)) + line
+ num % sp == 0 and ' special' or '', mw,
+ (num % st and ' ' or num)) + line
num += 1
else:
for t, line in lines:
yield 1, '<span class="lineno">%*s </span>' % (
- mw, (num%st and ' ' or num)) + line
+ mw, (num % st and ' ' or num)) + line
num += 1
def _wrap_lineanchors(self, inner):
s = self.lineanchors
- i = self.linenostart - 1 # subtract 1 since we have to increment i
- # *before* yielding
+ # subtract 1 since we have to increment i *before* yielding
+ i = self.linenostart - 1
for t, line in inner:
if t:
i += 1
@@ -672,14 +679,14 @@ class HtmlFormatter(Formatter):
def _wrap_div(self, inner):
style = []
if (self.noclasses and not self.nobackground and
- self.style.background_color is not None):
+ self.style.background_color is not None):
style.append('background: %s' % (self.style.background_color,))
if self.cssstyles:
style.append(self.cssstyles)
style = '; '.join(style)
- yield 0, ('<div' + (self.cssclass and ' class="%s"' % self.cssclass)
- + (style and (' style="%s"' % style)) + '>')
+ yield 0, ('<div' + (self.cssclass and ' class="%s"' % self.cssclass) +
+ (style and (' style="%s"' % style)) + '>')
for tup in inner:
yield tup
yield 0, '</div>\n'
@@ -692,6 +699,9 @@ class HtmlFormatter(Formatter):
style.append('line-height: 125%')
style = '; '.join(style)
+ if self.filename:
+ yield 0, ('<span class="filename">' + self.filename + '</span>')
+
yield 0, ('<pre' + (style and ' style="%s"' % style) + '>')
for tup in inner:
yield tup
@@ -711,7 +721,7 @@ class HtmlFormatter(Formatter):
tagsfile = self.tagsfile
lspan = ''
- line = ''
+ line = []
for ttype, value in tokensource:
if nocls:
cclass = getcls(ttype)
@@ -742,30 +752,31 @@ class HtmlFormatter(Formatter):
for part in parts[:-1]:
if line:
if lspan != cspan:
- line += (lspan and '</span>') + cspan + part + \
- (cspan and '</span>') + lsep
- else: # both are the same
- line += part + (lspan and '</span>') + lsep
- yield 1, line
- line = ''
+ line.extend(((lspan and '</span>'), cspan, part,
+ (cspan and '</span>'), lsep))
+ else: # both are the same
+ line.extend((part, (lspan and '</span>'), lsep))
+ yield 1, ''.join(line)
+ line = []
elif part:
- yield 1, cspan + part + (cspan and '</span>') + lsep
+ yield 1, ''.join((cspan, part, (cspan and '</span>'), lsep))
else:
yield 1, lsep
# for the last line
if line and parts[-1]:
if lspan != cspan:
- line += (lspan and '</span>') + cspan + parts[-1]
+ line.extend(((lspan and '</span>'), cspan, parts[-1]))
lspan = cspan
else:
- line += parts[-1]
+ line.append(parts[-1])
elif parts[-1]:
- line = cspan + parts[-1]
+ line = [cspan, parts[-1]]
lspan = cspan
# else we neither have to open a new span nor set lspan
if line:
- yield 1, line + (lspan and '</span>') + lsep
+ line.extend(((lspan and '</span>'), lsep))
+ yield 1, ''.join(line)
def _lookup_ctag(self, token):
entry = ctags.TagEntry()
@@ -784,7 +795,7 @@ class HtmlFormatter(Formatter):
for i, (t, value) in enumerate(tokensource):
if t != 1:
yield t, value
- if i + 1 in hls: # i + 1 because Python indexes start at 0
+ if i + 1 in hls: # i + 1 because Python indexes start at 0
if self.noclasses:
style = ''
if self.style.highlight_color is not None:
diff --git a/pygments/formatters/img.py b/pygments/formatters/img.py
index 9d1365a4..a7b5d51e 100644
--- a/pygments/formatters/img.py
+++ b/pygments/formatters/img.py
@@ -15,6 +15,8 @@ from pygments.formatter import Formatter
from pygments.util import get_bool_opt, get_int_opt, get_list_opt, \
get_choice_opt, xrange
+import subprocess
+
# Import this carefully
try:
from PIL import Image, ImageDraw, ImageFont
@@ -75,16 +77,13 @@ class FontManager(object):
self._create_nix()
def _get_nix_font_path(self, name, style):
- try:
- from commands import getstatusoutput
- except ImportError:
- from subprocess import getstatusoutput
- exit, out = getstatusoutput('fc-list "%s:style=%s" file' %
- (name, style))
- if not exit:
- lines = out.splitlines()
+ proc = subprocess.Popen(['fc-list', "%s:style=%s" % (name, style), 'file'],
+ stdout=subprocess.PIPE, stderr=None)
+ stdout, _ = proc.communicate()
+ if proc.returncode == 0:
+ lines = stdout.splitlines()
if lines:
- path = lines[0].strip().strip(':')
+ path = lines[0].decode().strip().strip(':')
return path
def _create_nix(self):
@@ -197,7 +196,7 @@ class ImageFormatter(Formatter):
bold and italic fonts will be generated. This really should be a
monospace font to look sane.
- Default: "Bitstream Vera Sans Mono"
+ Default: "Bitstream Vera Sans Mono" on Windows, Courier New on \*nix
`font_size`
The font size in points to be used.
diff --git a/pygments/formatters/irc.py b/pygments/formatters/irc.py
new file mode 100644
index 00000000..44fe6c4a
--- /dev/null
+++ b/pygments/formatters/irc.py
@@ -0,0 +1,182 @@
+# -*- coding: utf-8 -*-
+"""
+ pygments.formatters.irc
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+ Formatter for IRC output
+
+ :copyright: Copyright 2006-2015 by the Pygments team, see AUTHORS.
+ :license: BSD, see LICENSE for details.
+"""
+
+import sys
+
+from pygments.formatter import Formatter
+from pygments.token import Keyword, Name, Comment, String, Error, \
+ Number, Operator, Generic, Token, Whitespace
+from pygments.util import get_choice_opt
+
+
+__all__ = ['IRCFormatter']
+
+
+#: Map token types to a tuple of color values for light and dark
+#: backgrounds.
+IRC_COLORS = {
+ Token: ('', ''),
+
+ Whitespace: ('lightgray', 'darkgray'),
+ Comment: ('lightgray', 'darkgray'),
+ Comment.Preproc: ('teal', 'turquoise'),
+ Keyword: ('darkblue', 'blue'),
+ Keyword.Type: ('teal', 'turquoise'),
+ Operator.Word: ('purple', 'fuchsia'),
+ Name.Builtin: ('teal', 'turquoise'),
+ Name.Function: ('darkgreen', 'green'),
+ Name.Namespace: ('_teal_', '_turquoise_'),
+ Name.Class: ('_darkgreen_', '_green_'),
+ Name.Exception: ('teal', 'turquoise'),
+ Name.Decorator: ('darkgray', 'lightgray'),
+ Name.Variable: ('darkred', 'red'),
+ Name.Constant: ('darkred', 'red'),
+ Name.Attribute: ('teal', 'turquoise'),
+ Name.Tag: ('blue', 'blue'),
+ String: ('brown', 'brown'),
+ Number: ('darkblue', 'blue'),
+
+ Generic.Deleted: ('red', 'red'),
+ Generic.Inserted: ('darkgreen', 'green'),
+ Generic.Heading: ('**', '**'),
+ Generic.Subheading: ('*purple*', '*fuchsia*'),
+ Generic.Error: ('red', 'red'),
+
+ Error: ('_red_', '_red_'),
+}
+
+
+IRC_COLOR_MAP = {
+ 'white': 0,
+ 'black': 1,
+ 'darkblue': 2,
+ 'green': 3,
+ 'red': 4,
+ 'brown': 5,
+ 'purple': 6,
+ 'orange': 7,
+ 'darkgreen': 7, #compat w/ ansi
+ 'yellow': 8,
+ 'lightgreen': 9,
+ 'turquoise': 9, # compat w/ ansi
+ 'teal': 10,
+ 'lightblue': 11,
+ 'darkred': 11, # compat w/ ansi
+ 'blue': 12,
+ 'fuchsia': 13,
+ 'darkgray': 14,
+ 'lightgray': 15,
+}
+
+def ircformat(color, text):
+ if len(color) < 1:
+ return text
+ add = sub = ''
+ if '_' in color: # italic
+ add += '\x1D'
+ sub = '\x1D' + sub
+ color = color.strip('_')
+ if '*' in color: # bold
+ add += '\x02'
+ sub = '\x02' + sub
+ color = color.strip('*')
+ # underline (\x1F) not supported
+ # backgrounds (\x03FF,BB) not supported
+ if len(color) > 0: # actual color - may have issues with ircformat("red", "blah")+"10" type stuff
+ add += '\x03' + str(IRC_COLOR_MAP[color]).zfill(2)
+ sub = '\x03' + sub
+ return add + text + sub
+ return '<'+add+'>'+text+'</'+sub+'>'
+
+
+class IRCFormatter(Formatter):
+ r"""
+ Format tokens with IRC color sequences
+
+ The `get_style_defs()` method doesn't do anything special since there is
+ no support for common styles.
+
+ Options accepted:
+
+ `bg`
+ Set to ``"light"`` or ``"dark"`` depending on the terminal's background
+ (default: ``"light"``).
+
+ `colorscheme`
+ A dictionary mapping token types to (lightbg, darkbg) color names or
+ ``None`` (default: ``None`` = use builtin colorscheme).
+
+ `linenos`
+ Set to ``True`` to have line numbers in the output as well
+ (default: ``False`` = no line numbers).
+ """
+ name = 'IRC'
+ aliases = ['irc', 'IRC']
+ filenames = []
+
+ def __init__(self, **options):
+ Formatter.__init__(self, **options)
+ self.darkbg = get_choice_opt(options, 'bg',
+ ['light', 'dark'], 'light') == 'dark'
+ self.colorscheme = options.get('colorscheme', None) or IRC_COLORS
+ self.linenos = options.get('linenos', False)
+ self._lineno = 0
+
+ def _write_lineno(self, outfile):
+ self._lineno += 1
+ outfile.write("\n%04d: " % self._lineno)
+
+ def _format_unencoded_with_lineno(self, tokensource, outfile):
+ self._write_lineno(outfile)
+
+ for ttype, value in tokensource:
+ if value.endswith("\n"):
+ self._write_lineno(outfile)
+ value = value[:-1]
+ color = self.colorscheme.get(ttype)
+ while color is None:
+ ttype = ttype[:-1]
+ color = self.colorscheme.get(ttype)
+ if color:
+ color = color[self.darkbg]
+ spl = value.split('\n')
+ for line in spl[:-1]:
+ self._write_lineno(outfile)
+ if line:
+ outfile.write(ircformat(color, line[:-1]))
+ if spl[-1]:
+ outfile.write(ircformat(color, spl[-1]))
+ else:
+ outfile.write(value)
+
+ outfile.write("\n")
+
+ def format_unencoded(self, tokensource, outfile):
+ if self.linenos:
+ self._format_unencoded_with_lineno(tokensource, outfile)
+ return
+
+ for ttype, value in tokensource:
+ color = self.colorscheme.get(ttype)
+ while color is None:
+ ttype = ttype[:-1]
+ color = self.colorscheme.get(ttype)
+ if color:
+ color = color[self.darkbg]
+ spl = value.split('\n')
+ for line in spl[:-1]:
+ if line:
+ outfile.write(ircformat(color, line))
+ outfile.write('\n')
+ if spl[-1]:
+ outfile.write(ircformat(color, spl[-1]))
+ else:
+ outfile.write(value)
diff --git a/pygments/formatters/terminal.py b/pygments/formatters/terminal.py
index 3c4b025f..2dbfde7f 100644
--- a/pygments/formatters/terminal.py
+++ b/pygments/formatters/terminal.py
@@ -49,6 +49,7 @@ TERMINAL_COLORS = {
Generic.Inserted: ('darkgreen', 'green'),
Generic.Heading: ('**', '**'),
Generic.Subheading: ('*purple*', '*fuchsia*'),
+ Generic.Prompt: ('**', '**'),
Generic.Error: ('red', 'red'),
Error: ('_red_', '_red_'),
@@ -101,51 +102,35 @@ class TerminalFormatter(Formatter):
def _write_lineno(self, outfile):
self._lineno += 1
- outfile.write("\n%04d: " % self._lineno)
-
- def _format_unencoded_with_lineno(self, tokensource, outfile):
- self._write_lineno(outfile)
-
- for ttype, value in tokensource:
- if value.endswith("\n"):
- self._write_lineno(outfile)
- value = value[:-1]
- color = self.colorscheme.get(ttype)
- while color is None:
- ttype = ttype[:-1]
- color = self.colorscheme.get(ttype)
- if color:
- color = color[self.darkbg]
- spl = value.split('\n')
- for line in spl[:-1]:
- self._write_lineno(outfile)
- if line:
- outfile.write(ansiformat(color, line[:-1]))
- if spl[-1]:
- outfile.write(ansiformat(color, spl[-1]))
- else:
- outfile.write(value)
-
- outfile.write("\n")
+ outfile.write("%s%04d: " % (self._lineno != 1 and '\n' or '', self._lineno))
+
+ def _get_color(self, ttype):
+ # self.colorscheme is a dict containing usually generic types, so we
+ # have to walk the tree of dots. The base Token type must be a key,
+ # even if it's empty string, as in the default above.
+ colors = self.colorscheme.get(ttype)
+ while colors is None:
+ ttype = ttype.parent
+ colors = self.colorscheme.get(ttype)
+ return colors[self.darkbg]
def format_unencoded(self, tokensource, outfile):
if self.linenos:
- self._format_unencoded_with_lineno(tokensource, outfile)
- return
+ self._write_lineno(outfile)
for ttype, value in tokensource:
- color = self.colorscheme.get(ttype)
- while color is None:
- ttype = ttype[:-1]
- color = self.colorscheme.get(ttype)
- if color:
- color = color[self.darkbg]
- spl = value.split('\n')
- for line in spl[:-1]:
- if line:
- outfile.write(ansiformat(color, line))
- outfile.write('\n')
- if spl[-1]:
- outfile.write(ansiformat(color, spl[-1]))
- else:
- outfile.write(value)
+ color = self._get_color(ttype)
+
+ for line in value.splitlines(True):
+ if color:
+ outfile.write(ansiformat(color, line.rstrip('\n')))
+ else:
+ outfile.write(line.rstrip('\n'))
+ if line.endswith('\n'):
+ if self.linenos:
+ self._write_lineno(outfile)
+ else:
+ outfile.write('\n')
+
+ if self.linenos:
+ outfile.write("\n")
diff --git a/pygments/formatters/terminal256.py b/pygments/formatters/terminal256.py
index 5d794f4e..af311955 100644
--- a/pygments/formatters/terminal256.py
+++ b/pygments/formatters/terminal256.py
@@ -29,7 +29,7 @@ import sys
from pygments.formatter import Formatter
-__all__ = ['Terminal256Formatter']
+__all__ = ['Terminal256Formatter', 'TerminalTrueColorFormatter']
class EscapeSequence:
@@ -56,6 +56,18 @@ class EscapeSequence:
attrs.append("04")
return self.escape(attrs)
+ def true_color_string(self):
+ attrs = []
+ if self.fg:
+ attrs.extend(("38", "2", str(self.fg[0]), str(self.fg[1]), str(self.fg[2])))
+ if self.bg:
+ attrs.extend(("48", "2", str(self.bg[0]), str(self.bg[1]), str(self.bg[2])))
+ if self.bold:
+ attrs.append("01")
+ if self.underline:
+ attrs.append("04")
+ return self.escape(attrs)
+
def reset_string(self):
attrs = []
if self.fg is not None:
@@ -68,9 +80,9 @@ class EscapeSequence:
class Terminal256Formatter(Formatter):
- r"""
+ """
Format tokens with ANSI color sequences, for output in a 256-color
- terminal or console. Like in `TerminalFormatter` color sequences
+ terminal or console. Like in `TerminalFormatter` color sequences
are terminated at newlines, so that paging the output works correctly.
The formatter takes colors from a style defined by the `style` option
@@ -221,3 +233,49 @@ class Terminal256Formatter(Formatter):
if not_found:
outfile.write(value)
+
+
+class TerminalTrueColorFormatter(Terminal256Formatter):
+ r"""
+ Format tokens with ANSI color sequences, for output in a true-color
+ terminal or console. Like in `TerminalFormatter` color sequences
+ are terminated at newlines, so that paging the output works correctly.
+
+ .. versionadded:: 2.1
+
+ Options accepted:
+
+ `style`
+ The style to use, can be a string or a Style subclass (default:
+ ``'default'``).
+ """
+ name = 'TerminalTrueColor'
+ aliases = ['terminal16m', 'console16m', '16m']
+ filenames = []
+
+ def _build_color_table(self):
+ pass
+
+ def _color_tuple(self, color):
+ try:
+ rgb = int(str(color), 16)
+ except ValueError:
+ return None
+ r = (rgb >> 16) & 0xff
+ g = (rgb >> 8) & 0xff
+ b = rgb & 0xff
+ return (r, g, b)
+
+ def _setup_styles(self):
+ for ttype, ndef in self.style:
+ escape = EscapeSequence()
+ if ndef['color']:
+ escape.fg = self._color_tuple(ndef['color'])
+ if ndef['bgcolor']:
+ escape.bg = self._color_tuple(ndef['bgcolor'])
+ if self.usebold and ndef['bold']:
+ escape.bold = True
+ if self.useunderline and ndef['underline']:
+ escape.underline = True
+ self.style_string[str(ttype)] = (escape.true_color_string(),
+ escape.reset_string())
diff --git a/pygments/lexer.py b/pygments/lexer.py
index 07e81033..dd6c01e4 100644
--- a/pygments/lexer.py
+++ b/pygments/lexer.py
@@ -14,7 +14,6 @@ from __future__ import print_function
import re
import sys
import time
-import itertools
from pygments.filter import apply_filters, Filter
from pygments.filters import get_filter_by_name
@@ -43,10 +42,10 @@ class LexerMeta(type):
static methods which always return float values.
"""
- def __new__(cls, name, bases, d):
+ def __new__(mcs, name, bases, d):
if 'analyse_text' in d:
d['analyse_text'] = make_analysator(d['analyse_text'])
- return type.__new__(cls, name, bases, d)
+ return type.__new__(mcs, name, bases, d)
@add_metaclass(LexerMeta)
@@ -189,7 +188,7 @@ class Lexer(object):
text += '\n'
def streamer():
- for i, t, v in self.get_tokens_unprocessed(text):
+ for _, t, v in self.get_tokens_unprocessed(text):
yield t, v
stream = streamer()
if not unfiltered:
@@ -246,7 +245,7 @@ class DelegatingLexer(Lexer):
#
-class include(str):
+class include(str): # pylint: disable=invalid-name
"""
Indicates that a state should include rules from another state.
"""
@@ -260,10 +259,10 @@ class _inherit(object):
def __repr__(self):
return 'inherit'
-inherit = _inherit()
+inherit = _inherit() # pylint: disable=invalid-name
-class combined(tuple):
+class combined(tuple): # pylint: disable=invalid-name
"""
Indicates a state combined from multiple states.
"""
@@ -320,8 +319,8 @@ def bygroups(*args):
if data is not None:
if ctx:
ctx.pos = match.start(i + 1)
- for item in action(lexer, _PseudoMatch(match.start(i + 1),
- data), ctx):
+ for item in action(
+ lexer, _PseudoMatch(match.start(i + 1), data), ctx):
if item:
yield item
if ctx:
@@ -655,6 +654,8 @@ class RegexLexer(Lexer):
statetokens = tokendefs[statestack[-1]]
break
else:
+ # We are here only if all state tokens have been considered
+ # and there was not a match on any of them.
try:
if text[pos] == '\n':
# at EOL, reset state to "root"
diff --git a/pygments/lexers/_cocoa_builtins.py b/pygments/lexers/_cocoa_builtins.py
index b97860b3..a4f00d9d 100644
--- a/pygments/lexers/_cocoa_builtins.py
+++ b/pygments/lexers/_cocoa_builtins.py
@@ -14,16 +14,15 @@
from __future__ import print_function
-COCOA_INTERFACES = set(['UITableViewCell', 'HKCorrelationQuery', 'NSURLSessionDataTask', 'PHFetchOptions', 'NSLinguisticTagger', 'NSStream', 'AVAudioUnitDelay', 'GCMotion', 'SKPhysicsWorld', 'NSString', 'CMAttitude', 'AVAudioEnvironmentDistanceAttenuationParameters', 'HKStatisticsCollection', 'SCNPlane', 'CBPeer', 'JSContext', 'SCNTransaction', 'SCNTorus', 'AVAudioUnitEffect', 'UICollectionReusableView', 'MTLSamplerDescriptor', 'AVAssetReaderSampleReferenceOutput', 'AVMutableCompositionTrack', 'GKLeaderboard', 'NSFetchedResultsController', 'SKRange', 'MKTileOverlayRenderer', 'MIDINetworkSession', 'UIVisualEffectView', 'CIWarpKernel', 'PKObject', 'MKRoute', 'MPVolumeView', 'UIPrintInfo', 'SCNText', 'ADClient', 'UIKeyCommand', 'AVMutableAudioMix', 'GLKEffectPropertyLight', 'WKScriptMessage', 'AVMIDIPlayer', 'PHCollectionListChangeRequest', 'UICollectionViewLayout', 'NSMutableCharacterSet', 'SKPaymentTransaction', 'NEOnDemandRuleConnect', 'NSShadow', 'SCNView', 'NSURLSessionConfiguration', 'MTLVertexAttributeDescriptor', 'CBCharacteristic', 'HKQuantityType', 'CKLocationSortDescriptor', 'NEVPNIKEv2SecurityAssociationParameters', 'CMStepCounter', 'NSNetService', 'AVAssetWriterInputMetadataAdaptor', 'UICollectionView', 'UIViewPrintFormatter', 'SCNLevelOfDetail', 'CAShapeLayer', 'MCPeerID', 'MPRatingCommand', 'WKNavigation', 'NSDictionary', 'NSFileVersion', 'CMGyroData', 'AVAudioUnitDistortion', 'CKFetchRecordsOperation', 'SKPhysicsJointSpring', 'SCNHitTestResult', 'AVAudioTime', 'CIFilter', 'UIView', 'SCNConstraint', 'CAPropertyAnimation', 'MKMapItem', 'MPRemoteCommandCenter', 'UICollectionViewFlowLayoutInvalidationContext', 'UIInputViewController', 'PKPass', 'SCNPhysicsBehavior', 'MTLRenderPassColorAttachmentDescriptor', 'MKPolygonRenderer', 'CKNotification', 'JSValue', 'PHCollectionList', 'CLGeocoder', 'NSByteCountFormatter', 'AVCaptureScreenInput', 'MPFeedbackCommand', 'CAAnimation', 'MKOverlayPathView', 'UIActionSheet', 'UIMotionEffectGroup', 'NSLengthFormatter', 'UIBarItem', 'SKProduct', 'AVAssetExportSession', 'NSKeyedUnarchiver', 'NSMutableSet', 'SCNPyramid', 'PHAssetCollection', 'MKMapView', 'HMHomeManager', 'CATransition', 'MTLCompileOptions', 'UIVibrancyEffect', 'CLCircularRegion', 'MKTileOverlay', 'SCNShape', 'ACAccountCredential', 'SKPhysicsJointLimit', 'MKMapSnapshotter', 'AVMediaSelectionGroup', 'NSIndexSet', 'CBPeripheralManager', 'CKRecordZone', 'AVAudioRecorder', 'NSURL', 'CBCentral', 'NSNumber', 'AVAudioOutputNode', 'MTLVertexAttributeDescriptorArray', 'MKETAResponse', 'SKTransition', 'SSReadingList', 'HKSourceQuery', 'UITableViewRowAction', 'UITableView', 'SCNParticlePropertyController', 'AVCaptureStillImageOutput', 'GCController', 'AVAudioPlayerNode', 'AVAudioSessionPortDescription', 'NSHTTPURLResponse', 'NEOnDemandRuleEvaluateConnection', 'SKEffectNode', 'HKQuantity', 'GCControllerElement', 'AVPlayerItemAccessLogEvent', 'SCNBox', 'NSExtensionContext', 'MKOverlayRenderer', 'SCNPhysicsVehicle', 'NSDecimalNumber', 'EKReminder', 'MKPolylineView', 'CKQuery', 'AVAudioMixerNode', 'GKAchievementDescription', 'EKParticipant', 'NSBlockOperation', 'UIActivityItemProvider', 'CLLocation', 'NSBatchUpdateRequest', 'PHContentEditingOutput', 'PHObjectChangeDetails', 'MPMoviePlayerController', 'AVAudioFormat', 'HMTrigger', 'MTLRenderPassDepthAttachmentDescriptor', 'SCNRenderer', 'GKScore', 'UISplitViewController', 'HKSource', 'NSURLConnection', 'ABUnknownPersonViewController', 'SCNTechnique', 'UIMenuController', 'NSEvent', 'SKTextureAtlas', 'NSKeyedArchiver', 'GKLeaderboardSet', 'NSSimpleCString', 'AVAudioPCMBuffer', 'CBATTRequest', 'GKMatchRequest', 'AVMetadataObject', 'SKProductsRequest', 'UIAlertView', 'NSIncrementalStore', 'MFMailComposeViewController', 'SCNFloor', 'NSSortDescriptor', 'CKFetchNotificationChangesOperation', 'MPMovieAccessLog', 'NSManagedObjectContext', 'AVAudioUnitGenerator', 'WKBackForwardList', 'SKMutableTexture', 'AVCaptureAudioDataOutput', 'ACAccount', 'AVMetadataItem', 'MPRatingCommandEvent', 'AVCaptureDeviceInputSource', 'CLLocationManager', 'MPRemoteCommand', 'AVCaptureSession', 'UIStepper', 'UIRefreshControl', 'NEEvaluateConnectionRule', 'CKModifyRecordsOperation', 'UICollectionViewTransitionLayout', 'CBCentralManager', 'NSPurgeableData', 'SLComposeViewController', 'NSHashTable', 'MKUserTrackingBarButtonItem', 'UILexiconEntry', 'CMMotionActivity', 'SKAction', 'SKShader', 'AVPlayerItemOutput', 'MTLRenderPassAttachmentDescriptor', 'UIDocumentInteractionController', 'UIDynamicItemBehavior', 'NSMutableDictionary', 'UILabel', 'AVCaptureInputPort', 'NSExpression', 'CAInterAppAudioTransportView', 'SKMutablePayment', 'UIImage', 'PHCachingImageManager', 'SCNTransformConstraint', 'UIColor', 'SCNGeometrySource', 'AVCaptureAutoExposureBracketedStillImageSettings', 'UIPopoverBackgroundView', 'UIToolbar', 'NSNotificationCenter', 'AVAssetReaderOutputMetadataAdaptor', 'NSEntityMigrationPolicy', 'NSLocale', 'NSURLSession', 'SCNCamera', 'NSTimeZone', 'UIManagedDocument', 'AVMutableVideoCompositionLayerInstruction', 'AVAssetTrackGroup', 'NSInvocationOperation', 'ALAssetRepresentation', 'AVQueuePlayer', 'HMServiceGroup', 'UIPasteboard', 'PHContentEditingInput', 'NSLayoutManager', 'EKCalendarChooser', 'EKObject', 'CATiledLayer', 'GLKReflectionMapEffect', 'NSManagedObjectID', 'NSEnergyFormatter', 'SLRequest', 'HMCharacteristic', 'AVPlayerLayer', 'MTLRenderPassDescriptor', 'SKPayment', 'NSPointerArray', 'AVAudioMix', 'SCNLight', 'MCAdvertiserAssistant', 'MKMapSnapshotOptions', 'HKCategorySample', 'AVAudioEnvironmentReverbParameters', 'SCNMorpher', 'AVTimedMetadataGroup', 'CBMutableCharacteristic', 'NSFetchRequest', 'UIDevice', 'NSManagedObject', 'NKAssetDownload', 'AVOutputSettingsAssistant', 'SKPhysicsJointPin', 'UITabBar', 'UITextInputMode', 'NSFetchRequestExpression', 'HMActionSet', 'CTSubscriber', 'PHAssetChangeRequest', 'NSPersistentStoreRequest', 'UITabBarController', 'HKQuantitySample', 'AVPlayerItem', 'AVSynchronizedLayer', 'MKDirectionsRequest', 'NSMetadataItem', 'UIPresentationController', 'UINavigationItem', 'PHFetchResultChangeDetails', 'PHImageManager', 'AVCaptureManualExposureBracketedStillImageSettings', 'UIStoryboardPopoverSegue', 'SCNLookAtConstraint', 'UIGravityBehavior', 'UIWindow', 'CBMutableDescriptor', 'NEOnDemandRuleDisconnect', 'UIBezierPath', 'UINavigationController', 'ABPeoplePickerNavigationController', 'EKSource', 'AVAssetWriterInput', 'AVPlayerItemTrack', 'GLKEffectPropertyTexture', 'NSURLResponse', 'SKPaymentQueue', 'NSAssertionHandler', 'MKReverseGeocoder', 'GCControllerAxisInput', 'NSArray', 'NSOrthography', 'NSURLSessionUploadTask', 'NSCharacterSet', 'AVMutableVideoCompositionInstruction', 'AVAssetReaderOutput', 'EAGLContext', 'WKFrameInfo', 'CMPedometer', 'MyClass', 'CKModifyBadgeOperation', 'AVCaptureAudioFileOutput', 'SKEmitterNode', 'NSMachPort', 'AVVideoCompositionCoreAnimationTool', 'PHCollection', 'SCNPhysicsWorld', 'NSURLRequest', 'CMAccelerometerData', 'NSNetServiceBrowser', 'CLFloor', 'AVAsynchronousVideoCompositionRequest', 'SCNGeometry', 'SCNIKConstraint', 'CIKernel', 'CAGradientLayer', 'HKCharacteristicType', 'NSFormatter', 'SCNAction', 'CATransaction', 'CBUUID', 'UIStoryboard', 'MPMediaLibrary', 'UITapGestureRecognizer', 'MPMediaItemArtwork', 'NSURLSessionTask', 'AVAudioUnit', 'MCBrowserViewController', 'NSRelationshipDescription', 'HKSample', 'WKWebView', 'NSMutableAttributedString', 'NSPersistentStoreAsynchronousResult', 'MPNowPlayingInfoCenter', 'MKLocalSearch', 'EAAccessory', 'HKCorrelation', 'CATextLayer', 'NSNotificationQueue', 'UINib', 'GLKTextureLoader', 'HKObjectType', 'NSValue', 'NSMutableIndexSet', 'SKPhysicsContact', 'NSProgress', 'AVPlayerViewController', 'CAScrollLayer', 'GKSavedGame', 'NSTextCheckingResult', 'PHObjectPlaceholder', 'SKConstraint', 'EKEventEditViewController', 'NSEntityDescription', 'NSURLCredentialStorage', 'UIApplication', 'SKDownload', 'SCNNode', 'MKLocalSearchRequest', 'SKScene', 'UISearchDisplayController', 'NEOnDemandRule', 'MTLRenderPassStencilAttachmentDescriptor', 'CAReplicatorLayer', 'UIPrintPageRenderer', 'EKCalendarItem', 'NSUUID', 'EAAccessoryManager', 'NEOnDemandRuleIgnore', 'SKRegion', 'AVAssetResourceLoader', 'EAWiFiUnconfiguredAccessoryBrowser', 'NSUserActivity', 'CTCall', 'UIPrinterPickerController', 'CIVector', 'UINavigationBar', 'UIPanGestureRecognizer', 'MPMediaQuery', 'ABNewPersonViewController', 'CKRecordZoneID', 'HKAnchoredObjectQuery', 'CKFetchRecordZonesOperation', 'UIStoryboardSegue', 'ACAccountType', 'GKSession', 'SKVideoNode', 'PHChange', 'SKReceiptRefreshRequest', 'GCExtendedGamepadSnapshot', 'MPSeekCommandEvent', 'GCExtendedGamepad', 'CAValueFunction', 'SCNCylinder', 'NSNotification', 'NSBatchUpdateResult', 'PKPushCredentials', 'SCNPhysicsSliderJoint', 'AVCaptureDeviceFormat', 'AVPlayerItemErrorLog', 'NSMapTable', 'NSSet', 'CMMotionManager', 'GKVoiceChatService', 'UIPageControl', 'UILexicon', 'MTLArrayType', 'AVAudioUnitReverb', 'MKGeodesicPolyline', 'AVMutableComposition', 'NSLayoutConstraint', 'UIPrinter', 'NSOrderedSet', 'CBAttribute', 'PKPushPayload', 'NSIncrementalStoreNode', 'EKEventStore', 'MPRemoteCommandEvent', 'UISlider', 'UIBlurEffect', 'CKAsset', 'AVCaptureInput', 'AVAudioEngine', 'MTLVertexDescriptor', 'SKPhysicsBody', 'NSOperation', 'UIImageAsset', 'MKMapCamera', 'SKProductsResponse', 'GLKEffectPropertyMaterial', 'AVCaptureDevice', 'CTCallCenter', 'CABTMIDILocalPeripheralViewController', 'NEVPNManager', 'HKQuery', 'SCNPhysicsContact', 'CBMutableService', 'AVSampleBufferDisplayLayer', 'SCNSceneSource', 'SKLightNode', 'CKDiscoveredUserInfo', 'NSMutableArray', 'MTLDepthStencilDescriptor', 'MTLArgument', 'NSMassFormatter', 'CIRectangleFeature', 'PKPushRegistry', 'NEVPNConnection', 'MCNearbyServiceBrowser', 'NSOperationQueue', 'MKPolylineRenderer', 'UICollectionViewLayoutAttributes', 'NSValueTransformer', 'UICollectionViewFlowLayout', 'CIBarcodeFeature', 'MPChangePlaybackRateCommandEvent', 'NSEntityMapping', 'SKTexture', 'NSMergePolicy', 'UITextInputStringTokenizer', 'NSRecursiveLock', 'AVAsset', 'NSUndoManager', 'AVAudioUnitSampler', 'NSItemProvider', 'SKUniform', 'MPMediaPickerController', 'CKOperation', 'MTLRenderPipelineDescriptor', 'EAWiFiUnconfiguredAccessory', 'NSFileCoordinator', 'SKRequest', 'NSFileHandle', 'NSConditionLock', 'UISegmentedControl', 'NSManagedObjectModel', 'UITabBarItem', 'SCNCone', 'MPMediaItem', 'SCNMaterial', 'EKRecurrenceRule', 'UIEvent', 'UITouch', 'UIPrintInteractionController', 'CMDeviceMotion', 'NEVPNProtocol', 'NSCompoundPredicate', 'HKHealthStore', 'MKMultiPoint', 'HKSampleType', 'UIPrintFormatter', 'AVAudioUnitEQFilterParameters', 'SKView', 'NSConstantString', 'UIPopoverController', 'CKDatabase', 'AVMetadataFaceObject', 'UIAccelerometer', 'EKEventViewController', 'CMAltitudeData', 'MTLStencilDescriptor', 'UISwipeGestureRecognizer', 'NSPort', 'MKCircleRenderer', 'AVCompositionTrack', 'NSAsynchronousFetchRequest', 'NSUbiquitousKeyValueStore', 'NSMetadataQueryResultGroup', 'AVAssetResourceLoadingDataRequest', 'UITableViewHeaderFooterView', 'CKNotificationID', 'AVAudioSession', 'HKUnit', 'NSNull', 'NSPersistentStoreResult', 'MKCircleView', 'AVAudioChannelLayout', 'NEVPNProtocolIKEv2', 'WKProcessPool', 'UIAttachmentBehavior', 'CLBeacon', 'NSInputStream', 'NSURLCache', 'GKPlayer', 'NSMappingModel', 'NSHTTPCookie', 'AVMutableVideoComposition', 'PHFetchResult', 'NSAttributeDescription', 'AVPlayer', 'MKAnnotationView', 'UIFontDescriptor', 'NSTimer', 'CBDescriptor', 'MKOverlayView', 'AVAudioUnitTimePitch', 'NSSaveChangesRequest', 'UIReferenceLibraryViewController', 'SKPhysicsJointFixed', 'UILocalizedIndexedCollation', 'UIInterpolatingMotionEffect', 'UIDocumentPickerViewController', 'AVAssetWriter', 'NSBundle', 'SKStoreProductViewController', 'GLKViewController', 'NSMetadataQueryAttributeValueTuple', 'GKTurnBasedMatch', 'AVAudioFile', 'UIActivity', 'NSPipe', 'MKShape', 'NSMergeConflict', 'CIImage', 'HKObject', 'UIRotationGestureRecognizer', 'AVPlayerItemLegibleOutput', 'AVAssetImageGenerator', 'GCControllerButtonInput', 'CKMarkNotificationsReadOperation', 'CKSubscription', 'MPTimedMetadata', 'NKIssue', 'UIScreenMode', 'HMAccessoryBrowser', 'GKTurnBasedEventHandler', 'UIWebView', 'MKPolyline', 'JSVirtualMachine', 'AVAssetReader', 'NSAttributedString', 'GKMatchmakerViewController', 'NSCountedSet', 'UIButton', 'WKNavigationResponse', 'GKLocalPlayer', 'MPMovieErrorLog', 'AVSpeechUtterance', 'HKStatistics', 'UILocalNotification', 'HKBiologicalSexObject', 'AVURLAsset', 'CBPeripheral', 'NSDateComponentsFormatter', 'SKSpriteNode', 'UIAccessibilityElement', 'AVAssetWriterInputGroup', 'HMZone', 'AVAssetReaderAudioMixOutput', 'NSEnumerator', 'UIDocument', 'MKLocalSearchResponse', 'UISimpleTextPrintFormatter', 'PHPhotoLibrary', 'CBService', 'UIDocumentMenuViewController', 'MCSession', 'QLPreviewController', 'CAMediaTimingFunction', 'UITextPosition', 'ASIdentifierManager', 'AVAssetResourceLoadingRequest', 'SLComposeServiceViewController', 'UIPinchGestureRecognizer', 'PHObject', 'NSExtensionItem', 'HKSampleQuery', 'MTLRenderPipelineColorAttachmentDescriptorArray', 'MKRouteStep', 'SCNCapsule', 'NSMetadataQuery', 'AVAssetResourceLoadingContentInformationRequest', 'UITraitCollection', 'CTCarrier', 'NSFileSecurity', 'UIAcceleration', 'UIMotionEffect', 'MTLRenderPipelineReflection', 'CLHeading', 'CLVisit', 'MKDirectionsResponse', 'HMAccessory', 'MTLStructType', 'UITextView', 'CMMagnetometerData', 'UICollisionBehavior', 'UIProgressView', 'CKServerChangeToken', 'UISearchBar', 'MKPlacemark', 'AVCaptureConnection', 'NSPropertyMapping', 'ALAssetsFilter', 'SK3DNode', 'AVPlayerItemErrorLogEvent', 'NSJSONSerialization', 'AVAssetReaderVideoCompositionOutput', 'ABPersonViewController', 'CIDetector', 'GKTurnBasedMatchmakerViewController', 'MPMediaItemCollection', 'SCNSphere', 'NSCondition', 'NSURLCredential', 'MIDINetworkConnection', 'NSFileProviderExtension', 'NSDecimalNumberHandler', 'NSAtomicStoreCacheNode', 'NSAtomicStore', 'EKAlarm', 'CKNotificationInfo', 'AVAudioUnitEQ', 'UIPercentDrivenInteractiveTransition', 'MKPolygon', 'AVAssetTrackSegment', 'MTLVertexAttribute', 'NSExpressionDescription', 'HKStatisticsCollectionQuery', 'NSURLAuthenticationChallenge', 'NSDirectoryEnumerator', 'MKDistanceFormatter', 'UIAlertAction', 'NSPropertyListSerialization', 'GKPeerPickerController', 'UIUserNotificationSettings', 'UITableViewController', 'GKNotificationBanner', 'MKPointAnnotation', 'MTLRenderPassColorAttachmentDescriptorArray', 'NSCache', 'SKPhysicsJoint', 'NSXMLParser', 'UIViewController', 'MFMessageComposeViewController', 'AVAudioInputNode', 'NSDataDetector', 'CABTMIDICentralViewController', 'AVAudioUnitMIDIInstrument', 'AVCaptureVideoPreviewLayer', 'AVAssetWriterInputPassDescription', 'MPChangePlaybackRateCommand', 'NSURLComponents', 'CAMetalLayer', 'UISnapBehavior', 'AVMetadataMachineReadableCodeObject', 'CKDiscoverUserInfosOperation', 'NSTextAttachment', 'NSException', 'UIMenuItem', 'CMMotionActivityManager', 'SCNGeometryElement', 'NCWidgetController', 'CAEmitterLayer', 'MKUserLocation', 'UIImagePickerController', 'CIFeature', 'AVCaptureDeviceInput', 'ALAsset', 'NSURLSessionDownloadTask', 'SCNPhysicsHingeJoint', 'MPMoviePlayerViewController', 'NSMutableOrderedSet', 'SCNMaterialProperty', 'UIFont', 'AVCaptureVideoDataOutput', 'NSCachedURLResponse', 'ALAssetsLibrary', 'NSInvocation', 'UILongPressGestureRecognizer', 'NSTextStorage', 'WKWebViewConfiguration', 'CIFaceFeature', 'MKMapSnapshot', 'GLKEffectPropertyFog', 'AVComposition', 'CKDiscoverAllContactsOperation', 'AVAudioMixInputParameters', 'CAEmitterBehavior', 'PKPassLibrary', 'UIMutableUserNotificationCategory', 'NSLock', 'NEVPNProtocolIPSec', 'ADBannerView', 'UIDocumentPickerExtensionViewController', 'UIActivityIndicatorView', 'AVPlayerMediaSelectionCriteria', 'CALayer', 'UIAccessibilityCustomAction', 'UIBarButtonItem', 'AVAudioSessionRouteDescription', 'CLBeaconRegion', 'HKBloodTypeObject', 'MTLVertexBufferLayoutDescriptorArray', 'CABasicAnimation', 'AVVideoCompositionInstruction', 'AVMutableTimedMetadataGroup', 'EKRecurrenceEnd', 'NSTextContainer', 'TWTweetComposeViewController', 'UIScrollView', 'WKNavigationAction', 'AVPlayerItemMetadataOutput', 'EKRecurrenceDayOfWeek', 'NSNumberFormatter', 'MTLComputePipelineReflection', 'UIScreen', 'CLRegion', 'NSProcessInfo', 'GLKTextureInfo', 'SCNSkinner', 'AVCaptureMetadataOutput', 'SCNAnimationEvent', 'NSTextTab', 'JSManagedValue', 'NSDate', 'UITextChecker', 'WKBackForwardListItem', 'NSData', 'NSParagraphStyle', 'AVMutableMetadataItem', 'EKCalendar', 'NSMutableURLRequest', 'UIVideoEditorController', 'HMTimerTrigger', 'AVAudioUnitVarispeed', 'UIDynamicAnimator', 'AVCompositionTrackSegment', 'GCGamepadSnapshot', 'MPMediaEntity', 'GLKSkyboxEffect', 'UISwitch', 'EKStructuredLocation', 'UIGestureRecognizer', 'NSProxy', 'GLKBaseEffect', 'UIPushBehavior', 'GKScoreChallenge', 'NSCoder', 'MPMediaPlaylist', 'NSDateComponents', 'WKUserScript', 'EKEvent', 'NSDateFormatter', 'NSAsynchronousFetchResult', 'AVAssetWriterInputPixelBufferAdaptor', 'UIVisualEffect', 'UICollectionViewCell', 'UITextField', 'CLPlacemark', 'MPPlayableContentManager', 'AVCaptureOutput', 'HMCharacteristicWriteAction', 'CKModifySubscriptionsOperation', 'NSPropertyDescription', 'GCGamepad', 'UIMarkupTextPrintFormatter', 'SCNTube', 'NSPersistentStoreCoordinator', 'AVAudioEnvironmentNode', 'GKMatchmaker', 'CIContext', 'NSThread', 'SLComposeSheetConfigurationItem', 'SKPhysicsJointSliding', 'NSPredicate', 'GKVoiceChat', 'SKCropNode', 'AVCaptureAudioPreviewOutput', 'NSStringDrawingContext', 'GKGameCenterViewController', 'UIPrintPaper', 'SCNPhysicsBallSocketJoint', 'UICollectionViewLayoutInvalidationContext', 'GLKEffectPropertyTransform', 'AVAudioIONode', 'UIDatePicker', 'MKDirections', 'ALAssetsGroup', 'CKRecordZoneNotification', 'SCNScene', 'MPMovieAccessLogEvent', 'CKFetchSubscriptionsOperation', 'CAEmitterCell', 'AVAudioUnitTimeEffect', 'HMCharacteristicMetadata', 'MKPinAnnotationView', 'UIPickerView', 'UIImageView', 'UIUserNotificationCategory', 'SCNPhysicsVehicleWheel', 'HKCategoryType', 'MPMediaQuerySection', 'GKFriendRequestComposeViewController', 'NSError', 'MTLRenderPipelineColorAttachmentDescriptor', 'SCNPhysicsShape', 'UISearchController', 'SCNPhysicsBody', 'CTSubscriberInfo', 'AVPlayerItemAccessLog', 'MPMediaPropertyPredicate', 'CMLogItem', 'NSAutoreleasePool', 'NSSocketPort', 'AVAssetReaderTrackOutput', 'SKNode', 'UIMutableUserNotificationAction', 'SCNProgram', 'AVSpeechSynthesisVoice', 'CMAltimeter', 'AVCaptureAudioChannel', 'GKTurnBasedExchangeReply', 'AVVideoCompositionLayerInstruction', 'AVSpeechSynthesizer', 'GKChallengeEventHandler', 'AVCaptureFileOutput', 'UIControl', 'SCNPhysicsField', 'CKReference', 'LAContext', 'CKRecordID', 'ADInterstitialAd', 'AVAudioSessionDataSourceDescription', 'AVAudioBuffer', 'CIColorKernel', 'GCControllerDirectionPad', 'NSFileManager', 'AVMutableAudioMixInputParameters', 'UIScreenEdgePanGestureRecognizer', 'CAKeyframeAnimation', 'CKQueryNotification', 'PHAdjustmentData', 'EASession', 'AVAssetResourceRenewalRequest', 'UIInputView', 'NSFileWrapper', 'UIResponder', 'NSPointerFunctions', 'NSHTTPCookieStorage', 'AVMediaSelectionOption', 'NSRunLoop', 'NSFileAccessIntent', 'CAAnimationGroup', 'MKCircle', 'UIAlertController', 'NSMigrationManager', 'NSDateIntervalFormatter', 'UICollectionViewUpdateItem', 'CKDatabaseOperation', 'PHImageRequestOptions', 'SKReachConstraints', 'CKRecord', 'CAInterAppAudioSwitcherView', 'WKWindowFeatures', 'GKInvite', 'NSMutableData', 'PHAssetCollectionChangeRequest', 'NSMutableParagraphStyle', 'UIDynamicBehavior', 'GLKEffectProperty', 'CKFetchRecordChangesOperation', 'SKShapeNode', 'MPMovieErrorLogEvent', 'MKPolygonView', 'MPContentItem', 'HMAction', 'NSScanner', 'GKAchievementChallenge', 'AVAudioPlayer', 'CKContainer', 'AVVideoComposition', 'NKLibrary', 'NSPersistentStore', 'AVCaptureMovieFileOutput', 'HMRoom', 'GKChallenge', 'UITextRange', 'NSURLProtectionSpace', 'ACAccountStore', 'MPSkipIntervalCommand', 'NSComparisonPredicate', 'HMHome', 'PHVideoRequestOptions', 'NSOutputStream', 'MPSkipIntervalCommandEvent', 'PKAddPassesViewController', 'UITextSelectionRect', 'CTTelephonyNetworkInfo', 'AVTextStyleRule', 'NSFetchedPropertyDescription', 'UIPageViewController', 'CATransformLayer', 'UICollectionViewController', 'AVAudioNode', 'MCNearbyServiceAdvertiser', 'NSObject', 'PHAsset', 'GKLeaderboardViewController', 'CKQueryCursor', 'MPMusicPlayerController', 'MKOverlayPathRenderer', 'CMPedometerData', 'HMService', 'SKFieldNode', 'GKAchievement', 'WKUserContentController', 'AVAssetTrack', 'TWRequest', 'SKLabelNode', 'AVCaptureBracketedStillImageSettings', 'MIDINetworkHost', 'MPMediaPredicate', 'AVFrameRateRange', 'MTLTextureDescriptor', 'MTLVertexBufferLayoutDescriptor', 'MPFeedbackCommandEvent', 'UIUserNotificationAction', 'HKStatisticsQuery', 'SCNParticleSystem', 'NSIndexPath', 'AVVideoCompositionRenderContext', 'CADisplayLink', 'HKObserverQuery', 'UIPopoverPresentationController', 'CKQueryOperation', 'CAEAGLLayer', 'NSMutableString', 'NSMessagePort', 'NSURLQueryItem', 'MTLStructMember', 'AVAudioSessionChannelDescription', 'GLKView', 'UIActivityViewController', 'GKAchievementViewController', 'GKTurnBasedParticipant', 'NSURLProtocol', 'NSUserDefaults', 'NSCalendar', 'SKKeyframeSequence', 'AVMetadataItemFilter', 'CKModifyRecordZonesOperation', 'WKPreferences', 'NSMethodSignature', 'NSRegularExpression', 'EAGLSharegroup', 'AVPlayerItemVideoOutput', 'PHContentEditingInputRequestOptions', 'GKMatch', 'CIColor', 'UIDictationPhrase'])
-COCOA_PROTOCOLS = set(['SKStoreProductViewControllerDelegate', 'AVVideoCompositionInstruction', 'AVAudioSessionDelegate', 'GKMatchDelegate', 'NSFileManagerDelegate', 'UILayoutSupport', 'NSCopying', 'UIPrintInteractionControllerDelegate', 'QLPreviewControllerDataSource', 'SKProductsRequestDelegate', 'NSTextStorageDelegate', 'MCBrowserViewControllerDelegate', 'MTLComputeCommandEncoder', 'SCNSceneExportDelegate', 'UISearchResultsUpdating', 'MFMailComposeViewControllerDelegate', 'MTLBlitCommandEncoder', 'NSDecimalNumberBehaviors', 'PHContentEditingController', 'NSMutableCopying', 'UIActionSheetDelegate', 'UIViewControllerTransitioningDelegate', 'UIAlertViewDelegate', 'AVAudioPlayerDelegate', 'MKReverseGeocoderDelegate', 'NSCoding', 'UITextInputTokenizer', 'GKFriendRequestComposeViewControllerDelegate', 'UIActivityItemSource', 'NSCacheDelegate', 'UIAdaptivePresentationControllerDelegate', 'GKAchievementViewControllerDelegate', 'UIViewControllerTransitionCoordinator', 'EKEventEditViewDelegate', 'NSURLConnectionDelegate', 'UITableViewDelegate', 'GKPeerPickerControllerDelegate', 'UIGuidedAccessRestrictionDelegate', 'AVSpeechSynthesizerDelegate', 'AVAudio3DMixing', 'AVPlayerItemLegibleOutputPushDelegate', 'ADInterstitialAdDelegate', 'HMAccessoryBrowserDelegate', 'AVAssetResourceLoaderDelegate', 'UITabBarControllerDelegate', 'CKRecordValue', 'SKPaymentTransactionObserver', 'AVCaptureAudioDataOutputSampleBufferDelegate', 'UIInputViewAudioFeedback', 'GKChallengeListener', 'SKSceneDelegate', 'UIPickerViewDelegate', 'UIWebViewDelegate', 'UIApplicationDelegate', 'GKInviteEventListener', 'MPMediaPlayback', 'MyClassJavaScriptMethods', 'AVAsynchronousKeyValueLoading', 'QLPreviewItem', 'SCNBoundingVolume', 'NSPortDelegate', 'UIContentContainer', 'SCNNodeRendererDelegate', 'SKRequestDelegate', 'SKPhysicsContactDelegate', 'HMAccessoryDelegate', 'UIPageViewControllerDataSource', 'SCNSceneRendererDelegate', 'SCNPhysicsContactDelegate', 'MKMapViewDelegate', 'AVPlayerItemOutputPushDelegate', 'UICollectionViewDelegate', 'UIImagePickerControllerDelegate', 'MTLRenderCommandEncoder', 'UIToolbarDelegate', 'WKUIDelegate', 'SCNActionable', 'NSURLConnectionDataDelegate', 'MKOverlay', 'CBCentralManagerDelegate', 'JSExport', 'NSTextLayoutOrientationProvider', 'UIPickerViewDataSource', 'PKPushRegistryDelegate', 'UIViewControllerTransitionCoordinatorContext', 'NSLayoutManagerDelegate', 'MTLLibrary', 'NSFetchedResultsControllerDelegate', 'ABPeoplePickerNavigationControllerDelegate', 'MTLResource', 'NSDiscardableContent', 'UITextFieldDelegate', 'MTLBuffer', 'MTLSamplerState', 'GKGameCenterControllerDelegate', 'MPMediaPickerControllerDelegate', 'UISplitViewControllerDelegate', 'UIAppearance', 'UIPickerViewAccessibilityDelegate', 'UITraitEnvironment', 'UIScrollViewAccessibilityDelegate', 'ADBannerViewDelegate', 'MPPlayableContentDataSource', 'MTLComputePipelineState', 'NSURLSessionDelegate', 'MTLCommandBuffer', 'NSXMLParserDelegate', 'UIViewControllerRestoration', 'UISearchBarDelegate', 'UIBarPositioning', 'CBPeripheralDelegate', 'UISearchDisplayDelegate', 'CAAction', 'PKAddPassesViewControllerDelegate', 'MCNearbyServiceAdvertiserDelegate', 'MTLDepthStencilState', 'GKTurnBasedMatchmakerViewControllerDelegate', 'MPPlayableContentDelegate', 'AVCaptureVideoDataOutputSampleBufferDelegate', 'UIAppearanceContainer', 'UIStateRestoring', 'UITextDocumentProxy', 'MTLDrawable', 'NSURLSessionTaskDelegate', 'NSFilePresenter', 'AVAudioStereoMixing', 'UIViewControllerContextTransitioning', 'UITextInput', 'CBPeripheralManagerDelegate', 'UITextInputDelegate', 'NSFastEnumeration', 'NSURLAuthenticationChallengeSender', 'SCNProgramDelegate', 'AVVideoCompositing', 'SCNAnimatable', 'NSSecureCoding', 'MCAdvertiserAssistantDelegate', 'GKLocalPlayerListener', 'GLKNamedEffect', 'UIPopoverControllerDelegate', 'AVCaptureMetadataOutputObjectsDelegate', 'NSExtensionRequestHandling', 'UITextSelecting', 'UIPrinterPickerControllerDelegate', 'NCWidgetProviding', 'MTLCommandEncoder', 'NSURLProtocolClient', 'MFMessageComposeViewControllerDelegate', 'UIVideoEditorControllerDelegate', 'WKNavigationDelegate', 'GKSavedGameListener', 'UITableViewDataSource', 'MTLFunction', 'EKCalendarChooserDelegate', 'NSUserActivityDelegate', 'UICollisionBehaviorDelegate', 'NSStreamDelegate', 'MCNearbyServiceBrowserDelegate', 'HMHomeDelegate', 'UINavigationControllerDelegate', 'MCSessionDelegate', 'UIDocumentPickerDelegate', 'UIViewControllerInteractiveTransitioning', 'GKTurnBasedEventListener', 'SCNSceneRenderer', 'MTLTexture', 'GLKViewDelegate', 'EAAccessoryDelegate', 'WKScriptMessageHandler', 'PHPhotoLibraryChangeObserver', 'NSKeyedUnarchiverDelegate', 'AVPlayerItemMetadataOutputPushDelegate', 'NSMachPortDelegate', 'SCNShadable', 'UIPopoverBackgroundViewMethods', 'UIDocumentMenuDelegate', 'UIBarPositioningDelegate', 'ABPersonViewControllerDelegate', 'NSNetServiceBrowserDelegate', 'EKEventViewDelegate', 'UIScrollViewDelegate', 'NSURLConnectionDownloadDelegate', 'UIGestureRecognizerDelegate', 'UINavigationBarDelegate', 'AVAudioMixing', 'NSFetchedResultsSectionInfo', 'UIDocumentInteractionControllerDelegate', 'MTLParallelRenderCommandEncoder', 'QLPreviewControllerDelegate', 'UIAccessibilityReadingContent', 'ABUnknownPersonViewControllerDelegate', 'GLKViewControllerDelegate', 'UICollectionViewDelegateFlowLayout', 'UIPopoverPresentationControllerDelegate', 'UIDynamicAnimatorDelegate', 'NSTextAttachmentContainer', 'MKAnnotation', 'UIAccessibilityIdentification', 'UICoordinateSpace', 'ABNewPersonViewControllerDelegate', 'MTLDevice', 'CAMediaTiming', 'AVCaptureFileOutputRecordingDelegate', 'HMHomeManagerDelegate', 'UITextViewDelegate', 'UITabBarDelegate', 'GKLeaderboardViewControllerDelegate', 'UISearchControllerDelegate', 'EAWiFiUnconfiguredAccessoryBrowserDelegate', 'UITextInputTraits', 'MTLRenderPipelineState', 'GKVoiceChatClient', 'UIKeyInput', 'UICollectionViewDataSource', 'SCNTechniqueSupport', 'NSLocking', 'AVCaptureFileOutputDelegate', 'GKChallengeEventHandlerDelegate', 'UIObjectRestoration', 'CIFilterConstructor', 'AVPlayerItemOutputPullDelegate', 'EAGLDrawable', 'AVVideoCompositionValidationHandling', 'UIViewControllerAnimatedTransitioning', 'NSURLSessionDownloadDelegate', 'UIAccelerometerDelegate', 'UIPageViewControllerDelegate', 'MTLCommandQueue', 'UIDataSourceModelAssociation', 'AVAudioRecorderDelegate', 'GKSessionDelegate', 'NSKeyedArchiverDelegate', 'CAMetalDrawable', 'UIDynamicItem', 'CLLocationManagerDelegate', 'NSMetadataQueryDelegate', 'NSNetServiceDelegate', 'GKMatchmakerViewControllerDelegate', 'NSURLSessionDataDelegate'])
-COCOA_PRIMITIVES = set(['ROTAHeader', '__CFBundle', 'MortSubtable', 'AudioFilePacketTableInfo', 'CGPDFOperatorTable', 'KerxStateEntry', 'ExtendedTempoEvent', 'CTParagraphStyleSetting', 'OpaqueMIDIPort', '_GLKMatrix3', '_GLKMatrix2', '_GLKMatrix4', 'ExtendedControlEvent', 'CAFAudioDescription', 'OpaqueCMBlockBuffer', 'CGTextDrawingMode', 'EKErrorCode', 'GCAcceleration', 'AudioUnitParameterInfo', '__SCPreferences', '__CTFrame', '__CTLine', 'AudioFile_SMPTE_Time', 'gss_krb5_lucid_context_v1', 'OpaqueJSValue', 'TrakTableEntry', 'AudioFramePacketTranslation', 'CGImageSource', 'OpaqueJSPropertyNameAccumulator', 'JustPCGlyphRepeatAddAction', '__CFBinaryHeap', 'OpaqueMIDIThruConnection', 'opaqueCMBufferQueue', 'OpaqueMusicSequence', 'MortRearrangementSubtable', 'MixerDistanceParams', 'MorxSubtable', 'MIDIObjectPropertyChangeNotification', 'SFNTLookupSegment', 'CGImageMetadataErrors', 'CGPath', 'OpaqueMIDIEndpoint', 'AudioComponentPlugInInterface', 'gss_ctx_id_t_desc_struct', 'sfntFontFeatureSetting', 'OpaqueJSContextGroup', '__SCNetworkConnection', 'AudioUnitParameterValueTranslation', 'CGImageMetadataType', 'CGPattern', 'AudioFileTypeAndFormatID', 'CGContext', 'AUNodeInteraction', 'SFNTLookupTable', 'JustPCDecompositionAction', 'KerxControlPointHeader', 'AudioStreamPacketDescription', 'KernSubtableHeader', '__SecCertificate', 'AUMIDIOutputCallbackStruct', 'MIDIMetaEvent', 'AudioQueueChannelAssignment', 'AnchorPoint', 'JustTable', '__CFNetService', 'CF_BRIDGED_TYPE', 'gss_krb5_lucid_key', 'CGPDFDictionary', 'KerxSubtableHeader', 'CAF_UUID_ChunkHeader', 'gss_krb5_cfx_keydata', 'OpaqueJSClass', 'CGGradient', 'OpaqueMIDISetup', 'JustPostcompTable', '__CTParagraphStyle', 'AudioUnitParameterHistoryInfo', 'OpaqueJSContext', 'CGShading', 'MIDIThruConnectionParams', 'BslnFormat0Part', 'SFNTLookupSingle', '__CFHost', '__SecRandom', '__CTFontDescriptor', '_NSRange', 'sfntDirectory', 'AudioQueueLevelMeterState', 'CAFPositionPeak', 'PropLookupSegment', '__CVOpenGLESTextureCache', 'sfntInstance', '_GLKQuaternion', 'AnkrTable', '__SCNetworkProtocol', 'gss_buffer_desc_struct', 'CAFFileHeader', 'KerxOrderedListHeader', 'CGBlendMode', 'STXEntryOne', 'CAFRegion', 'SFNTLookupTrimmedArrayHeader', 'SCNMatrix4', 'KerxControlPointEntry', 'OpaqueMusicTrack', '_GLKVector4', 'gss_OID_set_desc_struct', 'OpaqueMusicPlayer', '_CFHTTPAuthentication', 'CGAffineTransform', 'CAFMarkerChunk', 'AUHostIdentifier', 'ROTAGlyphEntry', 'BslnTable', 'gss_krb5_lucid_context_version', '_GLKMatrixStack', 'CGImage', 'KernStateEntry', 'SFNTLookupSingleHeader', 'MortLigatureSubtable', 'CAFUMIDChunk', 'SMPTETime', 'CAFDataChunk', 'CGPDFStream', 'AudioFileRegionList', 'STEntryTwo', 'SFNTLookupBinarySearchHeader', 'OpbdTable', '__CTGlyphInfo', 'BslnFormat2Part', 'KerxIndexArrayHeader', 'TrakTable', 'KerxKerningPair', '__CFBitVector', 'KernVersion0SubtableHeader', 'OpaqueAudioComponentInstance', 'AudioChannelLayout', '__CFUUID', 'MIDISysexSendRequest', '__CFNumberFormatter', 'CGImageSourceStatus', 'AudioFileMarkerList', 'AUSamplerBankPresetData', 'CGDataProvider', 'AudioFormatInfo', '__SecIdentity', 'sfntCMapExtendedSubHeader', 'MIDIChannelMessage', 'KernOffsetTable', 'CGColorSpaceModel', 'MFMailComposeErrorCode', 'CGFunction', '__SecTrust', 'AVAudio3DAngularOrientation', 'CGFontPostScriptFormat', 'KernStateHeader', 'AudioUnitCocoaViewInfo', 'CGDataConsumer', 'OpaqueMIDIDevice', 'KernVersion0Header', 'AnchorPointTable', 'CGImageDestination', 'CAFInstrumentChunk', 'AudioUnitMeterClipping', 'MorxChain', '__CTFontCollection', 'STEntryOne', 'STXEntryTwo', 'ExtendedNoteOnEvent', 'CGColorRenderingIntent', 'KerxSimpleArrayHeader', 'MorxTable', '_GLKVector3', '_GLKVector2', 'MortTable', 'CGPDFBox', 'AudioUnitParameterValueFromString', '__CFSocket', 'ALCdevice_struct', 'MIDINoteMessage', 'sfntFeatureHeader', 'CGRect', '__SCNetworkInterface', '__CFTree', 'MusicEventUserData', 'TrakTableData', 'GCQuaternion', 'MortContextualSubtable', '__CTRun', 'AudioUnitFrequencyResponseBin', 'MortChain', 'MorxInsertionSubtable', 'CGImageMetadata', 'gss_auth_identity', 'AudioUnitMIDIControlMapping', 'CAFChunkHeader', 'CGImagePropertyOrientation', 'CGPDFScanner', 'OpaqueMusicEventIterator', 'sfntDescriptorHeader', 'AudioUnitNodeConnection', 'OpaqueMIDIDeviceList', 'ExtendedAudioFormatInfo', 'BslnFormat1Part', 'sfntFontDescriptor', 'KernSimpleArrayHeader', '__CFRunLoopObserver', 'CGPatternTiling', 'MIDINotification', 'MorxLigatureSubtable', 'MessageComposeResult', 'MIDIThruConnectionEndpoint', 'MusicDeviceStdNoteParams', 'opaqueCMSimpleQueue', 'ALCcontext_struct', 'OpaqueAudioQueue', 'PropLookupSingle', 'CGInterpolationQuality', 'CGColor', 'AudioOutputUnitStartAtTimeParams', 'gss_name_t_desc_struct', 'CGFunctionCallbacks', 'CAFPacketTableHeader', 'AudioChannelDescription', 'sfntFeatureName', 'MorxContextualSubtable', 'CVSMPTETime', 'AudioValueRange', 'CGTextEncoding', 'AudioStreamBasicDescription', 'AUNodeRenderCallback', 'AudioPanningInfo', 'KerxOrderedListEntry', '__CFAllocator', 'OpaqueJSPropertyNameArray', '__SCDynamicStore', 'OpaqueMIDIEntity', '__CTRubyAnnotation', 'SCNVector4', 'CFHostClientContext', 'CFNetServiceClientContext', 'AudioUnitPresetMAS_SettingData', 'opaqueCMBufferQueueTriggerToken', 'AudioUnitProperty', 'CAFRegionChunk', 'CGPDFString', '__GLsync', '__CFStringTokenizer', 'JustWidthDeltaEntry', 'sfntVariationAxis', '__CFNetDiagnostic', 'CAFOverviewSample', 'sfntCMapEncoding', 'CGVector', '__SCNetworkService', 'opaqueCMSampleBuffer', 'AUHostVersionIdentifier', 'AudioBalanceFade', 'sfntFontRunFeature', 'KerxCoordinateAction', 'sfntCMapSubHeader', 'CVPlanarPixelBufferInfo', 'AUNumVersion', 'AUSamplerInstrumentData', 'AUPreset', '__CTRunDelegate', 'OpaqueAudioQueueProcessingTap', 'KerxTableHeader', '_NSZone', 'OpaqueExtAudioFile', '__CFRunLoopSource', '__CVMetalTextureCache', 'KerxAnchorPointAction', 'OpaqueJSString', 'AudioQueueParameterEvent', '__CFHTTPMessage', 'OpaqueCMClock', 'ScheduledAudioFileRegion', 'STEntryZero', 'AVAudio3DPoint', 'gss_channel_bindings_struct', 'sfntVariationHeader', 'AUChannelInfo', 'UIOffset', 'GLKEffectPropertyPrv', 'KerxStateHeader', 'CGLineJoin', 'CGPDFDocument', '__CFBag', 'KernOrderedListHeader', '__SCNetworkSet', '__SecKey', 'MIDIObjectAddRemoveNotification', 'AudioUnitParameter', 'JustPCActionSubrecord', 'AudioComponentDescription', 'AudioUnitParameterValueName', 'AudioUnitParameterEvent', 'KerxControlPointAction', 'AudioTimeStamp', 'KernKerningPair', 'gss_buffer_set_desc_struct', 'MortFeatureEntry', 'FontVariation', 'CAFStringID', 'LcarCaretClassEntry', 'AudioUnitParameterStringFromValue', 'ACErrorCode', 'ALMXGlyphEntry', 'LtagTable', '__CTTypesetter', 'AuthorizationOpaqueRef', 'UIEdgeInsets', 'CGPathElement', 'CAFMarker', 'KernTableHeader', 'NoteParamsControlValue', 'SSLContext', 'gss_cred_id_t_desc_struct', 'AudioUnitParameterNameInfo', 'CGDataConsumerCallbacks', 'ALMXHeader', 'CGLineCap', 'MIDIControlTransform', 'CGPDFArray', '__SecPolicy', 'AudioConverterPrimeInfo', '__CTTextTab', '__CFNetServiceMonitor', 'AUInputSamplesInOutputCallbackStruct', '__CTFramesetter', 'CGPDFDataFormat', 'STHeader', 'CVPlanarPixelBufferInfo_YCbCrPlanar', 'MIDIValueMap', 'JustDirectionTable', '__SCBondStatus', 'SFNTLookupSegmentHeader', 'OpaqueCMMemoryPool', 'CGPathDrawingMode', 'CGFont', '__SCNetworkReachability', 'AudioClassDescription', 'CGPoint', 'AVAudio3DVectorOrientation', 'CAFStrings', '__CFNetServiceBrowser', 'opaqueMTAudioProcessingTap', 'sfntNameRecord', 'CGPDFPage', 'CGLayer', 'ComponentInstanceRecord', 'CAFInfoStrings', 'HostCallbackInfo', 'MusicDeviceNoteParams', 'OpaqueVTCompressionSession', 'KernIndexArrayHeader', 'CVPlanarPixelBufferInfo_YCbCrBiPlanar', 'MusicTrackLoopInfo', 'opaqueCMFormatDescription', 'STClassTable', 'sfntDirectoryEntry', 'OpaqueCMTimebase', 'CGDataProviderDirectCallbacks', 'MIDIPacketList', 'CAFOverviewChunk', 'MIDIPacket', 'ScheduledAudioSlice', 'CGDataProviderSequentialCallbacks', 'AudioBuffer', 'MorxRearrangementSubtable', 'CGPatternCallbacks', 'AUDistanceAttenuationData', 'MIDIIOErrorNotification', 'CGPDFContentStream', 'IUnknownVTbl', 'MIDITransform', 'MortInsertionSubtable', 'CABarBeatTime', 'AudioBufferList', '__CVBuffer', 'AURenderCallbackStruct', 'STXEntryZero', 'JustPCDuctilityAction', 'OpaqueAudioQueueTimeline', 'VTDecompressionOutputCallbackRecord', 'OpaqueMIDIClient', '__CFPlugInInstance', 'AudioQueueBuffer', '__CFFileDescriptor', 'AudioUnitConnection', '_GKTurnBasedExchangeStatus', 'LcarCaretTable', 'CVPlanarComponentInfo', 'JustWidthDeltaGroup', 'OpaqueAudioComponent', 'ParameterEvent', '__CVPixelBufferPool', '__CTFont', 'CGColorSpace', 'CGSize', 'AUDependentParameter', 'MIDIDriverInterface', 'gss_krb5_rfc1964_keydata', '__CFDateFormatter', 'LtagStringRange', 'OpaqueVTDecompressionSession', 'gss_iov_buffer_desc_struct', 'AUPresetEvent', 'PropTable', 'KernOrderedListEntry', 'CF_BRIDGED_MUTABLE_TYPE', 'gss_OID_desc_struct', 'AudioUnitPresetMAS_Settings', 'AudioFileMarker', 'JustPCConditionalAddAction', 'BslnFormat3Part', '__CFNotificationCenter', 'MortSwashSubtable', 'AUParameterMIDIMapping', 'SCNVector3', 'OpaqueAudioConverter', 'MIDIRawData', 'sfntNameHeader', '__CFRunLoop', 'MFMailComposeResult', 'CATransform3D', 'OpbdSideValues', 'CAF_SMPTE_Time', '__SecAccessControl', 'JustPCAction', 'OpaqueVTFrameSilo', 'OpaqueVTMultiPassStorage', 'CGPathElementType', 'AudioFormatListItem', 'AudioUnitExternalBuffer', 'AudioFileRegion', 'AudioValueTranslation', 'CGImageMetadataTag', 'CAFPeakChunk', 'AudioBytePacketTranslation', 'sfntCMapHeader', '__CFURLEnumerator', 'STXHeader', 'CGPDFObjectType', 'SFNTLookupArrayHeader'])
-
+COCOA_INTERFACES = set(['UITableViewCell', 'HKCorrelationQuery', 'NSURLSessionDataTask', 'PHFetchOptions', 'NSLinguisticTagger', 'NSStream', 'AVAudioUnitDelay', 'GCMotion', 'SKPhysicsWorld', 'NSString', 'CMAttitude', 'AVAudioEnvironmentDistanceAttenuationParameters', 'HKStatisticsCollection', 'SCNPlane', 'CBPeer', 'JSContext', 'SCNTransaction', 'SCNTorus', 'AVAudioUnitEffect', 'UICollectionReusableView', 'MTLSamplerDescriptor', 'AVAssetReaderSampleReferenceOutput', 'AVMutableCompositionTrack', 'GKLeaderboard', 'NSFetchedResultsController', 'SKRange', 'MKTileOverlayRenderer', 'MIDINetworkSession', 'UIVisualEffectView', 'CIWarpKernel', 'PKObject', 'MKRoute', 'MPVolumeView', 'UIPrintInfo', 'SCNText', 'ADClient', 'PKPayment', 'AVMutableAudioMix', 'GLKEffectPropertyLight', 'WKScriptMessage', 'AVMIDIPlayer', 'PHCollectionListChangeRequest', 'UICollectionViewLayout', 'NSMutableCharacterSet', 'SKPaymentTransaction', 'NEOnDemandRuleConnect', 'NSShadow', 'SCNView', 'NSURLSessionConfiguration', 'MTLVertexAttributeDescriptor', 'CBCharacteristic', 'HKQuantityType', 'CKLocationSortDescriptor', 'NEVPNIKEv2SecurityAssociationParameters', 'CMStepCounter', 'NSNetService', 'AVAssetWriterInputMetadataAdaptor', 'UICollectionView', 'UIViewPrintFormatter', 'SCNLevelOfDetail', 'CAShapeLayer', 'MCPeerID', 'MPRatingCommand', 'WKNavigation', 'NSDictionary', 'NSFileVersion', 'CMGyroData', 'AVAudioUnitDistortion', 'CKFetchRecordsOperation', 'SKPhysicsJointSpring', 'SCNHitTestResult', 'AVAudioTime', 'CIFilter', 'UIView', 'SCNConstraint', 'CAPropertyAnimation', 'MKMapItem', 'MPRemoteCommandCenter', 'PKPaymentSummaryItem', 'UICollectionViewFlowLayoutInvalidationContext', 'UIInputViewController', 'PKPass', 'SCNPhysicsBehavior', 'MTLRenderPassColorAttachmentDescriptor', 'MKPolygonRenderer', 'CKNotification', 'JSValue', 'PHCollectionList', 'CLGeocoder', 'NSByteCountFormatter', 'AVCaptureScreenInput', 'MPFeedbackCommand', 'CAAnimation', 'MKOverlayPathView', 'UIActionSheet', 'UIMotionEffectGroup', 'NSLengthFormatter', 'UIBarItem', 'SKProduct', 'AVAssetExportSession', 'NSKeyedUnarchiver', 'NSMutableSet', 'SCNPyramid', 'PHAssetCollection', 'MKMapView', 'HMHomeManager', 'CATransition', 'MTLCompileOptions', 'UIVibrancyEffect', 'CLCircularRegion', 'MKTileOverlay', 'SCNShape', 'ACAccountCredential', 'SKPhysicsJointLimit', 'MKMapSnapshotter', 'AVMediaSelectionGroup', 'NSIndexSet', 'CBPeripheralManager', 'CKRecordZone', 'AVAudioRecorder', 'NSURL', 'CBCentral', 'NSNumber', 'AVAudioOutputNode', 'MTLVertexAttributeDescriptorArray', 'MKETAResponse', 'SKTransition', 'SSReadingList', 'HKSourceQuery', 'UITableViewRowAction', 'UITableView', 'SCNParticlePropertyController', 'AVCaptureStillImageOutput', 'GCController', 'AVAudioPlayerNode', 'AVAudioSessionPortDescription', 'NSHTTPURLResponse', 'NEOnDemandRuleEvaluateConnection', 'SKEffectNode', 'HKQuantity', 'GCControllerElement', 'AVPlayerItemAccessLogEvent', 'SCNBox', 'NSExtensionContext', 'MKOverlayRenderer', 'SCNPhysicsVehicle', 'NSDecimalNumber', 'EKReminder', 'MKPolylineView', 'CKQuery', 'AVAudioMixerNode', 'GKAchievementDescription', 'EKParticipant', 'NSBlockOperation', 'UIActivityItemProvider', 'CLLocation', 'NSBatchUpdateRequest', 'PHContentEditingOutput', 'PHObjectChangeDetails', 'HKWorkoutType', 'MPMoviePlayerController', 'AVAudioFormat', 'HMTrigger', 'MTLRenderPassDepthAttachmentDescriptor', 'SCNRenderer', 'GKScore', 'UISplitViewController', 'HKSource', 'NSURLConnection', 'ABUnknownPersonViewController', 'SCNTechnique', 'UIMenuController', 'NSEvent', 'SKTextureAtlas', 'NSKeyedArchiver', 'GKLeaderboardSet', 'NSSimpleCString', 'AVAudioPCMBuffer', 'CBATTRequest', 'GKMatchRequest', 'AVMetadataObject', 'SKProductsRequest', 'UIAlertView', 'NSIncrementalStore', 'MFMailComposeViewController', 'SCNFloor', 'NSSortDescriptor', 'CKFetchNotificationChangesOperation', 'MPMovieAccessLog', 'NSManagedObjectContext', 'AVAudioUnitGenerator', 'WKBackForwardList', 'SKMutableTexture', 'AVCaptureAudioDataOutput', 'ACAccount', 'AVMetadataItem', 'MPRatingCommandEvent', 'AVCaptureDeviceInputSource', 'CLLocationManager', 'MPRemoteCommand', 'AVCaptureSession', 'UIStepper', 'UIRefreshControl', 'NEEvaluateConnectionRule', 'CKModifyRecordsOperation', 'UICollectionViewTransitionLayout', 'CBCentralManager', 'NSPurgeableData', 'PKShippingMethod', 'SLComposeViewController', 'NSHashTable', 'MKUserTrackingBarButtonItem', 'UILexiconEntry', 'CMMotionActivity', 'SKAction', 'SKShader', 'AVPlayerItemOutput', 'MTLRenderPassAttachmentDescriptor', 'UIDocumentInteractionController', 'UIDynamicItemBehavior', 'NSMutableDictionary', 'UILabel', 'AVCaptureInputPort', 'NSExpression', 'CAInterAppAudioTransportView', 'SKMutablePayment', 'UIImage', 'PHCachingImageManager', 'SCNTransformConstraint', 'HKCorrelationType', 'UIColor', 'SCNGeometrySource', 'AVCaptureAutoExposureBracketedStillImageSettings', 'UIPopoverBackgroundView', 'UIToolbar', 'NSNotificationCenter', 'UICollectionViewLayoutAttributes', 'AVAssetReaderOutputMetadataAdaptor', 'NSEntityMigrationPolicy', 'HMUser', 'NSLocale', 'NSURLSession', 'SCNCamera', 'NSTimeZone', 'UIManagedDocument', 'AVMutableVideoCompositionLayerInstruction', 'AVAssetTrackGroup', 'NSInvocationOperation', 'ALAssetRepresentation', 'AVQueuePlayer', 'HMServiceGroup', 'UIPasteboard', 'PHContentEditingInput', 'NSLayoutManager', 'EKCalendarChooser', 'EKObject', 'CATiledLayer', 'GLKReflectionMapEffect', 'NSManagedObjectID', 'NSEnergyFormatter', 'SLRequest', 'HMCharacteristic', 'AVPlayerLayer', 'MTLRenderPassDescriptor', 'SKPayment', 'NSPointerArray', 'AVAudioMix', 'SCNLight', 'MCAdvertiserAssistant', 'MKMapSnapshotOptions', 'HKCategorySample', 'AVAudioEnvironmentReverbParameters', 'SCNMorpher', 'AVTimedMetadataGroup', 'CBMutableCharacteristic', 'NSFetchRequest', 'UIDevice', 'NSManagedObject', 'NKAssetDownload', 'AVOutputSettingsAssistant', 'SKPhysicsJointPin', 'UITabBar', 'UITextInputMode', 'NSFetchRequestExpression', 'HMActionSet', 'CTSubscriber', 'PHAssetChangeRequest', 'NSPersistentStoreRequest', 'UITabBarController', 'HKQuantitySample', 'AVPlayerItem', 'AVSynchronizedLayer', 'MKDirectionsRequest', 'NSMetadataItem', 'UIPresentationController', 'UINavigationItem', 'PHFetchResultChangeDetails', 'PHImageManager', 'AVCaptureManualExposureBracketedStillImageSettings', 'UIStoryboardPopoverSegue', 'SCNLookAtConstraint', 'UIGravityBehavior', 'UIWindow', 'CBMutableDescriptor', 'NEOnDemandRuleDisconnect', 'UIBezierPath', 'UINavigationController', 'ABPeoplePickerNavigationController', 'EKSource', 'AVAssetWriterInput', 'AVPlayerItemTrack', 'GLKEffectPropertyTexture', 'NSHTTPCookie', 'NSURLResponse', 'SKPaymentQueue', 'NSAssertionHandler', 'MKReverseGeocoder', 'GCControllerAxisInput', 'NSArray', 'NSOrthography', 'NSURLSessionUploadTask', 'NSCharacterSet', 'AVMutableVideoCompositionInstruction', 'AVAssetReaderOutput', 'EAGLContext', 'WKFrameInfo', 'CMPedometer', 'MyClass', 'CKModifyBadgeOperation', 'AVCaptureAudioFileOutput', 'SKEmitterNode', 'NSMachPort', 'AVVideoCompositionCoreAnimationTool', 'PHCollection', 'SCNPhysicsWorld', 'NSURLRequest', 'CMAccelerometerData', 'NSNetServiceBrowser', 'CLFloor', 'AVAsynchronousVideoCompositionRequest', 'SCNGeometry', 'SCNIKConstraint', 'CIKernel', 'CAGradientLayer', 'HKCharacteristicType', 'NSFormatter', 'SCNAction', 'CATransaction', 'CBUUID', 'UIStoryboard', 'MPMediaLibrary', 'UITapGestureRecognizer', 'MPMediaItemArtwork', 'NSURLSessionTask', 'AVAudioUnit', 'MCBrowserViewController', 'UIFontDescriptor', 'NSRelationshipDescription', 'HKSample', 'WKWebView', 'NSMutableAttributedString', 'NSPersistentStoreAsynchronousResult', 'MPNowPlayingInfoCenter', 'MKLocalSearch', 'EAAccessory', 'HKCorrelation', 'CATextLayer', 'NSNotificationQueue', 'UINib', 'GLKTextureLoader', 'HKObjectType', 'NSValue', 'NSMutableIndexSet', 'SKPhysicsContact', 'NSProgress', 'AVPlayerViewController', 'CAScrollLayer', 'GKSavedGame', 'NSTextCheckingResult', 'PHObjectPlaceholder', 'SKConstraint', 'EKEventEditViewController', 'NSEntityDescription', 'NSURLCredentialStorage', 'UIApplication', 'SKDownload', 'SCNNode', 'MKLocalSearchRequest', 'SKScene', 'UISearchDisplayController', 'NEOnDemandRule', 'MTLRenderPassStencilAttachmentDescriptor', 'CAReplicatorLayer', 'UIPrintPageRenderer', 'EKCalendarItem', 'NSUUID', 'EAAccessoryManager', 'NEOnDemandRuleIgnore', 'SKRegion', 'AVAssetResourceLoader', 'EAWiFiUnconfiguredAccessoryBrowser', 'NSUserActivity', 'CTCall', 'UIPrinterPickerController', 'CIVector', 'UINavigationBar', 'UIPanGestureRecognizer', 'MPMediaQuery', 'ABNewPersonViewController', 'CKRecordZoneID', 'HKAnchoredObjectQuery', 'CKFetchRecordZonesOperation', 'UIStoryboardSegue', 'ACAccountType', 'GKSession', 'SKVideoNode', 'PHChange', 'SKReceiptRefreshRequest', 'GCExtendedGamepadSnapshot', 'MPSeekCommandEvent', 'GCExtendedGamepad', 'CAValueFunction', 'SCNCylinder', 'NSNotification', 'NSBatchUpdateResult', 'PKPushCredentials', 'SCNPhysicsSliderJoint', 'AVCaptureDeviceFormat', 'AVPlayerItemErrorLog', 'NSMapTable', 'NSSet', 'CMMotionManager', 'GKVoiceChatService', 'UIPageControl', 'UILexicon', 'MTLArrayType', 'AVAudioUnitReverb', 'MKGeodesicPolyline', 'AVMutableComposition', 'NSLayoutConstraint', 'UIPrinter', 'NSOrderedSet', 'CBAttribute', 'PKPushPayload', 'NSIncrementalStoreNode', 'EKEventStore', 'MPRemoteCommandEvent', 'UISlider', 'UIBlurEffect', 'CKAsset', 'AVCaptureInput', 'AVAudioEngine', 'MTLVertexDescriptor', 'SKPhysicsBody', 'NSOperation', 'PKPaymentPass', 'UIImageAsset', 'MKMapCamera', 'SKProductsResponse', 'GLKEffectPropertyMaterial', 'AVCaptureDevice', 'CTCallCenter', 'CABTMIDILocalPeripheralViewController', 'NEVPNManager', 'HKQuery', 'SCNPhysicsContact', 'CBMutableService', 'AVSampleBufferDisplayLayer', 'SCNSceneSource', 'SKLightNode', 'CKDiscoveredUserInfo', 'NSMutableArray', 'MTLDepthStencilDescriptor', 'MTLArgument', 'NSMassFormatter', 'CIRectangleFeature', 'PKPushRegistry', 'NEVPNConnection', 'MCNearbyServiceBrowser', 'NSOperationQueue', 'MKPolylineRenderer', 'HKWorkout', 'NSValueTransformer', 'UICollectionViewFlowLayout', 'MPChangePlaybackRateCommandEvent', 'NSEntityMapping', 'SKTexture', 'NSMergePolicy', 'UITextInputStringTokenizer', 'NSRecursiveLock', 'AVAsset', 'NSUndoManager', 'AVAudioUnitSampler', 'NSItemProvider', 'SKUniform', 'MPMediaPickerController', 'CKOperation', 'MTLRenderPipelineDescriptor', 'EAWiFiUnconfiguredAccessory', 'NSFileCoordinator', 'SKRequest', 'NSFileHandle', 'NSConditionLock', 'UISegmentedControl', 'NSManagedObjectModel', 'UITabBarItem', 'SCNCone', 'MPMediaItem', 'SCNMaterial', 'EKRecurrenceRule', 'UIEvent', 'UITouch', 'UIPrintInteractionController', 'CMDeviceMotion', 'NEVPNProtocol', 'NSCompoundPredicate', 'HKHealthStore', 'MKMultiPoint', 'HKSampleType', 'UIPrintFormatter', 'AVAudioUnitEQFilterParameters', 'SKView', 'NSConstantString', 'UIPopoverController', 'CKDatabase', 'AVMetadataFaceObject', 'UIAccelerometer', 'EKEventViewController', 'CMAltitudeData', 'MTLStencilDescriptor', 'UISwipeGestureRecognizer', 'NSPort', 'MKCircleRenderer', 'AVCompositionTrack', 'NSAsynchronousFetchRequest', 'NSUbiquitousKeyValueStore', 'NSMetadataQueryResultGroup', 'AVAssetResourceLoadingDataRequest', 'UITableViewHeaderFooterView', 'CKNotificationID', 'AVAudioSession', 'HKUnit', 'NSNull', 'NSPersistentStoreResult', 'MKCircleView', 'AVAudioChannelLayout', 'NEVPNProtocolIKEv2', 'WKProcessPool', 'UIAttachmentBehavior', 'CLBeacon', 'NSInputStream', 'NSURLCache', 'GKPlayer', 'NSMappingModel', 'CIQRCodeFeature', 'AVMutableVideoComposition', 'PHFetchResult', 'NSAttributeDescription', 'AVPlayer', 'MKAnnotationView', 'PKPaymentRequest', 'NSTimer', 'CBDescriptor', 'MKOverlayView', 'AVAudioUnitTimePitch', 'NSSaveChangesRequest', 'UIReferenceLibraryViewController', 'SKPhysicsJointFixed', 'UILocalizedIndexedCollation', 'UIInterpolatingMotionEffect', 'UIDocumentPickerViewController', 'AVAssetWriter', 'NSBundle', 'SKStoreProductViewController', 'GLKViewController', 'NSMetadataQueryAttributeValueTuple', 'GKTurnBasedMatch', 'AVAudioFile', 'UIActivity', 'NSPipe', 'MKShape', 'NSMergeConflict', 'CIImage', 'HKObject', 'UIRotationGestureRecognizer', 'AVPlayerItemLegibleOutput', 'AVAssetImageGenerator', 'GCControllerButtonInput', 'CKMarkNotificationsReadOperation', 'CKSubscription', 'MPTimedMetadata', 'NKIssue', 'UIScreenMode', 'HMAccessoryBrowser', 'GKTurnBasedEventHandler', 'UIWebView', 'MKPolyline', 'JSVirtualMachine', 'AVAssetReader', 'NSAttributedString', 'GKMatchmakerViewController', 'NSCountedSet', 'UIButton', 'WKNavigationResponse', 'GKLocalPlayer', 'MPMovieErrorLog', 'AVSpeechUtterance', 'HKStatistics', 'UILocalNotification', 'HKBiologicalSexObject', 'AVURLAsset', 'CBPeripheral', 'NSDateComponentsFormatter', 'SKSpriteNode', 'UIAccessibilityElement', 'AVAssetWriterInputGroup', 'HMZone', 'AVAssetReaderAudioMixOutput', 'NSEnumerator', 'UIDocument', 'MKLocalSearchResponse', 'UISimpleTextPrintFormatter', 'PHPhotoLibrary', 'CBService', 'UIDocumentMenuViewController', 'MCSession', 'QLPreviewController', 'CAMediaTimingFunction', 'UITextPosition', 'ASIdentifierManager', 'AVAssetResourceLoadingRequest', 'SLComposeServiceViewController', 'UIPinchGestureRecognizer', 'PHObject', 'NSExtensionItem', 'HKSampleQuery', 'MTLRenderPipelineColorAttachmentDescriptorArray', 'MKRouteStep', 'SCNCapsule', 'NSMetadataQuery', 'AVAssetResourceLoadingContentInformationRequest', 'UITraitCollection', 'CTCarrier', 'NSFileSecurity', 'UIAcceleration', 'UIMotionEffect', 'MTLRenderPipelineReflection', 'CLHeading', 'CLVisit', 'MKDirectionsResponse', 'HMAccessory', 'MTLStructType', 'UITextView', 'CMMagnetometerData', 'UICollisionBehavior', 'UIProgressView', 'CKServerChangeToken', 'UISearchBar', 'MKPlacemark', 'AVCaptureConnection', 'NSPropertyMapping', 'ALAssetsFilter', 'SK3DNode', 'AVPlayerItemErrorLogEvent', 'NSJSONSerialization', 'AVAssetReaderVideoCompositionOutput', 'ABPersonViewController', 'CIDetector', 'GKTurnBasedMatchmakerViewController', 'MPMediaItemCollection', 'SCNSphere', 'NSCondition', 'NSURLCredential', 'MIDINetworkConnection', 'NSFileProviderExtension', 'NSDecimalNumberHandler', 'NSAtomicStoreCacheNode', 'NSAtomicStore', 'EKAlarm', 'CKNotificationInfo', 'AVAudioUnitEQ', 'UIPercentDrivenInteractiveTransition', 'MKPolygon', 'AVAssetTrackSegment', 'MTLVertexAttribute', 'NSExpressionDescription', 'HKStatisticsCollectionQuery', 'NSURLAuthenticationChallenge', 'NSDirectoryEnumerator', 'MKDistanceFormatter', 'UIAlertAction', 'NSPropertyListSerialization', 'GKPeerPickerController', 'UIUserNotificationSettings', 'UITableViewController', 'GKNotificationBanner', 'MKPointAnnotation', 'MTLRenderPassColorAttachmentDescriptorArray', 'NSCache', 'SKPhysicsJoint', 'NSXMLParser', 'UIViewController', 'PKPaymentToken', 'MFMessageComposeViewController', 'AVAudioInputNode', 'NSDataDetector', 'CABTMIDICentralViewController', 'AVAudioUnitMIDIInstrument', 'AVCaptureVideoPreviewLayer', 'AVAssetWriterInputPassDescription', 'MPChangePlaybackRateCommand', 'NSURLComponents', 'CAMetalLayer', 'UISnapBehavior', 'AVMetadataMachineReadableCodeObject', 'CKDiscoverUserInfosOperation', 'NSTextAttachment', 'NSException', 'UIMenuItem', 'CMMotionActivityManager', 'SCNGeometryElement', 'NCWidgetController', 'CAEmitterLayer', 'MKUserLocation', 'UIImagePickerController', 'CIFeature', 'AVCaptureDeviceInput', 'ALAsset', 'NSURLSessionDownloadTask', 'SCNPhysicsHingeJoint', 'MPMoviePlayerViewController', 'NSMutableOrderedSet', 'SCNMaterialProperty', 'UIFont', 'AVCaptureVideoDataOutput', 'NSCachedURLResponse', 'ALAssetsLibrary', 'NSInvocation', 'UILongPressGestureRecognizer', 'NSTextStorage', 'WKWebViewConfiguration', 'CIFaceFeature', 'MKMapSnapshot', 'GLKEffectPropertyFog', 'AVComposition', 'CKDiscoverAllContactsOperation', 'AVAudioMixInputParameters', 'CAEmitterBehavior', 'PKPassLibrary', 'UIMutableUserNotificationCategory', 'NSLock', 'NEVPNProtocolIPSec', 'ADBannerView', 'UIDocumentPickerExtensionViewController', 'UIActivityIndicatorView', 'AVPlayerMediaSelectionCriteria', 'CALayer', 'UIAccessibilityCustomAction', 'UIBarButtonItem', 'AVAudioSessionRouteDescription', 'CLBeaconRegion', 'HKBloodTypeObject', 'MTLVertexBufferLayoutDescriptorArray', 'CABasicAnimation', 'AVVideoCompositionInstruction', 'AVMutableTimedMetadataGroup', 'EKRecurrenceEnd', 'NSTextContainer', 'TWTweetComposeViewController', 'PKPaymentAuthorizationViewController', 'UIScrollView', 'WKNavigationAction', 'AVPlayerItemMetadataOutput', 'EKRecurrenceDayOfWeek', 'NSNumberFormatter', 'MTLComputePipelineReflection', 'UIScreen', 'CLRegion', 'NSProcessInfo', 'GLKTextureInfo', 'SCNSkinner', 'AVCaptureMetadataOutput', 'SCNAnimationEvent', 'NSTextTab', 'JSManagedValue', 'NSDate', 'UITextChecker', 'WKBackForwardListItem', 'NSData', 'NSParagraphStyle', 'AVMutableMetadataItem', 'EKCalendar', 'HKWorkoutEvent', 'NSMutableURLRequest', 'UIVideoEditorController', 'HMTimerTrigger', 'AVAudioUnitVarispeed', 'UIDynamicAnimator', 'AVCompositionTrackSegment', 'GCGamepadSnapshot', 'MPMediaEntity', 'GLKSkyboxEffect', 'UISwitch', 'EKStructuredLocation', 'UIGestureRecognizer', 'NSProxy', 'GLKBaseEffect', 'UIPushBehavior', 'GKScoreChallenge', 'NSCoder', 'MPMediaPlaylist', 'NSDateComponents', 'WKUserScript', 'EKEvent', 'NSDateFormatter', 'NSAsynchronousFetchResult', 'AVAssetWriterInputPixelBufferAdaptor', 'UIVisualEffect', 'UICollectionViewCell', 'UITextField', 'CLPlacemark', 'MPPlayableContentManager', 'AVCaptureOutput', 'HMCharacteristicWriteAction', 'CKModifySubscriptionsOperation', 'NSPropertyDescription', 'GCGamepad', 'UIMarkupTextPrintFormatter', 'SCNTube', 'NSPersistentStoreCoordinator', 'AVAudioEnvironmentNode', 'GKMatchmaker', 'CIContext', 'NSThread', 'SLComposeSheetConfigurationItem', 'SKPhysicsJointSliding', 'NSPredicate', 'GKVoiceChat', 'SKCropNode', 'AVCaptureAudioPreviewOutput', 'NSStringDrawingContext', 'GKGameCenterViewController', 'UIPrintPaper', 'SCNPhysicsBallSocketJoint', 'UICollectionViewLayoutInvalidationContext', 'GLKEffectPropertyTransform', 'AVAudioIONode', 'UIDatePicker', 'MKDirections', 'ALAssetsGroup', 'CKRecordZoneNotification', 'SCNScene', 'MPMovieAccessLogEvent', 'CKFetchSubscriptionsOperation', 'CAEmitterCell', 'AVAudioUnitTimeEffect', 'HMCharacteristicMetadata', 'MKPinAnnotationView', 'UIPickerView', 'UIImageView', 'UIUserNotificationCategory', 'SCNPhysicsVehicleWheel', 'HKCategoryType', 'MPMediaQuerySection', 'GKFriendRequestComposeViewController', 'NSError', 'MTLRenderPipelineColorAttachmentDescriptor', 'SCNPhysicsShape', 'UISearchController', 'SCNPhysicsBody', 'CTSubscriberInfo', 'AVPlayerItemAccessLog', 'MPMediaPropertyPredicate', 'CMLogItem', 'NSAutoreleasePool', 'NSSocketPort', 'AVAssetReaderTrackOutput', 'SKNode', 'UIMutableUserNotificationAction', 'SCNProgram', 'AVSpeechSynthesisVoice', 'CMAltimeter', 'AVCaptureAudioChannel', 'GKTurnBasedExchangeReply', 'AVVideoCompositionLayerInstruction', 'AVSpeechSynthesizer', 'GKChallengeEventHandler', 'AVCaptureFileOutput', 'UIControl', 'SCNPhysicsField', 'CKReference', 'LAContext', 'CKRecordID', 'ADInterstitialAd', 'AVAudioSessionDataSourceDescription', 'AVAudioBuffer', 'CIColorKernel', 'GCControllerDirectionPad', 'NSFileManager', 'AVMutableAudioMixInputParameters', 'UIScreenEdgePanGestureRecognizer', 'CAKeyframeAnimation', 'CKQueryNotification', 'PHAdjustmentData', 'EASession', 'AVAssetResourceRenewalRequest', 'UIInputView', 'NSFileWrapper', 'UIResponder', 'NSPointerFunctions', 'UIKeyCommand', 'NSHTTPCookieStorage', 'AVMediaSelectionOption', 'NSRunLoop', 'NSFileAccessIntent', 'CAAnimationGroup', 'MKCircle', 'UIAlertController', 'NSMigrationManager', 'NSDateIntervalFormatter', 'UICollectionViewUpdateItem', 'CKDatabaseOperation', 'PHImageRequestOptions', 'SKReachConstraints', 'CKRecord', 'CAInterAppAudioSwitcherView', 'WKWindowFeatures', 'GKInvite', 'NSMutableData', 'PHAssetCollectionChangeRequest', 'NSMutableParagraphStyle', 'UIDynamicBehavior', 'GLKEffectProperty', 'CKFetchRecordChangesOperation', 'SKShapeNode', 'MPMovieErrorLogEvent', 'MKPolygonView', 'MPContentItem', 'HMAction', 'NSScanner', 'GKAchievementChallenge', 'AVAudioPlayer', 'CKContainer', 'AVVideoComposition', 'NKLibrary', 'NSPersistentStore', 'AVCaptureMovieFileOutput', 'HMRoom', 'GKChallenge', 'UITextRange', 'NSURLProtectionSpace', 'ACAccountStore', 'MPSkipIntervalCommand', 'NSComparisonPredicate', 'HMHome', 'PHVideoRequestOptions', 'NSOutputStream', 'MPSkipIntervalCommandEvent', 'PKAddPassesViewController', 'UITextSelectionRect', 'CTTelephonyNetworkInfo', 'AVTextStyleRule', 'NSFetchedPropertyDescription', 'UIPageViewController', 'CATransformLayer', 'UICollectionViewController', 'AVAudioNode', 'MCNearbyServiceAdvertiser', 'NSObject', 'PHAsset', 'GKLeaderboardViewController', 'CKQueryCursor', 'MPMusicPlayerController', 'MKOverlayPathRenderer', 'CMPedometerData', 'HMService', 'SKFieldNode', 'GKAchievement', 'WKUserContentController', 'AVAssetTrack', 'TWRequest', 'SKLabelNode', 'AVCaptureBracketedStillImageSettings', 'MIDINetworkHost', 'MPMediaPredicate', 'AVFrameRateRange', 'MTLTextureDescriptor', 'MTLVertexBufferLayoutDescriptor', 'MPFeedbackCommandEvent', 'UIUserNotificationAction', 'HKStatisticsQuery', 'SCNParticleSystem', 'NSIndexPath', 'AVVideoCompositionRenderContext', 'CADisplayLink', 'HKObserverQuery', 'UIPopoverPresentationController', 'CKQueryOperation', 'CAEAGLLayer', 'NSMutableString', 'NSMessagePort', 'NSURLQueryItem', 'MTLStructMember', 'AVAudioSessionChannelDescription', 'GLKView', 'UIActivityViewController', 'GKAchievementViewController', 'GKTurnBasedParticipant', 'NSURLProtocol', 'NSUserDefaults', 'NSCalendar', 'SKKeyframeSequence', 'AVMetadataItemFilter', 'CKModifyRecordZonesOperation', 'WKPreferences', 'NSMethodSignature', 'NSRegularExpression', 'EAGLSharegroup', 'AVPlayerItemVideoOutput', 'PHContentEditingInputRequestOptions', 'GKMatch', 'CIColor', 'UIDictationPhrase'])
+COCOA_PROTOCOLS = set(['SKStoreProductViewControllerDelegate', 'AVVideoCompositionInstruction', 'AVAudioSessionDelegate', 'GKMatchDelegate', 'NSFileManagerDelegate', 'UILayoutSupport', 'NSCopying', 'UIPrintInteractionControllerDelegate', 'QLPreviewControllerDataSource', 'SKProductsRequestDelegate', 'NSTextStorageDelegate', 'MCBrowserViewControllerDelegate', 'MTLComputeCommandEncoder', 'SCNSceneExportDelegate', 'UISearchResultsUpdating', 'MFMailComposeViewControllerDelegate', 'MTLBlitCommandEncoder', 'NSDecimalNumberBehaviors', 'PHContentEditingController', 'NSMutableCopying', 'UIActionSheetDelegate', 'UIViewControllerTransitioningDelegate', 'UIAlertViewDelegate', 'AVAudioPlayerDelegate', 'MKReverseGeocoderDelegate', 'NSCoding', 'UITextInputTokenizer', 'GKFriendRequestComposeViewControllerDelegate', 'UIActivityItemSource', 'NSCacheDelegate', 'UIAdaptivePresentationControllerDelegate', 'GKAchievementViewControllerDelegate', 'UIViewControllerTransitionCoordinator', 'EKEventEditViewDelegate', 'NSURLConnectionDelegate', 'UITableViewDelegate', 'GKPeerPickerControllerDelegate', 'UIGuidedAccessRestrictionDelegate', 'AVSpeechSynthesizerDelegate', 'AVAudio3DMixing', 'AVPlayerItemLegibleOutputPushDelegate', 'ADInterstitialAdDelegate', 'HMAccessoryBrowserDelegate', 'AVAssetResourceLoaderDelegate', 'UITabBarControllerDelegate', 'CKRecordValue', 'SKPaymentTransactionObserver', 'AVCaptureAudioDataOutputSampleBufferDelegate', 'UIInputViewAudioFeedback', 'GKChallengeListener', 'SKSceneDelegate', 'UIPickerViewDelegate', 'UIWebViewDelegate', 'UIApplicationDelegate', 'GKInviteEventListener', 'MPMediaPlayback', 'MyClassJavaScriptMethods', 'AVAsynchronousKeyValueLoading', 'QLPreviewItem', 'SCNBoundingVolume', 'NSPortDelegate', 'UIContentContainer', 'SCNNodeRendererDelegate', 'SKRequestDelegate', 'SKPhysicsContactDelegate', 'HMAccessoryDelegate', 'UIPageViewControllerDataSource', 'SCNSceneRendererDelegate', 'SCNPhysicsContactDelegate', 'MKMapViewDelegate', 'AVPlayerItemOutputPushDelegate', 'UICollectionViewDelegate', 'UIImagePickerControllerDelegate', 'MTLRenderCommandEncoder', 'PKPaymentAuthorizationViewControllerDelegate', 'UIToolbarDelegate', 'WKUIDelegate', 'SCNActionable', 'NSURLConnectionDataDelegate', 'MKOverlay', 'CBCentralManagerDelegate', 'JSExport', 'NSTextLayoutOrientationProvider', 'UIPickerViewDataSource', 'PKPushRegistryDelegate', 'UIViewControllerTransitionCoordinatorContext', 'NSLayoutManagerDelegate', 'MTLLibrary', 'NSFetchedResultsControllerDelegate', 'ABPeoplePickerNavigationControllerDelegate', 'MTLResource', 'NSDiscardableContent', 'UITextFieldDelegate', 'MTLBuffer', 'MTLSamplerState', 'GKGameCenterControllerDelegate', 'MPMediaPickerControllerDelegate', 'UISplitViewControllerDelegate', 'UIAppearance', 'UIPickerViewAccessibilityDelegate', 'UITraitEnvironment', 'UIScrollViewAccessibilityDelegate', 'ADBannerViewDelegate', 'MPPlayableContentDataSource', 'MTLComputePipelineState', 'NSURLSessionDelegate', 'MTLCommandBuffer', 'NSXMLParserDelegate', 'UIViewControllerRestoration', 'UISearchBarDelegate', 'UIBarPositioning', 'CBPeripheralDelegate', 'UISearchDisplayDelegate', 'CAAction', 'PKAddPassesViewControllerDelegate', 'MCNearbyServiceAdvertiserDelegate', 'MTLDepthStencilState', 'GKTurnBasedMatchmakerViewControllerDelegate', 'MPPlayableContentDelegate', 'AVCaptureVideoDataOutputSampleBufferDelegate', 'UIAppearanceContainer', 'UIStateRestoring', 'UITextDocumentProxy', 'MTLDrawable', 'NSURLSessionTaskDelegate', 'NSFilePresenter', 'AVAudioStereoMixing', 'UIViewControllerContextTransitioning', 'UITextInput', 'CBPeripheralManagerDelegate', 'UITextInputDelegate', 'NSFastEnumeration', 'NSURLAuthenticationChallengeSender', 'SCNProgramDelegate', 'AVVideoCompositing', 'SCNAnimatable', 'NSSecureCoding', 'MCAdvertiserAssistantDelegate', 'GKLocalPlayerListener', 'GLKNamedEffect', 'UIPopoverControllerDelegate', 'AVCaptureMetadataOutputObjectsDelegate', 'NSExtensionRequestHandling', 'UITextSelecting', 'UIPrinterPickerControllerDelegate', 'NCWidgetProviding', 'MTLCommandEncoder', 'NSURLProtocolClient', 'MFMessageComposeViewControllerDelegate', 'UIVideoEditorControllerDelegate', 'WKNavigationDelegate', 'GKSavedGameListener', 'UITableViewDataSource', 'MTLFunction', 'EKCalendarChooserDelegate', 'NSUserActivityDelegate', 'UICollisionBehaviorDelegate', 'NSStreamDelegate', 'MCNearbyServiceBrowserDelegate', 'HMHomeDelegate', 'UINavigationControllerDelegate', 'MCSessionDelegate', 'UIDocumentPickerDelegate', 'UIViewControllerInteractiveTransitioning', 'GKTurnBasedEventListener', 'SCNSceneRenderer', 'MTLTexture', 'GLKViewDelegate', 'EAAccessoryDelegate', 'WKScriptMessageHandler', 'PHPhotoLibraryChangeObserver', 'NSKeyedUnarchiverDelegate', 'AVPlayerItemMetadataOutputPushDelegate', 'NSMachPortDelegate', 'SCNShadable', 'UIPopoverBackgroundViewMethods', 'UIDocumentMenuDelegate', 'UIBarPositioningDelegate', 'ABPersonViewControllerDelegate', 'NSNetServiceBrowserDelegate', 'EKEventViewDelegate', 'UIScrollViewDelegate', 'NSURLConnectionDownloadDelegate', 'UIGestureRecognizerDelegate', 'UINavigationBarDelegate', 'AVAudioMixing', 'NSFetchedResultsSectionInfo', 'UIDocumentInteractionControllerDelegate', 'MTLParallelRenderCommandEncoder', 'QLPreviewControllerDelegate', 'UIAccessibilityReadingContent', 'ABUnknownPersonViewControllerDelegate', 'GLKViewControllerDelegate', 'UICollectionViewDelegateFlowLayout', 'UIPopoverPresentationControllerDelegate', 'UIDynamicAnimatorDelegate', 'NSTextAttachmentContainer', 'MKAnnotation', 'UIAccessibilityIdentification', 'UICoordinateSpace', 'ABNewPersonViewControllerDelegate', 'MTLDevice', 'CAMediaTiming', 'AVCaptureFileOutputRecordingDelegate', 'HMHomeManagerDelegate', 'UITextViewDelegate', 'UITabBarDelegate', 'GKLeaderboardViewControllerDelegate', 'UISearchControllerDelegate', 'EAWiFiUnconfiguredAccessoryBrowserDelegate', 'UITextInputTraits', 'MTLRenderPipelineState', 'GKVoiceChatClient', 'UIKeyInput', 'UICollectionViewDataSource', 'SCNTechniqueSupport', 'NSLocking', 'AVCaptureFileOutputDelegate', 'GKChallengeEventHandlerDelegate', 'UIObjectRestoration', 'CIFilterConstructor', 'AVPlayerItemOutputPullDelegate', 'EAGLDrawable', 'AVVideoCompositionValidationHandling', 'UIViewControllerAnimatedTransitioning', 'NSURLSessionDownloadDelegate', 'UIAccelerometerDelegate', 'UIPageViewControllerDelegate', 'MTLCommandQueue', 'UIDataSourceModelAssociation', 'AVAudioRecorderDelegate', 'GKSessionDelegate', 'NSKeyedArchiverDelegate', 'CAMetalDrawable', 'UIDynamicItem', 'CLLocationManagerDelegate', 'NSMetadataQueryDelegate', 'NSNetServiceDelegate', 'GKMatchmakerViewControllerDelegate', 'NSURLSessionDataDelegate'])
+COCOA_PRIMITIVES = set(['ROTAHeader', '__CFBundle', 'MortSubtable', 'AudioFilePacketTableInfo', 'CGPDFOperatorTable', 'KerxStateEntry', 'ExtendedTempoEvent', 'CTParagraphStyleSetting', 'OpaqueMIDIPort', '_GLKMatrix3', '_GLKMatrix2', '_GLKMatrix4', 'ExtendedControlEvent', 'CAFAudioDescription', 'OpaqueCMBlockBuffer', 'CGTextDrawingMode', 'EKErrorCode', 'gss_buffer_desc_struct', 'AudioUnitParameterInfo', '__SCPreferences', '__CTFrame', '__CTLine', 'AudioFile_SMPTE_Time', 'gss_krb5_lucid_context_v1', 'OpaqueJSValue', 'TrakTableEntry', 'AudioFramePacketTranslation', 'CGImageSource', 'OpaqueJSPropertyNameAccumulator', 'JustPCGlyphRepeatAddAction', '__CFBinaryHeap', 'OpaqueMIDIThruConnection', 'opaqueCMBufferQueue', 'OpaqueMusicSequence', 'MortRearrangementSubtable', 'MixerDistanceParams', 'MorxSubtable', 'MIDIObjectPropertyChangeNotification', 'SFNTLookupSegment', 'CGImageMetadataErrors', 'CGPath', 'OpaqueMIDIEndpoint', 'AudioComponentPlugInInterface', 'gss_ctx_id_t_desc_struct', 'sfntFontFeatureSetting', 'OpaqueJSContextGroup', '__SCNetworkConnection', 'AudioUnitParameterValueTranslation', 'CGImageMetadataType', 'CGPattern', 'AudioFileTypeAndFormatID', 'CGContext', 'AUNodeInteraction', 'SFNTLookupTable', 'JustPCDecompositionAction', 'KerxControlPointHeader', 'AudioStreamPacketDescription', 'KernSubtableHeader', '__SecCertificate', 'AUMIDIOutputCallbackStruct', 'MIDIMetaEvent', 'AudioQueueChannelAssignment', 'AnchorPoint', 'JustTable', '__CFNetService', 'CF_BRIDGED_TYPE', 'gss_krb5_lucid_key', 'CGPDFDictionary', 'KerxSubtableHeader', 'CAF_UUID_ChunkHeader', 'gss_krb5_cfx_keydata', 'OpaqueJSClass', 'CGGradient', 'OpaqueMIDISetup', 'JustPostcompTable', '__CTParagraphStyle', 'AudioUnitParameterHistoryInfo', 'OpaqueJSContext', 'CGShading', 'MIDIThruConnectionParams', 'BslnFormat0Part', 'SFNTLookupSingle', '__CFHost', '__SecRandom', '__CTFontDescriptor', '_NSRange', 'sfntDirectory', 'AudioQueueLevelMeterState', 'CAFPositionPeak', 'PropLookupSegment', '__CVOpenGLESTextureCache', 'sfntInstance', '_GLKQuaternion', 'AnkrTable', '__SCNetworkProtocol', 'CAFFileHeader', 'KerxOrderedListHeader', 'CGBlendMode', 'STXEntryOne', 'CAFRegion', 'SFNTLookupTrimmedArrayHeader', 'SCNMatrix4', 'KerxControlPointEntry', 'OpaqueMusicTrack', '_GLKVector4', 'gss_OID_set_desc_struct', 'OpaqueMusicPlayer', '_CFHTTPAuthentication', 'CGAffineTransform', 'CAFMarkerChunk', 'AUHostIdentifier', 'ROTAGlyphEntry', 'BslnTable', 'gss_krb5_lucid_context_version', '_GLKMatrixStack', 'CGImage', 'KernStateEntry', 'SFNTLookupSingleHeader', 'MortLigatureSubtable', 'CAFUMIDChunk', 'SMPTETime', 'CAFDataChunk', 'CGPDFStream', 'AudioFileRegionList', 'STEntryTwo', 'SFNTLookupBinarySearchHeader', 'OpbdTable', '__CTGlyphInfo', 'BslnFormat2Part', 'KerxIndexArrayHeader', 'TrakTable', 'KerxKerningPair', '__CFBitVector', 'KernVersion0SubtableHeader', 'OpaqueAudioComponentInstance', 'AudioChannelLayout', '__CFUUID', 'MIDISysexSendRequest', '__CFNumberFormatter', 'CGImageSourceStatus', 'AudioFileMarkerList', 'AUSamplerBankPresetData', 'CGDataProvider', 'AudioFormatInfo', '__SecIdentity', 'sfntCMapExtendedSubHeader', 'MIDIChannelMessage', 'KernOffsetTable', 'CGColorSpaceModel', 'MFMailComposeErrorCode', 'CGFunction', '__SecTrust', 'AVAudio3DAngularOrientation', 'CGFontPostScriptFormat', 'KernStateHeader', 'AudioUnitCocoaViewInfo', 'CGDataConsumer', 'OpaqueMIDIDevice', 'KernVersion0Header', 'AnchorPointTable', 'CGImageDestination', 'CAFInstrumentChunk', 'AudioUnitMeterClipping', 'MorxChain', '__CTFontCollection', 'STEntryOne', 'STXEntryTwo', 'ExtendedNoteOnEvent', 'CGColorRenderingIntent', 'KerxSimpleArrayHeader', 'MorxTable', '_GLKVector3', '_GLKVector2', 'MortTable', 'CGPDFBox', 'AudioUnitParameterValueFromString', '__CFSocket', 'ALCdevice_struct', 'MIDINoteMessage', 'sfntFeatureHeader', 'CGRect', '__SCNetworkInterface', '__CFTree', 'MusicEventUserData', 'TrakTableData', 'GCQuaternion', 'MortContextualSubtable', '__CTRun', 'AudioUnitFrequencyResponseBin', 'MortChain', 'MorxInsertionSubtable', 'CGImageMetadata', 'gss_auth_identity', 'AudioUnitMIDIControlMapping', 'CAFChunkHeader', 'CGImagePropertyOrientation', 'CGPDFScanner', 'OpaqueMusicEventIterator', 'sfntDescriptorHeader', 'AudioUnitNodeConnection', 'OpaqueMIDIDeviceList', 'ExtendedAudioFormatInfo', 'BslnFormat1Part', 'sfntFontDescriptor', 'KernSimpleArrayHeader', '__CFRunLoopObserver', 'CGPatternTiling', 'MIDINotification', 'MorxLigatureSubtable', 'MessageComposeResult', 'MIDIThruConnectionEndpoint', 'MusicDeviceStdNoteParams', 'opaqueCMSimpleQueue', 'ALCcontext_struct', 'OpaqueAudioQueue', 'PropLookupSingle', 'CGInterpolationQuality', 'CGColor', 'AudioOutputUnitStartAtTimeParams', 'gss_name_t_desc_struct', 'CGFunctionCallbacks', 'CAFPacketTableHeader', 'AudioChannelDescription', 'sfntFeatureName', 'MorxContextualSubtable', 'CVSMPTETime', 'AudioValueRange', 'CGTextEncoding', 'AudioStreamBasicDescription', 'AUNodeRenderCallback', 'AudioPanningInfo', 'KerxOrderedListEntry', '__CFAllocator', 'OpaqueJSPropertyNameArray', '__SCDynamicStore', 'OpaqueMIDIEntity', '__CTRubyAnnotation', 'SCNVector4', 'CFHostClientContext', 'CFNetServiceClientContext', 'AudioUnitPresetMAS_SettingData', 'opaqueCMBufferQueueTriggerToken', 'AudioUnitProperty', 'CAFRegionChunk', 'CGPDFString', '__GLsync', '__CFStringTokenizer', 'JustWidthDeltaEntry', 'sfntVariationAxis', '__CFNetDiagnostic', 'CAFOverviewSample', 'sfntCMapEncoding', 'CGVector', '__SCNetworkService', 'opaqueCMSampleBuffer', 'AUHostVersionIdentifier', 'AudioBalanceFade', 'sfntFontRunFeature', 'KerxCoordinateAction', 'sfntCMapSubHeader', 'CVPlanarPixelBufferInfo', 'AUNumVersion', 'AUSamplerInstrumentData', 'AUPreset', '__CTRunDelegate', 'OpaqueAudioQueueProcessingTap', 'KerxTableHeader', '_NSZone', 'OpaqueExtAudioFile', '__CFRunLoopSource', '__CVMetalTextureCache', 'KerxAnchorPointAction', 'OpaqueJSString', 'AudioQueueParameterEvent', '__CFHTTPMessage', 'OpaqueCMClock', 'ScheduledAudioFileRegion', 'STEntryZero', 'AVAudio3DPoint', 'gss_channel_bindings_struct', 'sfntVariationHeader', 'AUChannelInfo', 'UIOffset', 'GLKEffectPropertyPrv', 'KerxStateHeader', 'CGLineJoin', 'CGPDFDocument', '__CFBag', 'KernOrderedListHeader', '__SCNetworkSet', '__SecKey', 'MIDIObjectAddRemoveNotification', 'AudioUnitParameter', 'JustPCActionSubrecord', 'AudioComponentDescription', 'AudioUnitParameterValueName', 'AudioUnitParameterEvent', 'KerxControlPointAction', 'AudioTimeStamp', 'KernKerningPair', 'gss_buffer_set_desc_struct', 'MortFeatureEntry', 'FontVariation', 'CAFStringID', 'LcarCaretClassEntry', 'AudioUnitParameterStringFromValue', 'ACErrorCode', 'ALMXGlyphEntry', 'LtagTable', '__CTTypesetter', 'AuthorizationOpaqueRef', 'UIEdgeInsets', 'CGPathElement', 'CAFMarker', 'KernTableHeader', 'NoteParamsControlValue', 'SSLContext', 'gss_cred_id_t_desc_struct', 'AudioUnitParameterNameInfo', 'CGDataConsumerCallbacks', 'ALMXHeader', 'CGLineCap', 'MIDIControlTransform', 'CGPDFArray', '__SecPolicy', 'AudioConverterPrimeInfo', '__CTTextTab', '__CFNetServiceMonitor', 'AUInputSamplesInOutputCallbackStruct', '__CTFramesetter', 'CGPDFDataFormat', 'STHeader', 'CVPlanarPixelBufferInfo_YCbCrPlanar', 'MIDIValueMap', 'JustDirectionTable', '__SCBondStatus', 'SFNTLookupSegmentHeader', 'OpaqueCMMemoryPool', 'CGPathDrawingMode', 'CGFont', '__SCNetworkReachability', 'AudioClassDescription', 'CGPoint', 'AVAudio3DVectorOrientation', 'CAFStrings', '__CFNetServiceBrowser', 'opaqueMTAudioProcessingTap', 'sfntNameRecord', 'CGPDFPage', 'CGLayer', 'ComponentInstanceRecord', 'CAFInfoStrings', 'HostCallbackInfo', 'MusicDeviceNoteParams', 'OpaqueVTCompressionSession', 'KernIndexArrayHeader', 'CVPlanarPixelBufferInfo_YCbCrBiPlanar', 'MusicTrackLoopInfo', 'opaqueCMFormatDescription', 'STClassTable', 'sfntDirectoryEntry', 'OpaqueCMTimebase', 'CGDataProviderDirectCallbacks', 'MIDIPacketList', 'CAFOverviewChunk', 'MIDIPacket', 'ScheduledAudioSlice', 'CGDataProviderSequentialCallbacks', 'AudioBuffer', 'MorxRearrangementSubtable', 'CGPatternCallbacks', 'AUDistanceAttenuationData', 'MIDIIOErrorNotification', 'CGPDFContentStream', 'IUnknownVTbl', 'MIDITransform', 'MortInsertionSubtable', 'CABarBeatTime', 'AudioBufferList', '__CVBuffer', 'AURenderCallbackStruct', 'STXEntryZero', 'JustPCDuctilityAction', 'OpaqueAudioQueueTimeline', 'VTDecompressionOutputCallbackRecord', 'OpaqueMIDIClient', '__CFPlugInInstance', 'AudioQueueBuffer', '__CFFileDescriptor', 'AudioUnitConnection', '_GKTurnBasedExchangeStatus', 'LcarCaretTable', 'CVPlanarComponentInfo', 'JustWidthDeltaGroup', 'OpaqueAudioComponent', 'ParameterEvent', '__CVPixelBufferPool', '__CTFont', 'CGColorSpace', 'CGSize', 'AUDependentParameter', 'MIDIDriverInterface', 'gss_krb5_rfc1964_keydata', '__CFDateFormatter', 'LtagStringRange', 'OpaqueVTDecompressionSession', 'gss_iov_buffer_desc_struct', 'AUPresetEvent', 'PropTable', 'KernOrderedListEntry', 'CF_BRIDGED_MUTABLE_TYPE', 'gss_OID_desc_struct', 'AudioUnitPresetMAS_Settings', 'AudioFileMarker', 'JustPCConditionalAddAction', 'BslnFormat3Part', '__CFNotificationCenter', 'MortSwashSubtable', 'AUParameterMIDIMapping', 'SCNVector3', 'OpaqueAudioConverter', 'MIDIRawData', 'sfntNameHeader', '__CFRunLoop', 'MFMailComposeResult', 'CATransform3D', 'OpbdSideValues', 'CAF_SMPTE_Time', '__SecAccessControl', 'JustPCAction', 'OpaqueVTFrameSilo', 'OpaqueVTMultiPassStorage', 'CGPathElementType', 'AudioFormatListItem', 'AudioUnitExternalBuffer', 'AudioFileRegion', 'AudioValueTranslation', 'CGImageMetadataTag', 'CAFPeakChunk', 'AudioBytePacketTranslation', 'sfntCMapHeader', '__CFURLEnumerator', 'STXHeader', 'CGPDFObjectType', 'SFNTLookupArrayHeader'])
if __name__ == '__main__': # pragma: no cover
import os
import re
- FRAMEWORKS_PATH = '/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.0.sdk/System/Library/Frameworks/'
+ FRAMEWORKS_PATH = '/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.1.sdk/System/Library/Frameworks/'
frameworks = os.listdir(FRAMEWORKS_PATH)
all_interfaces = set()
diff --git a/pygments/lexers/_csound_builtins.py b/pygments/lexers/_csound_builtins.py
new file mode 100644
index 00000000..5f7a798a
--- /dev/null
+++ b/pygments/lexers/_csound_builtins.py
@@ -0,0 +1,1339 @@
+# -*- coding: utf-8 -*-
+
+# Opcodes in Csound 6.05 from
+# csound --list-opcodes
+# except
+# cggoto <http://www.csounds.com/manual/html/cggoto.html>
+# cigoto <http://www.csounds.com/manual/html/cigoto.html>
+# cingoto (undocumented)
+# ckgoto <http://www.csounds.com/manual/html/ckgoto.html>
+# cngoto <http://www.csounds.com/manual/html/cngoto.html>
+# endin <http://www.csounds.com/manual/html/endin.html
+# 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>
+# loop_le <http://www.csounds.com/manual/html/loop_le.html>
+# loop_lt <http://www.csounds.com/manual/html/loop_lt.html>
+# opcode <http://www.csounds.com/manual/html/opcode.html>
+# return <http://www.csounds.com/manual/html/return.html>
+# rigoto <http://www.csounds.com/manual/html/rigoto.html>
+# tigoto <http://www.csounds.com/manual/html/tigoto.html>
+# timout <http://www.csounds.com/manual/html/timout.html>
+# which are treated as keywords; the scoreline opcodes
+# scoreline <http://www.csounds.com/manual/html/scoreline.html>
+# scoreline_i <http://www.csounds.com/manual/html/scoreline_i.html>
+# which allow Csound Score highlighting; the pyrun opcodes
+# <http://www.csounds.com/manual/html/pyrun.html>
+# pylrun
+# pylruni
+# pylrunt
+# pyrun
+# pyruni
+# pyrunt
+# which allow Python highlighting; and the Lua opcodes
+# lua_exec <http://www.csounds.com/manual/html/lua_exec.html>
+# lua_opdef <http://www.csounds.com/manual/html/lua_opdef.html>
+# which allow Lua highlighting.
+OPCODES = set((
+ 'ATSadd',
+ 'ATSaddnz',
+ 'ATSbufread',
+ 'ATScross',
+ 'ATSinfo',
+ 'ATSinterpread',
+ 'ATSpartialtap',
+ 'ATSread',
+ 'ATSreadnz',
+ 'ATSsinnoi',
+ 'FLbox',
+ 'FLbutBank',
+ 'FLbutton',
+ 'FLcloseButton',
+ 'FLcolor',
+ 'FLcolor2',
+ 'FLcount',
+ 'FLexecButton',
+ 'FLgetsnap',
+ 'FLgroup',
+ 'FLgroupEnd',
+ 'FLgroup_end',
+ 'FLhide',
+ 'FLhvsBox',
+ 'FLhvsBoxSetValue',
+ 'FLjoy',
+ 'FLkeyIn',
+ 'FLknob',
+ 'FLlabel',
+ 'FLloadsnap',
+ 'FLmouse',
+ 'FLpack',
+ 'FLpackEnd',
+ 'FLpack_end',
+ 'FLpanel',
+ 'FLpanelEnd',
+ 'FLpanel_end',
+ 'FLprintk',
+ 'FLprintk2',
+ 'FLroller',
+ 'FLrun',
+ 'FLsavesnap',
+ 'FLscroll',
+ 'FLscrollEnd',
+ 'FLscroll_end',
+ 'FLsetAlign',
+ 'FLsetBox',
+ 'FLsetColor',
+ 'FLsetColor2',
+ 'FLsetFont',
+ 'FLsetPosition',
+ 'FLsetSize',
+ 'FLsetSnapGroup',
+ 'FLsetText',
+ 'FLsetTextColor',
+ 'FLsetTextSize',
+ 'FLsetTextType',
+ 'FLsetVal',
+ 'FLsetVal_i',
+ 'FLsetVali',
+ 'FLsetsnap',
+ 'FLshow',
+ 'FLslidBnk',
+ 'FLslidBnk2',
+ 'FLslidBnk2Set',
+ 'FLslidBnk2Setk',
+ 'FLslidBnkGetHandle',
+ 'FLslidBnkSet',
+ 'FLslidBnkSetk',
+ 'FLslider',
+ 'FLtabs',
+ 'FLtabsEnd',
+ 'FLtabs_end',
+ 'FLtext',
+ 'FLupdate',
+ 'FLvalue',
+ 'FLvkeybd',
+ 'FLvslidBnk',
+ 'FLvslidBnk2',
+ 'FLxyin',
+ 'MixerClear',
+ 'MixerGetLevel',
+ 'MixerReceive',
+ 'MixerSend',
+ 'MixerSetLevel',
+ 'MixerSetLevel_i',
+ 'OSCinit',
+ 'OSClisten',
+ 'OSCsend',
+ 'a',
+ 'abs',
+ 'active',
+ 'adsr',
+ 'adsyn',
+ 'adsynt',
+ 'adsynt2',
+ 'aftouch',
+ 'alpass',
+ 'alwayson',
+ 'ampdb',
+ 'ampdbfs',
+ 'ampmidi',
+ 'ampmidid',
+ 'areson',
+ 'aresonk',
+ 'array',
+ 'atone',
+ 'atonek',
+ 'atonex',
+ 'babo',
+ 'balance',
+ 'bamboo',
+ 'barmodel',
+ 'bbcutm',
+ 'bbcuts',
+ 'betarand',
+ 'bexprnd',
+ 'bformdec',
+ 'bformdec1',
+ 'bformenc',
+ 'bformenc1',
+ 'binit',
+ 'biquad',
+ 'biquada',
+ 'birnd',
+ 'bqrez',
+ 'buchla',
+ 'butbp',
+ 'butbr',
+ 'buthp',
+ 'butlp',
+ 'butterbp',
+ 'butterbr',
+ 'butterhp',
+ 'butterlp',
+ 'button',
+ 'buzz',
+ 'c2r',
+ 'cabasa',
+ 'cauchy',
+ 'cauchyi',
+ 'ceil',
+ 'cell',
+ 'cent',
+ 'centroid',
+ 'ceps',
+ #'cggoto',
+ 'chanctrl',
+ 'changed',
+ 'chani',
+ 'chano',
+ 'chebyshevpoly',
+ 'checkbox',
+ 'chn_S',
+ 'chn_a',
+ 'chn_k',
+ 'chnclear',
+ 'chnexport',
+ 'chnget',
+ 'chnmix',
+ 'chnparams',
+ 'chnset',
+ 'chuap',
+ #'cigoto',
+ #'cingoto',
+ #'ckgoto',
+ 'clear',
+ 'clfilt',
+ 'clip',
+ 'clockoff',
+ 'clockon',
+ 'cmplxprod',
+ #'cngoto',
+ 'comb',
+ 'combinv',
+ 'compilecsd',
+ 'compileorc',
+ 'compilestr',
+ 'compress',
+ 'connect',
+ 'control',
+ 'convle',
+ 'convolve',
+ 'copy2ftab',
+ 'copy2ttab',
+ 'copya2ftab',
+ 'copyf2array',
+ 'cos',
+ 'cosh',
+ 'cosinv',
+ 'cosseg',
+ 'cossegb',
+ 'cossegr',
+ 'cps2pch',
+ 'cpsmidi',
+ 'cpsmidib',
+ 'cpsmidinn',
+ 'cpsoct',
+ 'cpspch',
+ 'cpstmid',
+ 'cpstun',
+ 'cpstuni',
+ 'cpsxpch',
+ 'cpuprc',
+ 'cross2',
+ 'crossfm',
+ 'crossfmi',
+ 'crossfmpm',
+ 'crossfmpmi',
+ 'crosspm',
+ 'crosspmi',
+ 'crunch',
+ 'ctlchn',
+ 'ctrl14',
+ 'ctrl21',
+ 'ctrl7',
+ 'ctrlinit',
+ 'cuserrnd',
+ 'dam',
+ 'date',
+ 'dates',
+ 'db',
+ 'dbamp',
+ 'dbfsamp',
+ 'dcblock',
+ 'dcblock2',
+ 'dconv',
+ 'delay',
+ 'delay1',
+ 'delayk',
+ 'delayr',
+ 'delayw',
+ 'deltap',
+ 'deltap3',
+ 'deltapi',
+ 'deltapn',
+ 'deltapx',
+ 'deltapxw',
+ 'denorm',
+ 'diff',
+ 'diskgrain',
+ 'diskin',
+ 'diskin2',
+ 'dispfft',
+ 'display',
+ 'distort',
+ 'distort1',
+ 'divz',
+ 'doppler',
+ 'downsamp',
+ 'dripwater',
+ 'dumpk',
+ 'dumpk2',
+ 'dumpk3',
+ 'dumpk4',
+ 'duserrnd',
+ 'dust',
+ 'dust2',
+ #'endin',
+ #'endop',
+ 'envlpx',
+ 'envlpxr',
+ 'ephasor',
+ 'eqfil',
+ 'evalstr',
+ 'event',
+ 'event_i',
+ 'exciter',
+ 'exitnow',
+ 'exp',
+ 'expcurve',
+ 'expon',
+ 'exprand',
+ 'exprandi',
+ 'expseg',
+ 'expsega',
+ 'expsegb',
+ 'expsegba',
+ 'expsegr',
+ 'fareylen',
+ 'fareyleni',
+ 'faustaudio',
+ 'faustcompile',
+ 'faustctl',
+ 'faustgen',
+ 'fft',
+ 'fftinv',
+ 'ficlose',
+ 'filebit',
+ 'filelen',
+ 'filenchnls',
+ 'filepeak',
+ 'filesr',
+ 'filevalid',
+ 'fillarray',
+ 'filter2',
+ 'fin',
+ 'fini',
+ 'fink',
+ 'fiopen',
+ 'flanger',
+ 'flashtxt',
+ 'flooper',
+ 'flooper2',
+ 'floor',
+ 'fluidAllOut',
+ 'fluidCCi',
+ 'fluidCCk',
+ 'fluidControl',
+ 'fluidEngine',
+ 'fluidLoad',
+ 'fluidNote',
+ 'fluidOut',
+ 'fluidProgramSelect',
+ 'fluidSetInterpMethod',
+ 'fmb3',
+ 'fmbell',
+ 'fmmetal',
+ 'fmpercfl',
+ 'fmrhode',
+ 'fmvoice',
+ 'fmwurlie',
+ 'fof',
+ 'fof2',
+ 'fofilter',
+ 'fog',
+ 'fold',
+ 'follow',
+ 'follow2',
+ 'foscil',
+ 'foscili',
+ 'fout',
+ 'fouti',
+ 'foutir',
+ 'foutk',
+ 'fprintks',
+ 'fprints',
+ 'frac',
+ 'fractalnoise',
+ 'freeverb',
+ 'ftchnls',
+ 'ftconv',
+ 'ftcps',
+ 'ftfree',
+ 'ftgen',
+ 'ftgenonce',
+ 'ftgentmp',
+ 'ftlen',
+ 'ftload',
+ 'ftloadk',
+ 'ftlptim',
+ 'ftmorf',
+ 'ftresize',
+ 'ftresizei',
+ 'ftsave',
+ 'ftsavek',
+ 'ftsr',
+ 'gain',
+ 'gainslider',
+ 'gauss',
+ 'gaussi',
+ 'gausstrig',
+ 'gbuzz',
+ 'genarray',
+ 'genarray_i',
+ 'gendy',
+ 'gendyc',
+ 'gendyx',
+ 'getcfg',
+ 'getcol',
+ 'getrow',
+ 'gogobel',
+ #'goto',
+ 'grain',
+ 'grain2',
+ 'grain3',
+ 'granule',
+ 'guiro',
+ 'harmon',
+ 'harmon2',
+ 'harmon3',
+ 'harmon4',
+ 'hdf5read',
+ 'hdf5write',
+ 'hilbert',
+ 'hrtfearly',
+ 'hrtfer',
+ 'hrtfmove',
+ 'hrtfmove2',
+ 'hrtfreverb',
+ 'hrtfstat',
+ 'hsboscil',
+ 'hvs1',
+ 'hvs2',
+ 'hvs3',
+ 'i',
+ 'iceps',
+ #'igoto',
+ 'ihold',
+ 'imagecreate',
+ 'imagefree',
+ 'imagegetpixel',
+ 'imageload',
+ 'imagesave',
+ 'imagesetpixel',
+ 'imagesize',
+ 'in',
+ 'in32',
+ 'inch',
+ 'inh',
+ 'init',
+ 'initc14',
+ 'initc21',
+ 'initc7',
+ 'inleta',
+ 'inletf',
+ 'inletk',
+ 'inletkid',
+ 'inletv',
+ 'ino',
+ 'inq',
+ 'inrg',
+ 'ins',
+ 'insglobal',
+ 'insremot',
+ #'instr',
+ 'int',
+ 'integ',
+ 'interp',
+ 'invalue',
+ 'inx',
+ 'inz',
+ 'jitter',
+ 'jitter2',
+ 'jspline',
+ 'k',
+ #'kgoto',
+ 'ktableseg',
+ 'lenarray',
+ 'lentab',
+ 'lfo',
+ 'limit',
+ 'line',
+ 'linen',
+ 'linenr',
+ 'lineto',
+ 'linrand',
+ 'linseg',
+ 'linsegb',
+ 'linsegr',
+ 'locsend',
+ 'locsig',
+ 'log',
+ 'log10',
+ 'log2',
+ 'logbtwo',
+ 'logcurve',
+ #'loop_ge',
+ #'loop_gt',
+ #'loop_le',
+ #'loop_lt',
+ 'loopseg',
+ 'loopsegp',
+ 'looptseg',
+ 'loopxseg',
+ 'lorenz',
+ 'loscil',
+ 'loscil3',
+ 'loscilx',
+ 'lowpass2',
+ 'lowres',
+ 'lowresx',
+ 'lpf18',
+ 'lpform',
+ 'lpfreson',
+ 'lphasor',
+ 'lpinterp',
+ 'lposcil',
+ 'lposcil3',
+ 'lposcila',
+ 'lposcilsa',
+ 'lposcilsa2',
+ 'lpread',
+ 'lpreson',
+ 'lpshold',
+ 'lpsholdp',
+ 'lpslot',
+ #'lua_exec',
+ 'lua_ikopcall',
+ #'lua_opdef',
+ 'mac',
+ 'maca',
+ 'madsr',
+ 'mags',
+ 'mandel',
+ 'mandol',
+ 'maparray',
+ 'maparray_i',
+ 'marimba',
+ 'massign',
+ 'max',
+ 'max_k',
+ 'maxabs',
+ 'maxabsaccum',
+ 'maxaccum',
+ 'maxalloc',
+ 'maxarray',
+ 'maxtab',
+ 'mclock',
+ 'mdelay',
+ 'median',
+ 'mediank',
+ 'metro',
+ 'midglobal',
+ 'midic14',
+ 'midic21',
+ 'midic7',
+ 'midichannelaftertouch',
+ 'midichn',
+ 'midicontrolchange',
+ 'midictrl',
+ 'mididefault',
+ 'midifilestatus',
+ 'midiin',
+ 'midinoteoff',
+ 'midinoteoncps',
+ 'midinoteonkey',
+ 'midinoteonoct',
+ 'midinoteonpch',
+ 'midion',
+ 'midion2',
+ 'midiout',
+ 'midipgm',
+ 'midipitchbend',
+ 'midipolyaftertouch',
+ 'midiprogramchange',
+ 'miditempo',
+ 'midremot',
+ 'min',
+ 'minabs',
+ 'minabsaccum',
+ 'minaccum',
+ 'minarray',
+ 'mincer',
+ 'mintab',
+ 'mirror',
+ 'mode',
+ 'modmatrix',
+ 'monitor',
+ 'moog',
+ 'moogladder',
+ 'moogvcf',
+ 'moogvcf2',
+ 'moscil',
+ 'mp3bitrate',
+ 'mp3in',
+ 'mp3len',
+ 'mp3nchnls',
+ 'mp3sr',
+ 'mpulse',
+ 'mrtmsg',
+ 'multitap',
+ 'mute',
+ 'mxadsr',
+ 'nestedap',
+ 'nlalp',
+ 'nlfilt',
+ 'nlfilt2',
+ 'noise',
+ 'noteoff',
+ 'noteon',
+ 'noteondur',
+ 'noteondur2',
+ 'notnum',
+ 'nreverb',
+ 'nrpn',
+ 'nsamp',
+ 'nstance',
+ 'nstrnum',
+ 'ntrpol',
+ 'octave',
+ 'octcps',
+ 'octmidi',
+ 'octmidib',
+ 'octmidinn',
+ 'octpch',
+ #'opcode',
+ 'oscbnk',
+ 'oscil',
+ 'oscil1',
+ 'oscil1i',
+ 'oscil3',
+ 'oscili',
+ 'oscilikt',
+ 'osciliktp',
+ 'oscilikts',
+ 'osciln',
+ 'oscils',
+ 'oscilx',
+ 'out',
+ 'out32',
+ 'outc',
+ 'outch',
+ 'outh',
+ 'outiat',
+ 'outic',
+ 'outic14',
+ 'outipat',
+ 'outipb',
+ 'outipc',
+ 'outkat',
+ 'outkc',
+ 'outkc14',
+ 'outkpat',
+ 'outkpb',
+ 'outkpc',
+ 'outleta',
+ 'outletf',
+ 'outletk',
+ 'outletkid',
+ 'outletv',
+ 'outo',
+ 'outq',
+ 'outq1',
+ 'outq2',
+ 'outq3',
+ 'outq4',
+ 'outrg',
+ 'outs',
+ 'outs1',
+ 'outs2',
+ 'outvalue',
+ 'outx',
+ 'outz',
+ 'p',
+ 'pan',
+ 'pan2',
+ 'pareq',
+ 'partials',
+ 'partikkel',
+ 'partikkelget',
+ 'partikkelset',
+ 'partikkelsync',
+ 'passign',
+ 'pcauchy',
+ 'pchbend',
+ 'pchmidi',
+ 'pchmidib',
+ 'pchmidinn',
+ 'pchoct',
+ 'pconvolve',
+ 'pcount',
+ 'pdclip',
+ 'pdhalf',
+ 'pdhalfy',
+ 'peak',
+ 'pgmassign',
+ 'pgmchn',
+ 'phaser1',
+ 'phaser2',
+ 'phasor',
+ 'phasorbnk',
+ 'phs',
+ 'pindex',
+ 'pinker',
+ 'pinkish',
+ 'pitch',
+ 'pitchac',
+ 'pitchamdf',
+ 'planet',
+ 'platerev',
+ 'plltrack',
+ 'pluck',
+ 'poisson',
+ 'pol2rect',
+ 'polyaft',
+ 'polynomial',
+ 'pop',
+ 'pop_f',
+ 'port',
+ 'portk',
+ 'poscil',
+ 'poscil3',
+ 'pow',
+ 'powershape',
+ 'powoftwo',
+ 'prealloc',
+ 'prepiano',
+ 'print',
+ 'print_type',
+ 'printf',
+ 'printf_i',
+ 'printk',
+ 'printk2',
+ 'printks',
+ 'printks2',
+ 'prints',
+ 'product',
+ 'pset',
+ 'ptable',
+ 'ptable3',
+ 'ptablei',
+ 'ptableiw',
+ 'ptablew',
+ 'ptrack',
+ 'push',
+ 'push_f',
+ 'puts',
+ 'pvadd',
+ 'pvbufread',
+ 'pvcross',
+ 'pvinterp',
+ 'pvoc',
+ 'pvread',
+ 'pvs2array',
+ 'pvs2tab',
+ 'pvsadsyn',
+ 'pvsanal',
+ 'pvsarp',
+ 'pvsbandp',
+ 'pvsbandr',
+ 'pvsbin',
+ 'pvsblur',
+ 'pvsbuffer',
+ 'pvsbufread',
+ 'pvsbufread2',
+ 'pvscale',
+ 'pvscent',
+ 'pvsceps',
+ 'pvscross',
+ 'pvsdemix',
+ 'pvsdiskin',
+ 'pvsdisp',
+ 'pvsenvftw',
+ 'pvsfilter',
+ 'pvsfread',
+ 'pvsfreeze',
+ 'pvsfromarray',
+ 'pvsftr',
+ 'pvsftw',
+ 'pvsfwrite',
+ 'pvsgain',
+ 'pvsgendy',
+ 'pvshift',
+ 'pvsifd',
+ 'pvsin',
+ 'pvsinfo',
+ 'pvsinit',
+ 'pvslock',
+ 'pvsmaska',
+ 'pvsmix',
+ 'pvsmooth',
+ 'pvsmorph',
+ 'pvsosc',
+ 'pvsout',
+ 'pvspitch',
+ 'pvstanal',
+ 'pvstencil',
+ 'pvsvoc',
+ 'pvswarp',
+ 'pvsynth',
+ 'pwd',
+ 'pyassign',
+ 'pyassigni',
+ 'pyassignt',
+ 'pycall',
+ 'pycall1',
+ 'pycall1i',
+ 'pycall1t',
+ 'pycall2',
+ 'pycall2i',
+ 'pycall2t',
+ 'pycall3',
+ 'pycall3i',
+ 'pycall3t',
+ 'pycall4',
+ 'pycall4i',
+ 'pycall4t',
+ 'pycall5',
+ 'pycall5i',
+ 'pycall5t',
+ 'pycall6',
+ 'pycall6i',
+ 'pycall6t',
+ 'pycall7',
+ 'pycall7i',
+ 'pycall7t',
+ 'pycall8',
+ 'pycall8i',
+ 'pycall8t',
+ 'pycalli',
+ 'pycalln',
+ 'pycallni',
+ 'pycallt',
+ 'pyeval',
+ 'pyevali',
+ 'pyevalt',
+ 'pyexec',
+ 'pyexeci',
+ 'pyexect',
+ 'pyinit',
+ 'pylassign',
+ 'pylassigni',
+ 'pylassignt',
+ 'pylcall',
+ 'pylcall1',
+ 'pylcall1i',
+ 'pylcall1t',
+ 'pylcall2',
+ 'pylcall2i',
+ 'pylcall2t',
+ 'pylcall3',
+ 'pylcall3i',
+ 'pylcall3t',
+ 'pylcall4',
+ 'pylcall4i',
+ 'pylcall4t',
+ 'pylcall5',
+ 'pylcall5i',
+ 'pylcall5t',
+ 'pylcall6',
+ 'pylcall6i',
+ 'pylcall6t',
+ 'pylcall7',
+ 'pylcall7i',
+ 'pylcall7t',
+ 'pylcall8',
+ 'pylcall8i',
+ 'pylcall8t',
+ 'pylcalli',
+ 'pylcalln',
+ 'pylcallni',
+ 'pylcallt',
+ 'pyleval',
+ 'pylevali',
+ 'pylevalt',
+ 'pylexec',
+ 'pylexeci',
+ 'pylexect',
+ #'pylrun',
+ #'pylruni',
+ #'pylrunt',
+ #'pyrun',
+ #'pyruni',
+ #'pyrunt',
+ 'qinf',
+ 'qnan',
+ 'r2c',
+ 'rand',
+ 'randh',
+ 'randi',
+ 'random',
+ 'randomh',
+ 'randomi',
+ 'rbjeq',
+ 'readclock',
+ 'readf',
+ 'readfi',
+ 'readk',
+ 'readk2',
+ 'readk3',
+ 'readk4',
+ 'readks',
+ 'readscore',
+ 'readscratch',
+ 'rect2pol',
+ 'reinit',
+ 'release',
+ 'remoteport',
+ 'remove',
+ 'repluck',
+ 'reson',
+ 'resonk',
+ 'resonr',
+ 'resonx',
+ 'resonxk',
+ 'resony',
+ 'resonz',
+ 'resyn',
+ #'return',
+ 'reverb',
+ 'reverb2',
+ 'reverbsc',
+ 'rewindscore',
+ 'rezzy',
+ 'rfft',
+ 'rifft',
+ #'rigoto',
+ 'rireturn',
+ 'rms',
+ 'rnd',
+ 'rnd31',
+ 'round',
+ 'rspline',
+ 'rtclock',
+ 's16b14',
+ 's32b14',
+ 'samphold',
+ 'sandpaper',
+ 'scale',
+ 'scalearray',
+ 'scalet',
+ 'scanhammer',
+ 'scans',
+ 'scantable',
+ 'scanu',
+ 'schedkwhen',
+ 'schedkwhennamed',
+ 'schedule',
+ 'schedwhen',
+ #'scoreline',
+ #'scoreline_i',
+ 'seed',
+ 'sekere',
+ 'semitone',
+ 'sense',
+ 'sensekey',
+ 'seqtime',
+ 'seqtime2',
+ 'serialBegin',
+ 'serialEnd',
+ 'serialFlush',
+ 'serialPrint',
+ 'serialRead',
+ 'serialWrite',
+ 'serialWrite_i',
+ 'setcol',
+ 'setctrl',
+ 'setksmps',
+ 'setrow',
+ 'setscorepos',
+ 'sfilist',
+ 'sfinstr',
+ 'sfinstr3',
+ 'sfinstr3m',
+ 'sfinstrm',
+ 'sfload',
+ 'sflooper',
+ 'sfpassign',
+ 'sfplay',
+ 'sfplay3',
+ 'sfplay3m',
+ 'sfplaym',
+ 'sfplist',
+ 'sfpreset',
+ 'shaker',
+ 'shiftin',
+ 'shiftout',
+ 'signalflowgraph',
+ 'signum',
+ 'sin',
+ 'sinh',
+ 'sininv',
+ 'sinsyn',
+ 'sleighbells',
+ 'slicearray',
+ 'slider16',
+ 'slider16f',
+ 'slider16table',
+ 'slider16tablef',
+ 'slider32',
+ 'slider32f',
+ 'slider32table',
+ 'slider32tablef',
+ 'slider64',
+ 'slider64f',
+ 'slider64table',
+ 'slider64tablef',
+ 'slider8',
+ 'slider8f',
+ 'slider8table',
+ 'slider8tablef',
+ 'sliderKawai',
+ 'sndload',
+ 'sndloop',
+ 'sndwarp',
+ 'sndwarpst',
+ 'sockrecv',
+ 'sockrecvs',
+ 'socksend',
+ 'socksends',
+ 'soundin',
+ 'soundout',
+ 'soundouts',
+ 'space',
+ 'spat3d',
+ 'spat3di',
+ 'spat3dt',
+ 'spdist',
+ 'specaddm',
+ 'specdiff',
+ 'specdisp',
+ 'specfilt',
+ 'spechist',
+ 'specptrk',
+ 'specscal',
+ 'specsum',
+ 'spectrum',
+ 'splitrig',
+ 'sprintf',
+ 'sprintfk',
+ 'spsend',
+ 'sqrt',
+ 'stack',
+ 'statevar',
+ 'stix',
+ 'strcat',
+ 'strcatk',
+ 'strchar',
+ 'strchark',
+ 'strcmp',
+ 'strcmpk',
+ 'strcpy',
+ 'strcpyk',
+ 'strecv',
+ 'streson',
+ 'strfromurl',
+ 'strget',
+ 'strindex',
+ 'strindexk',
+ 'strlen',
+ 'strlenk',
+ 'strlower',
+ 'strlowerk',
+ 'strrindex',
+ 'strrindexk',
+ 'strset',
+ 'strsub',
+ 'strsubk',
+ 'strtod',
+ 'strtodk',
+ 'strtol',
+ 'strtolk',
+ 'strupper',
+ 'strupperk',
+ 'stsend',
+ 'subinstr',
+ 'subinstrinit',
+ 'sum',
+ 'sumarray',
+ 'sumtab',
+ 'svfilter',
+ 'syncgrain',
+ 'syncloop',
+ 'syncphasor',
+ 'system',
+ 'system_i',
+ 'tab',
+ 'tab2pvs',
+ 'tab_i',
+ 'tabgen',
+ 'table',
+ 'table3',
+ 'table3kt',
+ 'tablecopy',
+ 'tablefilter',
+ 'tablefilteri',
+ 'tablegpw',
+ 'tablei',
+ 'tableicopy',
+ 'tableigpw',
+ 'tableikt',
+ 'tableimix',
+ 'tableiw',
+ 'tablekt',
+ 'tablemix',
+ 'tableng',
+ 'tablera',
+ 'tableseg',
+ 'tableshuffle',
+ 'tableshufflei',
+ 'tablew',
+ 'tablewa',
+ 'tablewkt',
+ 'tablexkt',
+ 'tablexseg',
+ 'tabmap',
+ 'tabmap_i',
+ 'tabmorph',
+ 'tabmorpha',
+ 'tabmorphak',
+ 'tabmorphi',
+ 'tabplay',
+ 'tabrec',
+ 'tabslice',
+ 'tabsum',
+ 'tabw',
+ 'tabw_i',
+ 'tambourine',
+ 'tan',
+ 'tanh',
+ 'taninv',
+ 'taninv2',
+ 'tb0',
+ 'tb0_init',
+ 'tb1',
+ 'tb10',
+ 'tb10_init',
+ 'tb11',
+ 'tb11_init',
+ 'tb12',
+ 'tb12_init',
+ 'tb13',
+ 'tb13_init',
+ 'tb14',
+ 'tb14_init',
+ 'tb15',
+ 'tb15_init',
+ 'tb1_init',
+ 'tb2',
+ 'tb2_init',
+ 'tb3',
+ 'tb3_init',
+ 'tb4',
+ 'tb4_init',
+ 'tb5',
+ 'tb5_init',
+ 'tb6',
+ 'tb6_init',
+ 'tb7',
+ 'tb7_init',
+ 'tb8',
+ 'tb8_init',
+ 'tb9',
+ 'tb9_init',
+ 'tbvcf',
+ 'tempest',
+ 'tempo',
+ 'temposcal',
+ 'tempoval',
+ #'tigoto',
+ 'timedseq',
+ 'timeinstk',
+ 'timeinsts',
+ 'timek',
+ 'times',
+ #'timout',
+ 'tival',
+ 'tlineto',
+ 'tone',
+ 'tonek',
+ 'tonex',
+ 'tradsyn',
+ 'trandom',
+ 'transeg',
+ 'transegb',
+ 'transegr',
+ 'trcross',
+ 'trfilter',
+ 'trhighest',
+ 'trigger',
+ 'trigseq',
+ 'trirand',
+ 'trlowest',
+ 'trmix',
+ 'trscale',
+ 'trshift',
+ 'trsplit',
+ 'turnoff',
+ 'turnoff2',
+ 'turnon',
+ 'unirand',
+ 'unwrap',
+ 'upsamp',
+ 'urd',
+ 'vactrol',
+ 'vadd',
+ 'vadd_i',
+ 'vaddv',
+ 'vaddv_i',
+ 'vaget',
+ 'valpass',
+ 'vaset',
+ 'vbap',
+ 'vbap16',
+ 'vbap4',
+ 'vbap4move',
+ 'vbap8',
+ 'vbap8move',
+ 'vbapg',
+ 'vbapgmove',
+ 'vbaplsinit',
+ 'vbapmove',
+ 'vbapz',
+ 'vbapzmove',
+ 'vcella',
+ 'vco',
+ 'vco2',
+ 'vco2ft',
+ 'vco2ift',
+ 'vco2init',
+ 'vcomb',
+ 'vcopy',
+ 'vcopy_i',
+ 'vdel_k',
+ 'vdelay',
+ 'vdelay3',
+ 'vdelayk',
+ 'vdelayx',
+ 'vdelayxq',
+ 'vdelayxs',
+ 'vdelayxw',
+ 'vdelayxwq',
+ 'vdelayxws',
+ 'vdivv',
+ 'vdivv_i',
+ 'vecdelay',
+ 'veloc',
+ 'vexp',
+ 'vexp_i',
+ 'vexpseg',
+ 'vexpv',
+ 'vexpv_i',
+ 'vibes',
+ 'vibr',
+ 'vibrato',
+ 'vincr',
+ 'vlimit',
+ 'vlinseg',
+ 'vlowres',
+ 'vmap',
+ 'vmirror',
+ 'vmult',
+ 'vmult_i',
+ 'vmultv',
+ 'vmultv_i',
+ 'voice',
+ 'vosim',
+ 'vphaseseg',
+ 'vport',
+ 'vpow',
+ 'vpow_i',
+ 'vpowv',
+ 'vpowv_i',
+ 'vpvoc',
+ 'vrandh',
+ 'vrandi',
+ 'vsubv',
+ 'vsubv_i',
+ 'vtaba',
+ 'vtabi',
+ 'vtabk',
+ 'vtable1k',
+ 'vtablea',
+ 'vtablei',
+ 'vtablek',
+ 'vtablewa',
+ 'vtablewi',
+ 'vtablewk',
+ 'vtabwa',
+ 'vtabwi',
+ 'vtabwk',
+ 'vwrap',
+ 'waveset',
+ 'weibull',
+ 'wgbow',
+ 'wgbowedbar',
+ 'wgbrass',
+ 'wgclar',
+ 'wgflute',
+ 'wgpluck',
+ 'wgpluck2',
+ 'wguide1',
+ 'wguide2',
+ 'wiiconnect',
+ 'wiidata',
+ 'wiirange',
+ 'wiisend',
+ 'window',
+ 'wrap',
+ 'writescratch',
+ 'wterrain',
+ 'xadsr',
+ 'xin',
+ 'xout',
+ 'xscanmap',
+ 'xscans',
+ 'xscansmap',
+ 'xscanu',
+ 'xtratim',
+ 'xyin',
+ 'zacl',
+ 'zakinit',
+ 'zamod',
+ 'zar',
+ 'zarg',
+ 'zaw',
+ 'zawm',
+ 'zfilter2',
+ 'zir',
+ 'ziw',
+ 'ziwm',
+ 'zkcl',
+ 'zkmod',
+ 'zkr',
+ 'zkw',
+ 'zkwm'
+))
diff --git a/pygments/lexers/_lasso_builtins.py b/pygments/lexers/_lasso_builtins.py
index 6c442800..7c6fd6d4 100644
--- a/pygments/lexers/_lasso_builtins.py
+++ b/pygments/lexers/_lasso_builtins.py
@@ -11,978 +11,672 @@
BUILTINS = {
'Types': (
- 'null',
- 'void',
- 'tag',
- 'trait',
- 'integer',
- 'decimal',
+ 'array',
+ 'atbegin',
'boolean',
- 'capture',
- 'string',
+ 'bson_iter',
+ 'bson',
+ 'bytes_document_body',
'bytes',
- 'keyword',
- 'custom',
- 'staticarray',
- 'signature',
- 'memberstream',
- 'dsinfo',
- 'sourcefile',
- 'array',
- 'pair',
- 'opaque',
- 'filedesc',
- 'dirdesc',
- 'locale',
- 'ucal',
- 'xml_domimplementation',
- 'xml_node',
- 'xml_characterdata',
- 'xml_document',
- 'xml_element',
- 'xml_attr',
- 'xml_text',
- 'xml_cdatasection',
- 'xml_entityreference',
- 'xml_entity',
- 'xml_processinginstruction',
- 'xml_comment',
- 'xml_documenttype',
- 'xml_documentfragment',
- 'xml_notation',
- 'xml_nodelist',
- 'xml_namednodemap',
- 'xml_namednodemap_ht',
- 'xml_namednodemap_attr',
- 'xmlstream',
- 'sqlite3',
- 'sqlite3_stmt',
- 'mime_reader',
- 'curltoken',
- 'regexp',
- 'zip_impl',
- 'zip_file_impl',
- 'library_thread_loader',
- 'generateforeachunkeyed',
- 'generateforeachkeyed',
- 'eacher',
- 'queriable_where',
- 'queriable_select',
- 'queriable_selectmany',
- 'queriable_groupby',
- 'queriable_join',
- 'queriable_groupjoin',
- 'queriable_orderby',
- 'queriable_orderbydescending',
- 'queriable_thenby',
- 'queriable_thenbydescending',
- 'queriable_skip',
- 'queriable_take',
- 'queriable_grouping',
- 'generateseries',
- 'tie',
- 'pairup',
- 'delve',
- 'repeat',
- 'pair_compare',
- 'serialization_object_identity_compare',
- 'serialization_element',
- 'serialization_writer_standin',
- 'serialization_writer_ref',
- 'serialization_writer',
- 'serialization_reader',
- 'tree_nullnode',
- 'tree_node',
- 'tree_base',
- 'map_node',
- 'map',
- 'file',
- 'date',
- 'dir',
- 'magick_image',
- 'ldap',
- 'os_process',
- 'java_jnienv',
- 'jobject',
- 'jmethodid',
- 'jfieldid',
- 'database_registry',
- 'sqlite_db',
- 'sqlite_results',
- 'sqlite_currentrow',
- 'sqlite_table',
- 'sqlite_column',
- 'curl',
- 'debugging_stack',
- 'dbgp_server',
- 'dbgp_packet',
- 'duration',
- 'inline_type',
- 'json_literal',
- 'json_object',
- 'list_node',
- 'list',
- 'jchar',
- 'jchararray',
- 'jbyte',
- 'jbytearray',
- 'jfloat',
- 'jint',
- 'jshort',
- 'currency',
- 'scientific',
- 'percent',
- 'dateandtime',
- 'timeonly',
- 'net_tcp',
- 'net_tcpssl',
- 'net_tcp_ssl',
- 'net_named_pipe',
- 'net_udppacket',
- 'net_udp_packet',
- 'net_udp',
- 'pdf_typebase',
- 'pdf_doc',
- 'pdf_color',
- 'pdf_barcode',
- 'pdf_font',
- 'pdf_image',
- 'pdf_list',
- 'pdf_read',
- 'pdf_table',
- 'pdf_text',
- 'pdf_hyphenator',
- 'pdf_chunk',
- 'pdf_phrase',
- 'pdf_paragraph',
- 'queue',
- 'set',
- 'sys_process',
- 'worker_pool',
- 'zip_file',
- 'zip',
'cache_server_element',
'cache_server',
- 'dns_response',
+ 'capture',
+ 'client_address',
+ 'client_ip',
+ 'component_container',
'component_render_state',
'component',
- 'component_container',
+ 'curl',
+ 'curltoken',
+ 'currency',
+ 'custom',
+ 'data_document',
+ 'database_registry',
+ 'date',
+ 'dateandtime',
+ 'dbgp_packet',
+ 'dbgp_server',
+ 'debugging_stack',
+ 'decimal',
+ 'delve',
+ 'dir',
+ 'dirdesc',
+ 'dns_response',
'document_base',
'document_body',
'document_header',
- 'text_document',
- 'data_document',
+ 'dsinfo',
+ 'duration',
+ 'eacher',
'email_compose',
- 'email_pop',
'email_parse',
+ 'email_pop',
'email_queue_impl_base',
+ 'email_queue_impl',
+ 'email_smtp',
'email_stage_impl_base',
- 'fcgi_record',
- 'web_request_impl',
- 'fcgi_request',
- 'include_cache',
- 'atbegin',
+ 'email_stage_impl',
'fastcgi_each_fcgi_param',
'fastcgi_server',
+ 'fcgi_record',
+ 'fcgi_request',
+ 'file',
+ 'filedesc',
'filemaker_datasource',
- 'http_document',
- 'http_document_header',
- 'http_header_field',
- 'html_document_head',
- 'html_document_body',
- 'raw_document_body',
- 'bytes_document_body',
- 'html_attr',
+ 'generateforeachkeyed',
+ 'generateforeachunkeyed',
+ 'generateseries',
+ 'hash_map',
'html_atomic_element',
- 'html_container_element',
- 'http_error',
- 'html_script',
- 'html_text',
- 'html_raw',
+ 'html_attr',
+ 'html_base',
'html_binary',
- 'html_json',
+ 'html_br',
'html_cdata',
- 'html_eol',
+ 'html_container_element',
'html_div',
- 'html_span',
- 'html_br',
- 'html_hr',
+ 'html_document_body',
+ 'html_document_head',
+ 'html_eol',
+ 'html_fieldset',
+ 'html_form',
'html_h1',
'html_h2',
'html_h3',
'html_h4',
'html_h5',
'html_h6',
- 'html_meta',
+ 'html_hr',
+ 'html_img',
+ 'html_input',
+ 'html_json',
+ 'html_label',
+ 'html_legend',
'html_link',
+ 'html_meta',
'html_object',
+ 'html_option',
+ 'html_raw',
+ 'html_script',
+ 'html_select',
+ 'html_span',
'html_style',
- 'html_base',
'html_table',
- 'html_tr',
'html_td',
+ 'html_text',
'html_th',
- 'html_img',
- 'html_form',
- 'html_fieldset',
- 'html_legend',
- 'html_input',
- 'html_label',
- 'html_option',
- 'html_select',
+ 'html_tr',
+ 'http_document_header',
+ 'http_document',
+ 'http_error',
+ 'http_header_field',
+ 'http_server_connection_handler_globals',
+ 'http_server_connection_handler',
+ 'http_server_request_logger_thread',
'http_server_web_connection',
'http_server',
- 'http_server_connection_handler',
'image',
- 'lassoapp_installer',
+ 'include_cache',
+ 'inline_type',
+ 'integer',
+ 'java_jnienv',
+ 'jbyte',
+ 'jbytearray',
+ 'jchar',
+ 'jchararray',
+ 'jfieldid',
+ 'jfloat',
+ 'jint',
+ 'jmethodid',
+ 'jobject',
+ 'jshort',
+ 'json_decode',
+ 'json_encode',
+ 'json_literal',
+ 'json_object',
+ 'keyword',
+ 'lassoapp_compiledsrc_appsource',
+ 'lassoapp_compiledsrc_fileresource',
'lassoapp_content_rep_halt',
- 'lassoapp_dirsrc_fileresource',
'lassoapp_dirsrc_appsource',
- 'lassoapp_livesrc_fileresource',
+ 'lassoapp_dirsrc_fileresource',
+ 'lassoapp_installer',
'lassoapp_livesrc_appsource',
+ 'lassoapp_livesrc_fileresource',
'lassoapp_long_expiring_bytes',
+ 'lassoapp_manualsrc_appsource',
'lassoapp_zip_file_server',
- 'lassoapp_zipsrc_fileresource',
'lassoapp_zipsrc_appsource',
- 'lassoapp_compiledsrc_fileresource',
- 'lassoapp_compiledsrc_appsource',
- 'lassoapp_manualsrc_appsource',
+ 'lassoapp_zipsrc_fileresource',
+ 'ldap',
+ 'library_thread_loader',
+ 'list_node',
+ 'list',
+ 'locale',
'log_impl_base',
- 'portal_impl',
- 'security_registry',
+ 'log_impl',
+ 'magick_image',
+ 'map_node',
+ 'map',
+ 'memberstream',
'memory_session_driver_impl_entry',
'memory_session_driver_impl',
- 'sqlite_session_driver_impl_entry',
- 'sqlite_session_driver_impl',
+ 'memory_session_driver',
+ 'mime_reader',
+ 'mongo_client',
+ 'mongo_collection',
+ 'mongo_cursor',
+ 'mustache_ctx',
'mysql_session_driver_impl',
+ 'mysql_session_driver',
+ 'net_named_pipe',
+ 'net_tcp_ssl',
+ 'net_tcp',
+ 'net_udp_packet',
+ 'net_udp',
+ 'null',
'odbc_session_driver_impl',
+ 'odbc_session_driver',
+ 'opaque',
+ 'os_process',
+ 'pair_compare',
+ 'pair',
+ 'pairup',
+ 'pdf_barcode',
+ 'pdf_chunk',
+ 'pdf_color',
+ 'pdf_doc',
+ 'pdf_font',
+ 'pdf_hyphenator',
+ 'pdf_image',
+ 'pdf_list',
+ 'pdf_paragraph',
+ 'pdf_phrase',
+ 'pdf_read',
+ 'pdf_table',
+ 'pdf_text',
+ 'pdf_typebase',
+ 'percent',
+ 'portal_impl',
+ 'queriable_groupby',
+ 'queriable_grouping',
+ 'queriable_groupjoin',
+ 'queriable_join',
+ 'queriable_orderby',
+ 'queriable_orderbydescending',
+ 'queriable_select',
+ 'queriable_selectmany',
+ 'queriable_skip',
+ 'queriable_take',
+ 'queriable_thenby',
+ 'queriable_thenbydescending',
+ 'queriable_where',
+ 'queue',
+ 'raw_document_body',
+ 'regexp',
+ 'repeat',
+ 'scientific',
+ 'security_registry',
+ 'serialization_element',
+ 'serialization_object_identity_compare',
+ 'serialization_reader',
+ 'serialization_writer_ref',
+ 'serialization_writer_standin',
+ 'serialization_writer',
'session_delete_expired_thread',
- 'email_smtp',
- 'client_address',
- 'client_ip',
+ 'set',
+ 'signature',
+ 'sourcefile',
+ 'sqlite_column',
+ 'sqlite_currentrow',
+ 'sqlite_db',
+ 'sqlite_results',
+ 'sqlite_session_driver_impl_entry',
+ 'sqlite_session_driver_impl',
+ 'sqlite_session_driver',
+ 'sqlite_table',
+ 'sqlite3_stmt',
+ 'sqlite3',
+ 'staticarray',
+ 'string',
+ 'sys_process',
+ 'tag',
+ 'text_document',
+ 'tie',
+ 'timeonly',
+ 'trait',
+ 'tree_base',
+ 'tree_node',
+ 'tree_nullnode',
+ 'ucal',
+ 'usgcpu',
+ 'usgvm',
+ 'void',
+ 'web_error_atend',
'web_node_base',
- 'web_node_root',
- 'web_node_content_representation_xhr_container',
- 'web_node_content_representation_html_specialized',
'web_node_content_representation_css_specialized',
+ 'web_node_content_representation_html_specialized',
'web_node_content_representation_js_specialized',
+ 'web_node_content_representation_xhr_container',
'web_node_echo',
- 'web_error_atend',
+ 'web_node_root',
+ 'web_request_impl',
+ 'web_request',
'web_response_impl',
- 'web_router'
+ 'web_response',
+ 'web_router',
+ 'websocket_handler',
+ 'worker_pool',
+ 'xml_attr',
+ 'xml_cdatasection',
+ 'xml_characterdata',
+ 'xml_comment',
+ 'xml_document',
+ 'xml_documentfragment',
+ 'xml_documenttype',
+ 'xml_domimplementation',
+ 'xml_element',
+ 'xml_entity',
+ 'xml_entityreference',
+ 'xml_namednodemap_attr',
+ 'xml_namednodemap_ht',
+ 'xml_namednodemap',
+ 'xml_node',
+ 'xml_nodelist',
+ 'xml_notation',
+ 'xml_processinginstruction',
+ 'xml_text',
+ 'xmlstream',
+ 'zip_file_impl',
+ 'zip_file',
+ 'zip_impl',
+ 'zip',
),
'Traits': (
- 'trait_asstring',
'any',
- 'trait_generator',
+ 'formattingbase',
+ 'html_attributed',
+ 'html_element_coreattrs',
+ 'html_element_eventsattrs',
+ 'html_element_i18nattrs',
+ 'lassoapp_capabilities',
+ 'lassoapp_resource',
+ 'lassoapp_source',
+ 'queriable_asstring',
+ 'session_driver',
+ 'trait_array',
+ 'trait_asstring',
+ 'trait_backcontractible',
+ 'trait_backended',
+ 'trait_backexpandable',
+ 'trait_close',
+ 'trait_contractible',
'trait_decompose_assignment',
- 'trait_foreach',
- 'trait_generatorcentric',
- 'trait_foreachtextelement',
+ 'trait_doubleended',
+ 'trait_each_sub',
+ 'trait_encodeurl',
+ 'trait_endedfullymutable',
+ 'trait_expandable',
+ 'trait_file',
'trait_finite',
'trait_finiteforeach',
- 'trait_keyed',
- 'trait_keyedfinite',
- 'trait_keyedforeach',
+ 'trait_foreach',
+ 'trait_foreachtextelement',
+ 'trait_frontcontractible',
'trait_frontended',
- 'trait_backended',
- 'trait_doubleended',
- 'trait_positionallykeyed',
- 'trait_expandable',
'trait_frontexpandable',
- 'trait_backexpandable',
- 'trait_contractible',
- 'trait_frontcontractible',
- 'trait_backcontractible',
'trait_fullymutable',
+ 'trait_generator',
+ 'trait_generatorcentric',
+ 'trait_hashable',
+ 'trait_json_serialize',
+ 'trait_keyed',
+ 'trait_keyedfinite',
+ 'trait_keyedforeach',
'trait_keyedmutable',
- 'trait_endedfullymutable',
- 'trait_setoperations',
- 'trait_searchable',
- 'trait_positionallysearchable',
+ 'trait_list',
+ 'trait_map',
+ 'trait_net',
'trait_pathcomponents',
+ 'trait_positionallykeyed',
+ 'trait_positionallysearchable',
+ 'trait_queriable',
+ 'trait_queriablelambda',
'trait_readbytes',
- 'trait_writebytes',
- 'trait_setencoding',
'trait_readstring',
- 'trait_writestring',
- 'trait_hashable',
- 'trait_each_sub',
- 'trait_stack',
- 'trait_list',
- 'trait_array',
- 'trait_map',
- 'trait_close',
- 'trait_file',
'trait_scalar',
- 'trait_queriablelambda',
- 'trait_queriable',
- 'queriable_asstring',
+ 'trait_searchable',
'trait_serializable',
+ 'trait_setencoding',
+ 'trait_setoperations',
+ 'trait_stack',
'trait_treenode',
- 'trait_json_serialize',
- 'formattingbase',
- 'trait_net',
+ 'trait_writebytes',
+ 'trait_writestring',
'trait_xml_elementcompat',
'trait_xml_nodecompat',
'web_connection',
- 'html_element_coreattrs',
- 'html_element_i18nattrs',
- 'html_element_eventsattrs',
- 'html_attributed',
- 'lassoapp_resource',
- 'lassoapp_source',
- 'lassoapp_capabilities',
- 'session_driver',
- 'web_node_content_json_specialized',
- 'web_node',
'web_node_container',
+ 'web_node_content_css_specialized',
+ 'web_node_content_document',
+ 'web_node_content_html_specialized',
+ 'web_node_content_js_specialized',
+ 'web_node_content_json_specialized',
'web_node_content_representation',
'web_node_content',
- 'web_node_content_document',
'web_node_postable',
- 'web_node_content_html_specialized',
- 'web_node_content_css_specialized',
- 'web_node_content_js_specialized'
+ 'web_node',
),
'Unbound Methods': (
- 'fail_now',
- 'register',
- 'register_thread',
- 'escape_tag',
- 'handle',
- 'handle_failure',
- 'protect_now',
- 'threadvar_get',
- 'threadvar_set',
- 'threadvar_set_asrt',
- 'threadvar_find',
- 'abort_now',
'abort_clear',
- 'failure_clear',
- 'var_keys',
- 'var_values',
- 'staticarray_join',
- 'suspend',
- 'main_thread_only',
- 'split_thread',
- 'capture_nearestloopcount',
- 'capture_nearestloopcontinue',
+ 'abort_now',
+ 'abort',
+ 'action_param',
+ 'action_params',
+ 'action_statement',
+ 'admin_authorization',
+ 'admin_currentgroups',
+ 'admin_currentuserid',
+ 'admin_currentusername',
+ 'admin_getpref',
+ 'admin_initialize',
+ 'admin_lassoservicepath',
+ 'admin_removepref',
+ 'admin_setpref',
+ 'admin_userexists',
+ 'all',
+ 'auth_admin',
+ 'auth_check',
+ 'auth_custom',
+ 'auth_group',
+ 'auth_prompt',
+ 'auth_user',
+ 'bom_utf16be',
+ 'bom_utf16le',
+ 'bom_utf32be',
+ 'bom_utf32le',
+ 'bom_utf8',
+ 'bw',
'capture_nearestloopabort',
- 'io_file_o_rdonly',
- 'io_file_o_wronly',
- 'io_file_o_rdwr',
- 'io_file_o_nonblock',
- 'io_file_o_sync',
- 'io_file_o_shlock',
- 'io_file_o_exlock',
- 'io_file_o_async',
- 'io_file_o_fsync',
- 'io_file_o_nofollow',
- 'io_file_s_irwxu',
- 'io_file_s_irusr',
- 'io_file_s_iwusr',
- 'io_file_s_ixusr',
- 'io_file_s_irwxg',
- 'io_file_s_irgrp',
- 'io_file_s_iwgrp',
- 'io_file_s_ixgrp',
- 'io_file_s_irwxo',
- 'io_file_s_iroth',
- 'io_file_s_iwoth',
- 'io_file_s_ixoth',
- 'io_file_s_isuid',
- 'io_file_s_isgid',
- 'io_file_s_isvtx',
- 'io_file_s_ifmt',
- 'io_file_s_ifchr',
- 'io_file_s_ifdir',
- 'io_file_s_ifreg',
- 'io_file_o_append',
- 'io_file_o_creat',
- 'io_file_o_trunc',
- 'io_file_o_excl',
- 'io_file_seek_set',
- 'io_file_seek_cur',
- 'io_file_seek_end',
- 'io_file_s_ififo',
- 'io_file_s_ifblk',
- 'io_file_s_iflnk',
- 'io_file_s_ifsock',
- 'io_net_shut_rd',
- 'io_net_shut_wr',
- 'io_net_shut_rdwr',
- 'io_net_sock_stream',
- 'io_net_sock_dgram',
- 'io_net_sock_raw',
- 'io_net_sock_rdm',
- 'io_net_sock_seqpacket',
- 'io_net_so_debug',
- 'io_net_so_acceptconn',
- 'io_net_so_reuseaddr',
- 'io_net_so_keepalive',
- 'io_net_so_dontroute',
- 'io_net_so_broadcast',
- 'io_net_so_useloopback',
- 'io_net_so_linger',
- 'io_net_so_oobinline',
- 'io_net_so_timestamp',
- 'io_net_so_sndbuf',
- 'io_net_so_rcvbuf',
- 'io_net_so_sndlowat',
- 'io_net_so_rcvlowat',
- 'io_net_so_sndtimeo',
- 'io_net_so_rcvtimeo',
- 'io_net_so_error',
- 'io_net_so_type',
- 'io_net_sol_socket',
- 'io_net_af_unix',
- 'io_net_af_inet',
- 'io_net_af_inet6',
- 'io_net_ipproto_ip',
- 'io_net_ipproto_udp',
- 'io_net_msg_peek',
- 'io_net_msg_oob',
- 'io_net_msg_waitall',
- 'io_file_fioclex',
- 'io_file_fionclex',
- 'io_file_fionread',
- 'io_file_fionbio',
- 'io_file_fioasync',
- 'io_file_fiosetown',
- 'io_file_fiogetown',
- 'io_file_fiodtype',
- 'io_file_f_dupfd',
- 'io_file_f_getfd',
- 'io_file_f_setfd',
- 'io_file_f_getfl',
- 'io_file_f_setfl',
- 'io_file_f_getlk',
- 'io_file_f_setlk',
- 'io_file_f_setlkw',
- 'io_file_fd_cloexec',
- 'io_file_f_rdlck',
- 'io_file_f_unlck',
- 'io_file_f_wrlck',
- 'io_dir_dt_unknown',
- 'io_dir_dt_fifo',
- 'io_dir_dt_chr',
- 'io_dir_dt_blk',
- 'io_dir_dt_reg',
- 'io_dir_dt_sock',
- 'io_dir_dt_wht',
- 'io_dir_dt_lnk',
- 'io_dir_dt_dir',
- 'io_file_access',
- 'io_file_chdir',
- 'io_file_getcwd',
- 'io_file_chown',
- 'io_file_lchown',
- 'io_file_truncate',
- 'io_file_link',
- 'io_file_pipe',
- 'io_file_rmdir',
- 'io_file_symlink',
- 'io_file_unlink',
- 'io_file_remove',
- 'io_file_rename',
- 'io_file_tempnam',
- 'io_file_mkstemp',
- 'io_file_dirname',
- 'io_file_realpath',
- 'io_file_chmod',
- 'io_file_mkdir',
- 'io_file_mkfifo',
- 'io_file_umask',
- 'io_net_socket',
- 'io_net_bind',
- 'io_net_connect',
- 'io_net_listen',
- 'io_net_recv',
- 'io_net_recvfrom',
- 'io_net_accept',
- 'io_net_send',
- 'io_net_sendto',
- 'io_net_shutdown',
- 'io_net_getpeername',
- 'io_net_getsockname',
- 'io_net_ssl_begin',
- 'io_net_ssl_end',
- 'io_net_ssl_shutdown',
- 'io_net_ssl_setverifylocations',
- 'io_net_ssl_usecertificatechainfile',
- 'io_net_ssl_useprivatekeyfile',
- 'io_net_ssl_connect',
- 'io_net_ssl_accept',
- 'io_net_ssl_error',
- 'io_net_ssl_errorstring',
- 'io_net_ssl_liberrorstring',
- 'io_net_ssl_funcerrorstring',
- 'io_net_ssl_reasonerrorstring',
- 'io_net_ssl_setconnectstate',
- 'io_net_ssl_setacceptstate',
- 'io_net_ssl_read',
- 'io_net_ssl_write',
- 'io_file_stat_size',
- 'io_file_stat_mode',
- 'io_file_stat_mtime',
- 'io_file_stat_atime',
- 'io_file_lstat_size',
- 'io_file_lstat_mode',
- 'io_file_lstat_mtime',
- 'io_file_lstat_atime',
- 'io_file_readlink',
- 'io_file_lockf',
- 'io_file_f_ulock',
- 'io_file_f_tlock',
- 'io_file_f_test',
- 'io_file_stdin',
- 'io_file_stdout',
- 'io_file_stderr',
- 'uchar_alphabetic',
- 'uchar_ascii_hex_digit',
- 'uchar_bidi_control',
- 'uchar_bidi_mirrored',
- 'uchar_dash',
- 'uchar_default_ignorable_code_point',
- 'uchar_deprecated',
- 'uchar_diacritic',
- 'uchar_extender',
- 'uchar_full_composition_exclusion',
- 'uchar_grapheme_base',
- 'uchar_grapheme_extend',
- 'uchar_grapheme_link',
- 'uchar_hex_digit',
- 'uchar_hyphen',
- 'uchar_id_continue',
- 'uchar_ideographic',
- 'uchar_ids_binary_operator',
- 'uchar_ids_trinary_operator',
- 'uchar_join_control',
- 'uchar_logical_order_exception',
- 'uchar_lowercase',
- 'uchar_math',
- 'uchar_noncharacter_code_point',
- 'uchar_quotation_mark',
- 'uchar_radical',
- 'uchar_soft_dotted',
- 'uchar_terminal_punctuation',
- 'uchar_unified_ideograph',
- 'uchar_uppercase',
- 'uchar_white_space',
- 'uchar_xid_continue',
- 'uchar_case_sensitive',
- 'uchar_s_term',
- 'uchar_variation_selector',
- 'uchar_nfd_inert',
- 'uchar_nfkd_inert',
- 'uchar_nfc_inert',
- 'uchar_nfkc_inert',
- 'uchar_segment_starter',
- 'uchar_pattern_syntax',
- 'uchar_pattern_white_space',
- 'uchar_posix_alnum',
- 'uchar_posix_blank',
- 'uchar_posix_graph',
- 'uchar_posix_print',
- 'uchar_posix_xdigit',
- 'uchar_bidi_class',
- 'uchar_block',
- 'uchar_canonical_combining_class',
- 'uchar_decomposition_type',
- 'uchar_east_asian_width',
- 'uchar_general_category',
- 'uchar_joining_group',
- 'uchar_joining_type',
- 'uchar_line_break',
- 'uchar_numeric_type',
- 'uchar_script',
- 'uchar_hangul_syllable_type',
- 'uchar_nfd_quick_check',
- 'uchar_nfkd_quick_check',
- 'uchar_nfc_quick_check',
- 'uchar_nfkc_quick_check',
- 'uchar_lead_canonical_combining_class',
- 'uchar_trail_canonical_combining_class',
- 'uchar_grapheme_cluster_break',
- 'uchar_sentence_break',
- 'uchar_word_break',
- 'uchar_general_category_mask',
- 'uchar_numeric_value',
- 'uchar_age',
- 'uchar_bidi_mirroring_glyph',
- 'uchar_case_folding',
- 'uchar_iso_comment',
- 'uchar_lowercase_mapping',
- 'uchar_name',
- 'uchar_simple_case_folding',
- 'uchar_simple_lowercase_mapping',
- 'uchar_simple_titlecase_mapping',
- 'uchar_simple_uppercase_mapping',
- 'uchar_titlecase_mapping',
- 'uchar_unicode_1_name',
- 'uchar_uppercase_mapping',
- 'u_wb_other',
- 'u_wb_aletter',
- 'u_wb_format',
- 'u_wb_katakana',
- 'u_wb_midletter',
- 'u_wb_midnum',
- 'u_wb_numeric',
- 'u_wb_extendnumlet',
- 'u_sb_other',
- 'u_sb_aterm',
- 'u_sb_close',
- 'u_sb_format',
- 'u_sb_lower',
- 'u_sb_numeric',
- 'u_sb_oletter',
- 'u_sb_sep',
- 'u_sb_sp',
- 'u_sb_sterm',
- 'u_sb_upper',
- 'u_lb_unknown',
- 'u_lb_ambiguous',
- 'u_lb_alphabetic',
- 'u_lb_break_both',
- 'u_lb_break_after',
- 'u_lb_break_before',
- 'u_lb_mandatory_break',
- 'u_lb_contingent_break',
- 'u_lb_close_punctuation',
- 'u_lb_combining_mark',
- 'u_lb_carriage_return',
- 'u_lb_exclamation',
- 'u_lb_glue',
- 'u_lb_hyphen',
- 'u_lb_ideographic',
- 'u_lb_inseparable',
- 'u_lb_infix_numeric',
- 'u_lb_line_feed',
- 'u_lb_nonstarter',
- 'u_lb_numeric',
- 'u_lb_open_punctuation',
- 'u_lb_postfix_numeric',
- 'u_lb_prefix_numeric',
- 'u_lb_quotation',
- 'u_lb_complex_context',
- 'u_lb_surrogate',
- 'u_lb_space',
- 'u_lb_break_symbols',
- 'u_lb_zwspace',
- 'u_lb_next_line',
- 'u_lb_word_joiner',
- 'u_lb_h2',
- 'u_lb_h3',
- 'u_lb_jl',
- 'u_lb_jt',
- 'u_lb_jv',
- 'u_nt_none',
- 'u_nt_decimal',
- 'u_nt_digit',
- 'u_nt_numeric',
- 'locale_english',
- 'locale_french',
- 'locale_german',
- 'locale_italian',
- 'locale_japanese',
- 'locale_korean',
- 'locale_chinese',
- 'locale_simplifiedchinese',
- 'locale_traditionalchinese',
- 'locale_france',
- 'locale_germany',
- 'locale_italy',
- 'locale_japan',
- 'locale_korea',
- 'locale_china',
- 'locale_prc',
- 'locale_taiwan',
- 'locale_uk',
- 'locale_us',
- 'locale_canada',
- 'locale_canadafrench',
- 'locale_default',
- 'locale_setdefault',
- 'locale_isocountries',
- 'locale_isolanguages',
- 'locale_availablelocales',
- 'ucal_listtimezones',
- 'ucal_era',
- 'ucal_year',
- 'ucal_month',
- 'ucal_weekofyear',
- 'ucal_weekofmonth',
- 'ucal_dayofmonth',
- 'ucal_dayofyear',
- 'ucal_dayofweek',
- 'ucal_dayofweekinmonth',
- 'ucal_ampm',
- 'ucal_hour',
- 'ucal_hourofday',
- 'ucal_minute',
- 'ucal_second',
- 'ucal_millisecond',
- 'ucal_zoneoffset',
- 'ucal_dstoffset',
- 'ucal_yearwoy',
- 'ucal_dowlocal',
- 'ucal_extendedyear',
- 'ucal_julianday',
- 'ucal_millisecondsinday',
- 'ucal_lenient',
- 'ucal_firstdayofweek',
- 'ucal_daysinfirstweek',
- 'sys_sigalrm',
- 'sys_sighup',
- 'sys_sigkill',
- 'sys_sigpipe',
- 'sys_sigquit',
- 'sys_sigusr1',
- 'sys_sigusr2',
- 'sys_sigchld',
- 'sys_sigcont',
- 'sys_sigstop',
- 'sys_sigtstp',
- 'sys_sigttin',
- 'sys_sigttou',
- 'sys_sigbus',
- 'sys_sigprof',
- 'sys_sigsys',
- 'sys_sigtrap',
- 'sys_sigurg',
- 'sys_sigvtalrm',
- 'sys_sigxcpu',
- 'sys_sigxfsz',
- 'sys_wcontinued',
- 'sys_wnohang',
- 'sys_wuntraced',
- 'sys_sigabrt',
- 'sys_sigfpe',
- 'sys_sigill',
- 'sys_sigint',
- 'sys_sigsegv',
- 'sys_sigterm',
- 'sys_exit',
- 'sys_fork',
- 'sys_kill',
- 'sys_waitpid',
- 'sys_getegid',
- 'sys_geteuid',
- 'sys_getgid',
- 'sys_getlogin',
- 'sys_getpid',
- 'sys_getppid',
- 'sys_getuid',
- 'sys_setuid',
- 'sys_setgid',
- 'sys_setsid',
- 'sys_errno',
- 'sys_strerror',
- 'sys_time',
- 'sys_difftime',
- 'sys_getpwuid',
- 'sys_getpwnam',
- 'sys_getgrnam',
- 'sys_drand48',
- 'sys_erand48',
- 'sys_jrand48',
- 'sys_lcong48',
- 'sys_lrand48',
- 'sys_mrand48',
- 'sys_nrand48',
- 'sys_srand48',
- 'sys_random',
- 'sys_srandom',
- 'sys_seed48',
- 'sys_rand',
- 'sys_srand',
- 'sys_environ',
- 'sys_getenv',
- 'sys_setenv',
- 'sys_unsetenv',
- 'sys_uname',
- 'uuid_compare',
- 'uuid_copy',
- 'uuid_generate',
- 'uuid_generate_random',
- 'uuid_generate_time',
- 'uuid_is_null',
- 'uuid_parse',
- 'uuid_unparse',
- 'uuid_unparse_lower',
- 'uuid_unparse_upper',
- 'sys_credits',
- 'sleep',
- 'sys_dll_ext',
- 'sys_listtypes',
- 'sys_listtraits',
- 'sys_listunboundmethods',
- 'sys_getthreadcount',
- 'sys_growheapby',
- 'sys_getheapsize',
- 'sys_getheapfreebytes',
- 'sys_getbytessincegc',
- 'sys_garbagecollect',
- 'sys_clock',
- 'sys_getstartclock',
- 'sys_clockspersec',
- 'sys_pointersize',
- 'sys_loadlibrary',
- 'sys_getchar',
- 'sys_chroot',
- 'sys_exec',
- 'sys_kill_exec',
- 'sys_wait_exec',
- 'sys_test_exec',
- 'sys_detach_exec',
- 'sys_pid_exec',
- 'wifexited',
- 'wexitstatus',
- 'wifsignaled',
- 'wtermsig',
- 'wifstopped',
- 'wstopsig',
- 'wifcontinued',
- 'sys_eol',
- 'sys_iswindows',
- 'sys_is_windows',
- 'sys_isfullpath',
- 'sys_is_full_path',
- 'lcapi_loadmodule',
- 'lcapi_listdatasources',
- 'encrypt_blowfish',
- 'decrypt_blowfish',
+ 'capture_nearestloopcontinue',
+ 'capture_nearestloopcount',
+ 'checked',
+ 'cipher_decrypt_private',
+ 'cipher_decrypt_public',
+ 'cipher_decrypt',
'cipher_digest',
+ 'cipher_encrypt_private',
+ 'cipher_encrypt_public',
'cipher_encrypt',
- 'cipher_decrypt',
- 'cipher_list',
- 'cipher_keylength',
+ 'cipher_generate_key',
'cipher_hmac',
- 'cipher_seal',
+ 'cipher_keylength',
+ 'cipher_list',
'cipher_open',
+ 'cipher_seal',
'cipher_sign',
'cipher_verify',
- 'cipher_decrypt_private',
- 'cipher_decrypt_public',
- 'cipher_encrypt_private',
- 'cipher_encrypt_public',
- 'cipher_generate_key',
- 'tag_exists',
- 'curl_easy_init',
- 'curl_easy_duphandle',
+ 'client_addr',
+ 'client_authorization',
+ 'client_browser',
+ 'client_contentlength',
+ 'client_contenttype',
+ 'client_cookielist',
+ 'client_cookies',
+ 'client_encoding',
+ 'client_formmethod',
+ 'client_getargs',
+ 'client_getparam',
+ 'client_getparams',
+ 'client_headers',
+ 'client_integertoip',
+ 'client_iptointeger',
+ 'client_password',
+ 'client_postargs',
+ 'client_postparam',
+ 'client_postparams',
+ 'client_type',
+ 'client_url',
+ 'client_username',
+ 'cn',
+ 'column_name',
+ 'column_names',
+ 'column_type',
+ 'column',
+ 'compress',
+ 'content_addheader',
+ 'content_body',
+ 'content_encoding',
+ 'content_header',
+ 'content_replaceheader',
+ 'content_type',
+ 'cookie_set',
+ 'cookie',
'curl_easy_cleanup',
+ 'curl_easy_duphandle',
'curl_easy_getinfo',
- 'curl_multi_perform',
- 'curl_multi_result',
+ 'curl_easy_init',
'curl_easy_reset',
'curl_easy_setopt',
'curl_easy_strerror',
'curl_getdate',
- 'curl_version',
+ 'curl_http_version_1_0',
+ 'curl_http_version_1_1',
+ 'curl_http_version_none',
+ 'curl_ipresolve_v4',
+ 'curl_ipresolve_v6',
+ 'curl_ipresolve_whatever',
+ 'curl_multi_perform',
+ 'curl_multi_result',
+ 'curl_netrc_ignored',
+ 'curl_netrc_optional',
+ 'curl_netrc_required',
+ 'curl_version_asynchdns',
+ 'curl_version_debug',
+ 'curl_version_gssnegotiate',
+ 'curl_version_idn',
'curl_version_info',
- 'curlinfo_effective_url',
+ 'curl_version_ipv6',
+ 'curl_version_kerberos4',
+ 'curl_version_largefile',
+ 'curl_version_libz',
+ 'curl_version_ntlm',
+ 'curl_version_spnego',
+ 'curl_version_ssl',
+ 'curl_version',
+ 'curlauth_any',
+ 'curlauth_anysafe',
+ 'curlauth_basic',
+ 'curlauth_digest',
+ 'curlauth_gssnegotiate',
+ 'curlauth_none',
+ 'curlauth_ntlm',
+ 'curle_aborted_by_callback',
+ 'curle_bad_calling_order',
+ 'curle_bad_content_encoding',
+ 'curle_bad_download_resume',
+ 'curle_bad_function_argument',
+ 'curle_bad_password_entered',
+ 'curle_couldnt_connect',
+ 'curle_couldnt_resolve_host',
+ 'curle_couldnt_resolve_proxy',
+ 'curle_failed_init',
+ 'curle_file_couldnt_read_file',
+ 'curle_filesize_exceeded',
+ 'curle_ftp_access_denied',
+ 'curle_ftp_cant_get_host',
+ 'curle_ftp_cant_reconnect',
+ 'curle_ftp_couldnt_get_size',
+ 'curle_ftp_couldnt_retr_file',
+ 'curle_ftp_couldnt_set_ascii',
+ 'curle_ftp_couldnt_set_binary',
+ 'curle_ftp_couldnt_use_rest',
+ 'curle_ftp_port_failed',
+ 'curle_ftp_quote_error',
+ 'curle_ftp_ssl_failed',
+ 'curle_ftp_user_password_incorrect',
+ 'curle_ftp_weird_227_format',
+ 'curle_ftp_weird_pass_reply',
+ 'curle_ftp_weird_pasv_reply',
+ 'curle_ftp_weird_server_reply',
+ 'curle_ftp_weird_user_reply',
+ 'curle_ftp_write_error',
+ 'curle_function_not_found',
+ 'curle_got_nothing',
+ 'curle_http_post_error',
+ 'curle_http_range_error',
+ 'curle_http_returned_error',
+ 'curle_interface_failed',
+ 'curle_ldap_cannot_bind',
+ 'curle_ldap_invalid_url',
+ 'curle_ldap_search_failed',
+ 'curle_library_not_found',
+ 'curle_login_denied',
+ 'curle_malformat_user',
+ 'curle_obsolete',
+ 'curle_ok',
+ 'curle_operation_timeouted',
+ 'curle_out_of_memory',
+ 'curle_partial_file',
+ 'curle_read_error',
+ 'curle_recv_error',
+ 'curle_send_error',
+ 'curle_send_fail_rewind',
+ 'curle_share_in_use',
+ 'curle_ssl_cacert',
+ 'curle_ssl_certproblem',
+ 'curle_ssl_cipher',
+ 'curle_ssl_connect_error',
+ 'curle_ssl_engine_initfailed',
+ 'curle_ssl_engine_notfound',
+ 'curle_ssl_engine_setfailed',
+ 'curle_ssl_peer_certificate',
+ 'curle_telnet_option_syntax',
+ 'curle_too_many_redirects',
+ 'curle_unknown_telnet_option',
+ 'curle_unsupported_protocol',
+ 'curle_url_malformat_user',
+ 'curle_url_malformat',
+ 'curle_write_error',
+ 'curlftpauth_default',
+ 'curlftpauth_ssl',
+ 'curlftpauth_tls',
+ 'curlftpssl_all',
+ 'curlftpssl_control',
+ 'curlftpssl_last',
+ 'curlftpssl_none',
+ 'curlftpssl_try',
+ 'curlinfo_connect_time',
+ 'curlinfo_content_length_download',
+ 'curlinfo_content_length_upload',
'curlinfo_content_type',
- 'curlinfo_response_code',
- 'curlinfo_header_size',
- 'curlinfo_request_size',
- 'curlinfo_ssl_verifyresult',
+ 'curlinfo_effective_url',
'curlinfo_filetime',
- 'curlinfo_redirect_count',
+ 'curlinfo_header_size',
'curlinfo_http_connectcode',
'curlinfo_httpauth_avail',
- 'curlinfo_proxyauth_avail',
- 'curlinfo_os_errno',
- 'curlinfo_num_connects',
- 'curlinfo_total_time',
'curlinfo_namelookup_time',
- 'curlinfo_connect_time',
+ 'curlinfo_num_connects',
+ 'curlinfo_os_errno',
'curlinfo_pretransfer_time',
- 'curlinfo_size_upload',
+ 'curlinfo_proxyauth_avail',
+ 'curlinfo_redirect_count',
+ 'curlinfo_redirect_time',
+ 'curlinfo_request_size',
+ 'curlinfo_response_code',
'curlinfo_size_download',
+ 'curlinfo_size_upload',
'curlinfo_speed_download',
'curlinfo_speed_upload',
- 'curlinfo_content_length_download',
- 'curlinfo_content_length_upload',
- 'curlinfo_starttransfer_time',
- 'curlinfo_redirect_time',
'curlinfo_ssl_engines',
- 'curlopt_url',
- 'curlopt_postfields',
+ 'curlinfo_ssl_verifyresult',
+ 'curlinfo_starttransfer_time',
+ 'curlinfo_total_time',
+ 'curlmsg_done',
+ 'curlopt_autoreferer',
+ 'curlopt_buffersize',
'curlopt_cainfo',
'curlopt_capath',
+ 'curlopt_connecttimeout',
'curlopt_cookie',
'curlopt_cookiefile',
'curlopt_cookiejar',
- 'curlopt_customrequest',
- 'curlopt_egdsocket',
- 'curlopt_encoding',
- 'curlopt_ftp_account',
- 'curlopt_ftpport',
- 'curlopt_interface',
- 'curlopt_krb4level',
- 'curlopt_netrc_file',
- 'curlopt_proxy',
- 'curlopt_proxyuserpwd',
- 'curlopt_random_file',
- 'curlopt_range',
- 'curlopt_readdata',
- 'curlopt_referer',
- 'curlopt_ssl_cipher_list',
- 'curlopt_sslcert',
- 'curlopt_sslcerttype',
- 'curlopt_sslengine',
- 'curlopt_sslkey',
- 'curlopt_sslkeypasswd',
- 'curlopt_sslkeytype',
- 'curlopt_useragent',
- 'curlopt_userpwd',
- 'curlopt_postfieldsize',
- 'curlopt_autoreferer',
- 'curlopt_buffersize',
- 'curlopt_connecttimeout',
'curlopt_cookiesession',
'curlopt_crlf',
+ 'curlopt_customrequest',
'curlopt_dns_use_global_cache',
+ 'curlopt_egdsocket',
+ 'curlopt_encoding',
'curlopt_failonerror',
'curlopt_filetime',
'curlopt_followlocation',
'curlopt_forbid_reuse',
'curlopt_fresh_connect',
+ 'curlopt_ftp_account',
'curlopt_ftp_create_missing_dirs',
'curlopt_ftp_response_timeout',
'curlopt_ftp_ssl',
- 'curlopt_use_ssl',
'curlopt_ftp_use_eprt',
'curlopt_ftp_use_epsv',
'curlopt_ftpappend',
'curlopt_ftplistonly',
+ 'curlopt_ftpport',
'curlopt_ftpsslauth',
'curlopt_header',
'curlopt_http_version',
+ 'curlopt_http200aliases',
'curlopt_httpauth',
'curlopt_httpget',
+ 'curlopt_httpheader',
+ 'curlopt_httppost',
'curlopt_httpproxytunnel',
+ 'curlopt_infilesize_large',
'curlopt_infilesize',
+ 'curlopt_interface',
'curlopt_ipresolve',
+ 'curlopt_krb4level',
'curlopt_low_speed_limit',
'curlopt_low_speed_time',
+ 'curlopt_mail_from',
+ 'curlopt_mail_rcpt',
'curlopt_maxconnects',
+ 'curlopt_maxfilesize_large',
'curlopt_maxfilesize',
'curlopt_maxredirs',
+ 'curlopt_netrc_file',
'curlopt_netrc',
'curlopt_nobody',
'curlopt_noprogress',
'curlopt_port',
'curlopt_post',
+ 'curlopt_postfields',
+ 'curlopt_postfieldsize_large',
+ 'curlopt_postfieldsize',
+ 'curlopt_postquote',
+ 'curlopt_prequote',
+ 'curlopt_proxy',
'curlopt_proxyauth',
'curlopt_proxyport',
'curlopt_proxytype',
+ 'curlopt_proxyuserpwd',
'curlopt_put',
+ 'curlopt_quote',
+ 'curlopt_random_file',
+ 'curlopt_range',
+ 'curlopt_readdata',
+ 'curlopt_referer',
+ 'curlopt_resume_from_large',
'curlopt_resume_from',
+ 'curlopt_ssl_cipher_list',
'curlopt_ssl_verifyhost',
'curlopt_ssl_verifypeer',
+ 'curlopt_sslcert',
+ 'curlopt_sslcerttype',
'curlopt_sslengine_default',
+ 'curlopt_sslengine',
+ 'curlopt_sslkey',
+ 'curlopt_sslkeypasswd',
+ 'curlopt_sslkeytype',
'curlopt_sslversion',
'curlopt_tcp_nodelay',
'curlopt_timecondition',
@@ -991,860 +685,1221 @@ BUILTINS = {
'curlopt_transfertext',
'curlopt_unrestricted_auth',
'curlopt_upload',
+ 'curlopt_url',
+ 'curlopt_use_ssl',
+ 'curlopt_useragent',
+ 'curlopt_userpwd',
'curlopt_verbose',
- 'curlopt_infilesize_large',
- 'curlopt_maxfilesize_large',
- 'curlopt_postfieldsize_large',
- 'curlopt_resume_from_large',
- 'curlopt_http200aliases',
- 'curlopt_httpheader',
- 'curlopt_postquote',
- 'curlopt_prequote',
- 'curlopt_quote',
- 'curlopt_httppost',
'curlopt_writedata',
- 'curl_version_ipv6',
- 'curl_version_kerberos4',
- 'curl_version_ssl',
- 'curl_version_libz',
- 'curl_version_ntlm',
- 'curl_version_gssnegotiate',
- 'curl_version_debug',
- 'curl_version_asynchdns',
- 'curl_version_spnego',
- 'curl_version_largefile',
- 'curl_version_idn',
- 'curl_netrc_ignored',
- 'curl_netrc_optional',
- 'curl_netrc_required',
- 'curl_http_version_none',
- 'curl_http_version_1_0',
- 'curl_http_version_1_1',
- 'curl_ipresolve_whatever',
- 'curl_ipresolve_v4',
- 'curl_ipresolve_v6',
- 'curlftpssl_none',
- 'curlftpssl_try',
- 'curlftpssl_control',
- 'curlftpssl_all',
- 'curlftpssl_last',
- 'curlftpauth_default',
- 'curlftpauth_ssl',
- 'curlftpauth_tls',
- 'curlauth_none',
- 'curlauth_basic',
- 'curlauth_digest',
- 'curlauth_gssnegotiate',
- 'curlauth_ntlm',
- 'curlauth_any',
- 'curlauth_anysafe',
'curlproxy_http',
'curlproxy_socks4',
'curlproxy_socks5',
- 'curle_ok',
- 'curle_unsupported_protocol',
- 'curle_failed_init',
- 'curle_url_malformat',
- 'curle_url_malformat_user',
- 'curle_couldnt_resolve_proxy',
- 'curle_couldnt_resolve_host',
- 'curle_couldnt_connect',
- 'curle_ftp_weird_server_reply',
- 'curle_ftp_access_denied',
- 'curle_ftp_user_password_incorrect',
- 'curle_ftp_weird_pass_reply',
- 'curle_ftp_weird_user_reply',
- 'curle_ftp_weird_pasv_reply',
- 'curle_ftp_weird_227_format',
- 'curle_ftp_cant_get_host',
- 'curle_ftp_cant_reconnect',
- 'curle_ftp_couldnt_set_binary',
- 'curle_partial_file',
- 'curle_ftp_couldnt_retr_file',
- 'curle_ftp_write_error',
- 'curle_ftp_quote_error',
- 'curle_http_returned_error',
- 'curle_write_error',
- 'curle_malformat_user',
- 'curle_read_error',
- 'curle_out_of_memory',
- 'curle_operation_timeouted',
- 'curle_ftp_couldnt_set_ascii',
- 'curle_ftp_port_failed',
- 'curle_ftp_couldnt_use_rest',
- 'curle_ftp_couldnt_get_size',
- 'curle_http_range_error',
- 'curle_http_post_error',
- 'curle_ssl_connect_error',
- 'curle_bad_download_resume',
- 'curle_file_couldnt_read_file',
- 'curle_ldap_cannot_bind',
- 'curle_ldap_search_failed',
- 'curle_library_not_found',
- 'curle_function_not_found',
- 'curle_aborted_by_callback',
- 'curle_bad_function_argument',
- 'curle_bad_calling_order',
- 'curle_interface_failed',
- 'curle_bad_password_entered',
- 'curle_too_many_redirects',
- 'curle_unknown_telnet_option',
- 'curle_telnet_option_syntax',
- 'curle_obsolete',
- 'curle_ssl_peer_certificate',
- 'curle_got_nothing',
- 'curle_ssl_engine_notfound',
- 'curle_ssl_engine_setfailed',
- 'curle_send_error',
- 'curle_recv_error',
- 'curle_share_in_use',
- 'curle_ssl_certproblem',
- 'curle_ssl_cipher',
- 'curle_ssl_cacert',
- 'curle_bad_content_encoding',
- 'curle_ldap_invalid_url',
- 'curle_filesize_exceeded',
- 'curle_ftp_ssl_failed',
- 'curle_send_fail_rewind',
- 'curle_ssl_engine_initfailed',
- 'curle_login_denied',
- 'curlmsg_done',
- 'zip_open',
- 'zip_name_locate',
- 'zip_fopen',
- 'zip_fopen_index',
- 'zip_fread',
- 'zip_fclose',
- 'zip_close',
- 'zip_stat',
- 'zip_stat_index',
- 'zip_get_archive_comment',
- 'zip_get_file_comment',
- 'zip_get_name',
- 'zip_get_num_files',
- 'zip_add',
- 'zip_replace',
- 'zip_add_dir',
- 'zip_set_file_comment',
- 'zip_rename',
- 'zip_delete',
- 'zip_unchange',
- 'zip_unchange_all',
- 'zip_unchange_archive',
- 'zip_set_archive_comment',
- 'zip_error_to_str',
- 'zip_file_strerror',
- 'zip_strerror',
- 'zip_error_get',
- 'zip_file_error_get',
- 'zip_error_get_sys_type',
- 'zlib_version',
- 'fastcgi_initiate_request',
- 'debugging_enabled',
- 'debugging_stop',
- 'evdns_resolve_ipv4',
- 'evdns_resolve_ipv6',
- 'evdns_resolve_reverse',
- 'evdns_resolve_reverse_ipv6',
- 'stdout',
- 'stdoutnl',
- 'fail',
- 'fail_if',
- 'fail_ifnot',
- 'error_code',
- 'error_msg',
- 'error_obj',
- 'error_stack',
- 'error_push',
- 'error_pop',
- 'error_reset',
- 'error_msg_invalidparameter',
- 'error_code_invalidparameter',
- 'error_msg_networkerror',
- 'error_code_networkerror',
- 'error_msg_runtimeassertion',
- 'error_code_runtimeassertion',
- 'error_msg_methodnotfound',
- 'error_code_methodnotfound',
- 'error_msg_resnotfound',
- 'error_code_resnotfound',
- 'error_msg_filenotfound',
- 'error_code_filenotfound',
- 'error_msg_aborted',
- 'error_code_aborted',
- 'error_msg_dividebyzero',
- 'error_code_dividebyzero',
- 'error_msg_noerror',
- 'error_code_noerror',
- 'abort',
- 'protect',
- 'generateforeach',
- 'method_name',
- 'queriable_do',
- 'queriable_sum',
- 'queriable_average',
- 'queriable_min',
- 'queriable_max',
- 'queriable_internal_combinebindings',
- 'queriable_defaultcompare',
- 'queriable_reversecompare',
- 'queriable_qsort',
- 'timer',
- 'thread_var_push',
- 'thread_var_pop',
- 'thread_var_get',
- 'loop_value',
- 'loop_value_push',
- 'loop_value_pop',
- 'loop_key',
- 'loop_key_push',
- 'loop_key_pop',
- 'loop_push',
- 'loop_pop',
- 'loop_count',
- 'loop_continue',
- 'loop_abort',
- 'loop',
- 'sys_while',
- 'sys_iterate',
- 'string_validcharset',
- 'eol',
- 'encoding_utf8',
- 'encoding_iso88591',
- 'integer_random',
- 'integer_bitor',
- 'millis',
- 'micros',
- 'max',
- 'min',
- 'range',
- 'median',
- 'decimal_random',
- 'pi',
- 'lcapi_datasourceinit',
- 'lcapi_datasourceterm',
- 'lcapi_datasourcenames',
- 'lcapi_datasourcetablenames',
- 'lcapi_datasourcesearch',
- 'lcapi_datasourceadd',
- 'lcapi_datasourceupdate',
- 'lcapi_datasourcedelete',
- 'lcapi_datasourceinfo',
- 'lcapi_datasourceexecsql',
- 'lcapi_datasourcerandom',
- 'lcapi_datasourceschemanames',
- 'lcapi_datasourcecloseconnection',
- 'lcapi_datasourcetickle',
- 'lcapi_datasourceduplicate',
- 'lcapi_datasourcescripts',
- 'lcapi_datasourceimage',
- 'lcapi_datasourcefindall',
- 'lcapi_datasourcematchesname',
- 'lcapi_datasourcepreparesql',
- 'lcapi_datasourceunpreparesql',
- 'lcapi_datasourcenothing',
- 'lcapi_fourchartointeger',
- 'lcapi_datasourcetypestring',
- 'lcapi_datasourcetypeinteger',
- 'lcapi_datasourcetypeboolean',
- 'lcapi_datasourcetypeblob',
- 'lcapi_datasourcetypedecimal',
- 'lcapi_datasourcetypedate',
- 'lcapi_datasourceprotectionnone',
- 'lcapi_datasourceprotectionreadonly',
- 'lcapi_datasourceopgt',
- 'lcapi_datasourceopgteq',
- 'lcapi_datasourceopeq',
- 'lcapi_datasourceopneq',
- 'lcapi_datasourceoplt',
- 'lcapi_datasourceoplteq',
- 'lcapi_datasourceopbw',
- 'lcapi_datasourceopew',
- 'lcapi_datasourceopct',
- 'lcapi_datasourceopnct',
- 'lcapi_datasourceopnbw',
- 'lcapi_datasourceopnew',
- 'lcapi_datasourceopand',
- 'lcapi_datasourceopor',
- 'lcapi_datasourceopnot',
- 'lcapi_datasourceopno',
- 'lcapi_datasourceopany',
- 'lcapi_datasourceopin',
- 'lcapi_datasourceopnin',
- 'lcapi_datasourceopft',
- 'lcapi_datasourceoprx',
- 'lcapi_datasourceopnrx',
- 'lcapi_datasourcesortascending',
- 'lcapi_datasourcesortdescending',
- 'lcapi_datasourcesortcustom',
- 'lcapi_updatedatasourceslist',
- 'lcapi_loadmodules',
- 'lasso_version',
- 'lasso_uniqueid',
- 'usage',
- 'file_defaultencoding',
- 'file_copybuffersize',
- 'file_modeline',
- 'file_modechar',
- 'file_forceroot',
- 'file_tempfile',
- 'file_stdin',
- 'file_stdout',
- 'file_stderr',
- 'lasso_tagexists',
- 'lasso_methodexists',
- 'output',
- 'if_empty',
- 'if_null',
- 'if_true',
- 'if_false',
- 'process',
- 'treemap',
- 'locale_format',
- 'compress',
- 'uncompress',
- 'decompress',
- 'tag_name',
- 'series',
- 'nslookup',
- 'all',
- 'bw',
- 'cn',
- 'eq',
- 'ew',
- 'ft',
- 'gt',
- 'gte',
- 'lt',
- 'lte',
- 'neq',
- 'nrx',
- 'rx',
- 'none',
- 'minimal',
- 'full',
- 'output_none',
- 'lasso_executiontimelimit',
- 'namespace_global',
- 'namespace_using',
- 'namespace_import',
- 'site_id',
- 'site_name',
- 'sys_homepath',
- 'sys_masterhomepath',
- 'sys_supportpath',
- 'sys_librariespath',
- 'sys_databasespath',
- 'sys_usercapimodulepath',
- 'sys_appspath',
- 'sys_userstartuppath',
- 'ldap_scope_base',
- 'ldap_scope_onelevel',
- 'ldap_scope_subtree',
- 'mysqlds',
- 'odbc',
- 'sqliteconnector',
- 'sqlite_createdb',
- 'sqlite_setsleepmillis',
- 'sqlite_setsleeptries',
- 'java_jvm_getenv',
- 'java_jvm_create',
- 'java_jdbc_load',
+ 'database_adddefaultsqlitehost',
'database_database',
- 'database_table_datasources',
- 'database_table_datasource_hosts',
- 'database_table_datasource_databases',
+ 'database_initialize',
+ 'database_name',
+ 'database_qs',
'database_table_database_tables',
+ 'database_table_datasource_databases',
+ 'database_table_datasource_hosts',
+ 'database_table_datasources',
'database_table_table_fields',
- 'database_qs',
- 'database_initialize',
'database_util_cleanpath',
- 'database_adddefaultsqlitehost',
- 'sqlite_ok',
- 'sqlite_error',
- 'sqlite_internal',
- 'sqlite_perm',
- 'sqlite_abort',
- 'sqlite_busy',
- 'sqlite_locked',
- 'sqlite_nomem',
- 'sqlite_readonly',
- 'sqlite_interrupt',
- 'sqlite_ioerr',
- 'sqlite_corrupt',
- 'sqlite_notfound',
- 'sqlite_full',
- 'sqlite_cantopen',
- 'sqlite_protocol',
- 'sqlite_empty',
- 'sqlite_schema',
- 'sqlite_toobig',
- 'sqlite_constraint',
- 'sqlite_mismatch',
- 'sqlite_misuse',
- 'sqlite_nolfs',
- 'sqlite_auth',
- 'sqlite_format',
- 'sqlite_range',
- 'sqlite_notadb',
- 'sqlite_row',
- 'sqlite_done',
- 'sqlite_integer',
- 'sqlite_float',
- 'sqlite_blob',
- 'sqlite_null',
- 'sqlite_text',
- 'bom_utf16be',
- 'bom_utf16le',
- 'bom_utf32be',
- 'bom_utf32le',
- 'bom_utf8',
- 'include_url',
- 'ftp_getdata',
- 'ftp_getfile',
- 'ftp_getlisting',
- 'ftp_putdata',
- 'ftp_putfile',
- 'ftp_deletefile',
- 'debugging_step_in',
- 'debugging_get_stack',
- 'debugging_get_context',
- 'debugging_detach',
- 'debugging_step_over',
- 'debugging_step_out',
- 'debugging_run',
+ 'dbgp_stop_stack_name',
'debugging_break',
- 'debugging_breakpoint_set',
'debugging_breakpoint_get',
- 'debugging_breakpoint_remove',
'debugging_breakpoint_list',
+ 'debugging_breakpoint_remove',
+ 'debugging_breakpoint_set',
'debugging_breakpoint_update',
- 'debugging_terminate',
'debugging_context_locals',
- 'debugging_context_vars',
'debugging_context_self',
- 'dbgp_stop_stack_name',
- 'encrypt_md5',
- 'inline_columninfo_pos',
- 'inline_resultrows_pos',
- 'inline_foundcount_pos',
- 'inline_colinfo_name_pos',
- 'inline_colinfo_valuelist_pos',
- 'inline_scopeget',
- 'inline_scopepush',
- 'inline_scopepop',
- 'inline_namedget',
- 'inline_namedput',
- 'inline',
- 'resultset_count',
- 'resultset',
- 'resultsets',
- 'rows',
- 'rows_impl',
- 'records',
- 'column',
- 'field',
- 'column_names',
- 'field_names',
- 'column_name',
- 'field_name',
- 'found_count',
- 'shown_count',
- 'shown_first',
- 'shown_last',
- 'action_statement',
- 'lasso_currentaction',
- 'maxrecords_value',
- 'skiprecords_value',
- 'action_param',
- 'action_params',
- 'admin_authorization',
- 'admin_currentgroups',
- 'admin_currentuserid',
- 'admin_currentusername',
- 'database_name',
- 'table_name',
- 'layout_name',
- 'schema_name',
- 'keycolumn_name',
- 'keyfield_name',
- 'keycolumn_value',
- 'keyfield_value',
- 'inline_colinfo_type_pos',
- 'column_type',
- 'rows_array',
- 'records_array',
- 'records_map',
- 'json_serialize',
- 'json_consume_string',
- 'json_consume_token',
- 'json_consume_array',
- 'json_consume_object',
- 'json_deserialize',
- 'json_rpccall',
- 'ljapi_initialize',
- 'locale_format_style_full',
- 'locale_format_style_long',
- 'locale_format_style_medium',
- 'locale_format_style_short',
- 'locale_format_style_default',
- 'locale_format_style_none',
- 'locale_format_style_date_time',
- 'net_connectinprogress',
- 'net_connectok',
- 'net_typessl',
- 'net_typessltcp',
- 'net_typessludp',
- 'net_typetcp',
- 'net_typeudp',
- 'net_waitread',
- 'net_waittimeout',
- 'net_waitwrite',
- 'admin_initialize',
- 'admin_getpref',
- 'admin_setpref',
- 'admin_removepref',
- 'admin_userexists',
- 'admin_lassoservicepath',
- 'pdf_package',
- 'pdf_rectangle',
- 'pdf_serve',
- 'random_seed',
- 'xml',
- 'xml_transform',
- 'zip_create',
- 'zip_excl',
- 'zip_checkcons',
- 'zip_fl_nocase',
- 'zip_fl_nodir',
- 'zip_fl_compressed',
- 'zip_fl_unchanged',
- 'zip_er_ok',
- 'zip_er_multidisk',
- 'zip_er_rename',
- 'zip_er_close',
- 'zip_er_seek',
- 'zip_er_read',
- 'zip_er_write',
- 'zip_er_crc',
- 'zip_er_zipclosed',
- 'zip_er_noent',
- 'zip_er_exists',
- 'zip_er_open',
- 'zip_er_tmpopen',
- 'zip_er_zlib',
- 'zip_er_memory',
- 'zip_er_changed',
- 'zip_er_compnotsupp',
- 'zip_er_eof',
- 'zip_er_inval',
- 'zip_er_nozip',
- 'zip_er_internal',
- 'zip_er_incons',
- 'zip_er_remove',
- 'zip_er_deleted',
- 'zip_et_none',
- 'zip_et_sys',
- 'zip_et_zlib',
- 'zip_cm_default',
- 'zip_cm_store',
- 'zip_cm_shrink',
- 'zip_cm_reduce_1',
- 'zip_cm_reduce_2',
- 'zip_cm_reduce_3',
- 'zip_cm_reduce_4',
- 'zip_cm_implode',
- 'zip_cm_deflate',
- 'zip_cm_deflate64',
- 'zip_cm_pkware_implode',
- 'zip_cm_bzip2',
- 'zip_em_none',
- 'zip_em_trad_pkware',
- 'zip_em_des',
- 'zip_em_rc2_old',
- 'zip_em_3des_168',
- 'zip_em_3des_112',
- 'zip_em_aes_128',
- 'zip_em_aes_192',
- 'zip_em_aes_256',
- 'zip_em_rc2',
- 'zip_em_rc4',
- 'zip_em_unknown',
- 'dns_lookup',
+ 'debugging_context_vars',
+ 'debugging_detach',
+ 'debugging_enabled',
+ 'debugging_get_context',
+ 'debugging_get_stack',
+ 'debugging_run',
+ 'debugging_step_in',
+ 'debugging_step_out',
+ 'debugging_step_over',
+ 'debugging_stop',
+ 'debugging_terminate',
+ 'decimal_random',
+ 'decompress',
+ 'decrypt_blowfish',
+ 'define_atbegin',
+ 'define_atend',
'dns_default',
- 'string_charfromname',
- 'string_concatenate',
- 'string_endswith',
- 'string_extract',
- 'string_findposition',
- 'string_findregexp',
- 'string_getunicodeversion',
- 'string_insert',
- 'string_isalpha',
- 'string_isalphanumeric',
- 'string_isdigit',
- 'string_ishexdigit',
- 'string_islower',
- 'string_isnumeric',
- 'string_ispunctuation',
- 'string_isspace',
- 'string_isupper',
- 'string_length',
- 'string_remove',
- 'string_removeleading',
- 'string_removetrailing',
- 'string_replace',
- 'string_replaceregexp',
- 'string_todecimal',
- 'string_tointeger',
- 'string_uppercase',
- 'string_lowercase',
+ 'dns_lookup',
'document',
'email_attachment_mime_type',
- 'email_translatebreakstocrlf',
+ 'email_batch',
+ 'email_digestchallenge',
+ 'email_digestresponse',
+ 'email_extract',
'email_findemails',
- 'email_fix_address',
'email_fix_address_list',
- 'encode_qheader',
- 'email_send',
- 'email_queue',
+ 'email_fix_address',
+ 'email_fs_error_clean',
'email_immediate',
- 'email_result',
- 'email_status',
- 'email_token',
+ 'email_initialize',
'email_merge',
- 'email_batch',
- 'email_safeemail',
- 'email_extract',
- 'email_pop_priv_substring',
+ 'email_mxlookup',
'email_pop_priv_extract',
- 'email_digestchallenge',
'email_pop_priv_quote',
- 'email_digestresponse',
- 'encrypt_hmac',
+ 'email_pop_priv_substring',
+ 'email_queue',
+ 'email_result',
+ 'email_safeemail',
+ 'email_send',
+ 'email_status',
+ 'email_token',
+ 'email_translatebreakstocrlf',
+ 'encode_qheader',
+ 'encoding_iso88591',
+ 'encoding_utf8',
+ 'encrypt_blowfish',
'encrypt_crammd5',
- 'email_fs_error_clean',
- 'email_initialize',
- 'email_mxlookup',
- 'lasso_errorreporting',
- 'fcgi_version_1',
- 'fcgi_null_request_id',
- 'fcgi_begin_request',
+ 'encrypt_hmac',
+ 'encrypt_md5',
+ 'eol',
+ 'eq',
+ 'error_code_aborted',
+ 'error_code_dividebyzero',
+ 'error_code_filenotfound',
+ 'error_code_invalidparameter',
+ 'error_code_methodnotfound',
+ 'error_code_networkerror',
+ 'error_code_noerror',
+ 'error_code_resnotfound',
+ 'error_code_runtimeassertion',
+ 'error_code',
+ 'error_msg_aborted',
+ 'error_msg_dividebyzero',
+ 'error_msg_filenotfound',
+ 'error_msg_invalidparameter',
+ 'error_msg_methodnotfound',
+ 'error_msg_networkerror',
+ 'error_msg_noerror',
+ 'error_msg_resnotfound',
+ 'error_msg_runtimeassertion',
+ 'error_msg',
+ 'error_obj',
+ 'error_pop',
+ 'error_push',
+ 'error_reset',
+ 'error_stack',
+ 'escape_tag',
+ 'evdns_resolve_ipv4',
+ 'evdns_resolve_ipv6',
+ 'evdns_resolve_reverse_ipv6',
+ 'evdns_resolve_reverse',
+ 'ew',
+ 'fail_if',
+ 'fail_ifnot',
+ 'fail_now',
+ 'fail',
+ 'failure_clear',
+ 'fastcgi_createfcgirequest',
+ 'fastcgi_handlecon',
+ 'fastcgi_handlereq',
+ 'fastcgi_initialize',
+ 'fastcgi_initiate_request',
'fcgi_abort_request',
- 'fcgi_end_request',
- 'fcgi_params',
- 'fcgi_stdin',
- 'fcgi_stdout',
- 'fcgi_stderr',
+ 'fcgi_authorize',
+ 'fcgi_begin_request',
+ 'fcgi_bodychunksize',
+ 'fcgi_cant_mpx_conn',
'fcgi_data',
- 'fcgi_get_values',
+ 'fcgi_end_request',
+ 'fcgi_filter',
'fcgi_get_values_result',
- 'fcgi_unknown_type',
+ 'fcgi_get_values',
'fcgi_keep_conn',
- 'fcgi_responder',
- 'fcgi_authorize',
- 'fcgi_filter',
- 'fcgi_request_complete',
- 'fcgi_cant_mpx_conn',
- 'fcgi_overloaded',
- 'fcgi_unknown_role',
+ 'fcgi_makeendrequestbody',
+ 'fcgi_makestdoutbody',
'fcgi_max_conns',
'fcgi_max_reqs',
'fcgi_mpxs_conns',
+ 'fcgi_null_request_id',
+ 'fcgi_overloaded',
+ 'fcgi_params',
'fcgi_read_timeout_seconds',
- 'fcgi_makeendrequestbody',
- 'fcgi_bodychunksize',
- 'fcgi_makestdoutbody',
'fcgi_readparam',
- 'web_request',
- 'include_cache_compare',
- 'fastcgi_initialize',
- 'fastcgi_handlecon',
- 'fastcgi_handlereq',
- 'fastcgi_createfcgirequest',
- 'web_handlefcgirequest',
+ 'fcgi_request_complete',
+ 'fcgi_responder',
+ 'fcgi_stderr',
+ 'fcgi_stdin',
+ 'fcgi_stdout',
+ 'fcgi_unknown_role',
+ 'fcgi_unknown_type',
+ 'fcgi_version_1',
+ 'fcgi_x_stdin',
+ 'field_name',
+ 'field_names',
+ 'field',
+ 'file_copybuffersize',
+ 'file_defaultencoding',
+ 'file_forceroot',
+ 'file_modechar',
+ 'file_modeline',
+ 'file_stderr',
+ 'file_stdin',
+ 'file_stdout',
+ 'file_tempfile',
'filemakerds_initialize',
'filemakerds',
- 'value_listitem',
- 'valuelistitem',
- 'selected',
- 'checked',
- 'value_list',
- 'http_char_space',
- 'http_char_htab',
+ 'found_count',
+ 'ft',
+ 'ftp_deletefile',
+ 'ftp_getdata',
+ 'ftp_getfile',
+ 'ftp_getlisting',
+ 'ftp_putdata',
+ 'ftp_putfile',
+ 'full',
+ 'generateforeach',
+ 'gt',
+ 'gte',
+ 'handle_failure',
+ 'handle',
+ 'hash_primes',
+ 'html_comment',
+ 'http_char_colon',
'http_char_cr',
+ 'http_char_htab',
'http_char_lf',
'http_char_question',
- 'http_char_colon',
- 'http_read_timeout_secs',
+ 'http_char_space',
'http_default_files',
+ 'http_read_headers',
+ 'http_read_timeout_secs',
'http_server_apps_path',
+ 'http_server_request_logger',
+ 'if_empty',
+ 'if_false',
+ 'if_null',
+ 'if_true',
+ 'include_cache_compare',
+ 'include_currentpath',
+ 'include_filepath',
+ 'include_localpath',
+ 'include_once',
+ 'include_path',
+ 'include_raw',
+ 'include_url',
+ 'include',
+ 'includes',
+ 'inline_colinfo_name_pos',
+ 'inline_colinfo_type_pos',
+ 'inline_colinfo_valuelist_pos',
+ 'inline_columninfo_pos',
+ 'inline_foundcount_pos',
+ 'inline_namedget',
+ 'inline_namedput',
+ 'inline_resultrows_pos',
+ 'inline_scopeget',
+ 'inline_scopepop',
+ 'inline_scopepush',
+ 'inline',
+ 'integer_bitor',
+ 'integer_random',
+ 'io_dir_dt_blk',
+ 'io_dir_dt_chr',
+ 'io_dir_dt_dir',
+ 'io_dir_dt_fifo',
+ 'io_dir_dt_lnk',
+ 'io_dir_dt_reg',
+ 'io_dir_dt_sock',
+ 'io_dir_dt_unknown',
+ 'io_dir_dt_wht',
+ 'io_file_access',
+ 'io_file_chdir',
+ 'io_file_chmod',
+ 'io_file_chown',
+ 'io_file_dirname',
+ 'io_file_f_dupfd',
+ 'io_file_f_getfd',
+ 'io_file_f_getfl',
+ 'io_file_f_getlk',
+ 'io_file_f_rdlck',
+ 'io_file_f_setfd',
+ 'io_file_f_setfl',
+ 'io_file_f_setlk',
+ 'io_file_f_setlkw',
+ 'io_file_f_test',
+ 'io_file_f_tlock',
+ 'io_file_f_ulock',
+ 'io_file_f_unlck',
+ 'io_file_f_wrlck',
+ 'io_file_fd_cloexec',
+ 'io_file_fioasync',
+ 'io_file_fioclex',
+ 'io_file_fiodtype',
+ 'io_file_fiogetown',
+ 'io_file_fionbio',
+ 'io_file_fionclex',
+ 'io_file_fionread',
+ 'io_file_fiosetown',
+ 'io_file_getcwd',
+ 'io_file_lchown',
+ 'io_file_link',
+ 'io_file_lockf',
+ 'io_file_lstat_atime',
+ 'io_file_lstat_mode',
+ 'io_file_lstat_mtime',
+ 'io_file_lstat_size',
+ 'io_file_mkdir',
+ 'io_file_mkfifo',
+ 'io_file_mkstemp',
+ 'io_file_o_append',
+ 'io_file_o_async',
+ 'io_file_o_creat',
+ 'io_file_o_excl',
+ 'io_file_o_exlock',
+ 'io_file_o_fsync',
+ 'io_file_o_nofollow',
+ 'io_file_o_nonblock',
+ 'io_file_o_rdonly',
+ 'io_file_o_rdwr',
+ 'io_file_o_shlock',
+ 'io_file_o_sync',
+ 'io_file_o_trunc',
+ 'io_file_o_wronly',
+ 'io_file_pipe',
+ 'io_file_readlink',
+ 'io_file_realpath',
+ 'io_file_remove',
+ 'io_file_rename',
+ 'io_file_rmdir',
+ 'io_file_s_ifblk',
+ 'io_file_s_ifchr',
+ 'io_file_s_ifdir',
+ 'io_file_s_ififo',
+ 'io_file_s_iflnk',
+ 'io_file_s_ifmt',
+ 'io_file_s_ifreg',
+ 'io_file_s_ifsock',
+ 'io_file_s_irgrp',
+ 'io_file_s_iroth',
+ 'io_file_s_irusr',
+ 'io_file_s_irwxg',
+ 'io_file_s_irwxo',
+ 'io_file_s_irwxu',
+ 'io_file_s_isgid',
+ 'io_file_s_isuid',
+ 'io_file_s_isvtx',
+ 'io_file_s_iwgrp',
+ 'io_file_s_iwoth',
+ 'io_file_s_iwusr',
+ 'io_file_s_ixgrp',
+ 'io_file_s_ixoth',
+ 'io_file_s_ixusr',
+ 'io_file_seek_cur',
+ 'io_file_seek_end',
+ 'io_file_seek_set',
+ 'io_file_stat_atime',
+ 'io_file_stat_mode',
+ 'io_file_stat_mtime',
+ 'io_file_stat_size',
+ 'io_file_stderr',
+ 'io_file_stdin',
+ 'io_file_stdout',
+ 'io_file_symlink',
+ 'io_file_tempnam',
+ 'io_file_truncate',
+ 'io_file_umask',
+ 'io_file_unlink',
+ 'io_net_accept',
+ 'io_net_af_inet',
+ 'io_net_af_inet6',
+ 'io_net_af_unix',
+ 'io_net_bind',
+ 'io_net_connect',
+ 'io_net_getpeername',
+ 'io_net_getsockname',
+ 'io_net_ipproto_ip',
+ 'io_net_ipproto_udp',
+ 'io_net_listen',
+ 'io_net_msg_oob',
+ 'io_net_msg_peek',
+ 'io_net_msg_waitall',
+ 'io_net_recv',
+ 'io_net_recvfrom',
+ 'io_net_send',
+ 'io_net_sendto',
+ 'io_net_shut_rd',
+ 'io_net_shut_rdwr',
+ 'io_net_shut_wr',
+ 'io_net_shutdown',
+ 'io_net_so_acceptconn',
+ 'io_net_so_broadcast',
+ 'io_net_so_debug',
+ 'io_net_so_dontroute',
+ 'io_net_so_error',
+ 'io_net_so_keepalive',
+ 'io_net_so_linger',
+ 'io_net_so_oobinline',
+ 'io_net_so_rcvbuf',
+ 'io_net_so_rcvlowat',
+ 'io_net_so_rcvtimeo',
+ 'io_net_so_reuseaddr',
+ 'io_net_so_sndbuf',
+ 'io_net_so_sndlowat',
+ 'io_net_so_sndtimeo',
+ 'io_net_so_timestamp',
+ 'io_net_so_type',
+ 'io_net_so_useloopback',
+ 'io_net_sock_dgram',
+ 'io_net_sock_raw',
+ 'io_net_sock_rdm',
+ 'io_net_sock_seqpacket',
+ 'io_net_sock_stream',
+ 'io_net_socket',
+ 'io_net_sol_socket',
+ 'io_net_ssl_accept',
+ 'io_net_ssl_begin',
+ 'io_net_ssl_connect',
+ 'io_net_ssl_end',
+ 'io_net_ssl_error',
+ 'io_net_ssl_errorstring',
+ 'io_net_ssl_funcerrorstring',
+ 'io_net_ssl_liberrorstring',
+ 'io_net_ssl_read',
+ 'io_net_ssl_reasonerrorstring',
+ 'io_net_ssl_setacceptstate',
+ 'io_net_ssl_setconnectstate',
+ 'io_net_ssl_setverifylocations',
+ 'io_net_ssl_shutdown',
+ 'io_net_ssl_usecertificatechainfile',
+ 'io_net_ssl_useprivatekeyfile',
+ 'io_net_ssl_write',
+ 'java_jvm_create',
+ 'java_jvm_getenv',
'jdbc_initialize',
- 'lassoapp_settingsdb',
+ 'json_back_slash',
+ 'json_back_space',
+ 'json_close_array',
+ 'json_close_object',
+ 'json_colon',
+ 'json_comma',
+ 'json_consume_array',
+ 'json_consume_object',
+ 'json_consume_string',
+ 'json_consume_token',
+ 'json_cr',
+ 'json_debug',
+ 'json_deserialize',
+ 'json_e_lower',
+ 'json_e_upper',
+ 'json_f_lower',
+ 'json_form_feed',
+ 'json_forward_slash',
+ 'json_lf',
+ 'json_n_lower',
+ 'json_negative',
+ 'json_open_array',
+ 'json_open_object',
+ 'json_period',
+ 'json_quote_double',
+ 'json_rpccall',
+ 'json_serialize',
+ 'json_t_lower',
+ 'json_tab',
+ 'json_white_space',
+ 'keycolumn_name',
+ 'keycolumn_value',
+ 'keyfield_name',
+ 'keyfield_value',
+ 'lasso_currentaction',
+ 'lasso_errorreporting',
+ 'lasso_executiontimelimit',
+ 'lasso_methodexists',
+ 'lasso_tagexists',
+ 'lasso_uniqueid',
+ 'lasso_version',
+ 'lassoapp_current_app',
+ 'lassoapp_current_include',
+ 'lassoapp_do_with_include',
+ 'lassoapp_exists',
+ 'lassoapp_find_missing_file',
'lassoapp_format_mod_date',
+ 'lassoapp_get_capabilities_name',
'lassoapp_include_current',
'lassoapp_include',
- 'lassoapp_find_missing_file',
- 'lassoapp_get_capabilities_name',
- 'lassoapp_exists',
- 'lassoapp_path_to_method_name',
- 'lassoapp_invoke_resource',
'lassoapp_initialize_db',
'lassoapp_initialize',
+ 'lassoapp_invoke_resource',
'lassoapp_issourcefileextension',
- 'lassoapp_current_include',
- 'lassoapp_current_app',
- 'lassoapp_do_with_include',
'lassoapp_link',
'lassoapp_load_module',
- 'lassoapp_mime_type_html',
- 'lassoapp_mime_type_lasso',
- 'lassoapp_mime_type_xml',
- 'lassoapp_mime_type_ppt',
- 'lassoapp_mime_type_js',
- 'lassoapp_mime_type_txt',
- 'lassoapp_mime_type_jpg',
- 'lassoapp_mime_type_png',
- 'lassoapp_mime_type_gif',
+ 'lassoapp_mime_get',
+ 'lassoapp_mime_type_appcache',
'lassoapp_mime_type_css',
'lassoapp_mime_type_csv',
- 'lassoapp_mime_type_tif',
+ 'lassoapp_mime_type_doc',
+ 'lassoapp_mime_type_docx',
+ 'lassoapp_mime_type_eof',
+ 'lassoapp_mime_type_eot',
+ 'lassoapp_mime_type_gif',
+ 'lassoapp_mime_type_html',
'lassoapp_mime_type_ico',
- 'lassoapp_mime_type_rss',
- 'lassoapp_mime_type_xhr',
+ 'lassoapp_mime_type_jpg',
+ 'lassoapp_mime_type_js',
+ 'lassoapp_mime_type_lasso',
+ 'lassoapp_mime_type_map',
'lassoapp_mime_type_pdf',
- 'lassoapp_mime_type_docx',
- 'lassoapp_mime_type_doc',
- 'lassoapp_mime_type_zip',
+ 'lassoapp_mime_type_png',
+ 'lassoapp_mime_type_ppt',
+ 'lassoapp_mime_type_rss',
'lassoapp_mime_type_svg',
+ 'lassoapp_mime_type_swf',
+ 'lassoapp_mime_type_tif',
'lassoapp_mime_type_ttf',
+ 'lassoapp_mime_type_txt',
'lassoapp_mime_type_woff',
- 'lassoapp_mime_type_swf',
- 'lassoapp_mime_get',
+ 'lassoapp_mime_type_xaml',
+ 'lassoapp_mime_type_xap',
+ 'lassoapp_mime_type_xbap',
+ 'lassoapp_mime_type_xhr',
+ 'lassoapp_mime_type_xml',
+ 'lassoapp_mime_type_zip',
+ 'lassoapp_path_to_method_name',
+ 'lassoapp_settingsdb',
+ 'layout_name',
+ 'lcapi_datasourceadd',
+ 'lcapi_datasourcecloseconnection',
+ 'lcapi_datasourcedelete',
+ 'lcapi_datasourceduplicate',
+ 'lcapi_datasourceexecsql',
+ 'lcapi_datasourcefindall',
+ 'lcapi_datasourceimage',
+ 'lcapi_datasourceinfo',
+ 'lcapi_datasourceinit',
+ 'lcapi_datasourcematchesname',
+ 'lcapi_datasourcenames',
+ 'lcapi_datasourcenothing',
+ 'lcapi_datasourceopand',
+ 'lcapi_datasourceopany',
+ 'lcapi_datasourceopbw',
+ 'lcapi_datasourceopct',
+ 'lcapi_datasourceopeq',
+ 'lcapi_datasourceopew',
+ 'lcapi_datasourceopft',
+ 'lcapi_datasourceopgt',
+ 'lcapi_datasourceopgteq',
+ 'lcapi_datasourceopin',
+ 'lcapi_datasourceoplt',
+ 'lcapi_datasourceoplteq',
+ 'lcapi_datasourceopnbw',
+ 'lcapi_datasourceopnct',
+ 'lcapi_datasourceopneq',
+ 'lcapi_datasourceopnew',
+ 'lcapi_datasourceopnin',
+ 'lcapi_datasourceopno',
+ 'lcapi_datasourceopnot',
+ 'lcapi_datasourceopnrx',
+ 'lcapi_datasourceopor',
+ 'lcapi_datasourceoprx',
+ 'lcapi_datasourcepreparesql',
+ 'lcapi_datasourceprotectionnone',
+ 'lcapi_datasourceprotectionreadonly',
+ 'lcapi_datasourcerandom',
+ 'lcapi_datasourceschemanames',
+ 'lcapi_datasourcescripts',
+ 'lcapi_datasourcesearch',
+ 'lcapi_datasourcesortascending',
+ 'lcapi_datasourcesortcustom',
+ 'lcapi_datasourcesortdescending',
+ 'lcapi_datasourcetablenames',
+ 'lcapi_datasourceterm',
+ 'lcapi_datasourcetickle',
+ 'lcapi_datasourcetypeblob',
+ 'lcapi_datasourcetypeboolean',
+ 'lcapi_datasourcetypedate',
+ 'lcapi_datasourcetypedecimal',
+ 'lcapi_datasourcetypeinteger',
+ 'lcapi_datasourcetypestring',
+ 'lcapi_datasourceunpreparesql',
+ 'lcapi_datasourceupdate',
+ 'lcapi_fourchartointeger',
+ 'lcapi_listdatasources',
+ 'lcapi_loadmodule',
+ 'lcapi_loadmodules',
+ 'lcapi_updatedatasourceslist',
+ 'ldap_scope_base',
+ 'ldap_scope_onelevel',
+ 'ldap_scope_subtree',
+ 'library_once',
+ 'library',
+ 'ljapi_initialize',
+ 'locale_availablelocales',
+ 'locale_canada',
+ 'locale_canadafrench',
+ 'locale_china',
+ 'locale_chinese',
+ 'locale_default',
+ 'locale_english',
+ 'locale_format_style_date_time',
+ 'locale_format_style_default',
+ 'locale_format_style_full',
+ 'locale_format_style_long',
+ 'locale_format_style_medium',
+ 'locale_format_style_none',
+ 'locale_format_style_short',
+ 'locale_format',
+ 'locale_france',
+ 'locale_french',
+ 'locale_german',
+ 'locale_germany',
+ 'locale_isocountries',
+ 'locale_isolanguages',
+ 'locale_italian',
+ 'locale_italy',
+ 'locale_japan',
+ 'locale_japanese',
+ 'locale_korea',
+ 'locale_korean',
+ 'locale_prc',
+ 'locale_setdefault',
+ 'locale_simplifiedchinese',
+ 'locale_taiwan',
+ 'locale_traditionalchinese',
+ 'locale_uk',
+ 'locale_us',
+ 'log_always',
+ 'log_critical',
+ 'log_deprecated',
+ 'log_destination_console',
+ 'log_destination_database',
+ 'log_destination_file',
+ 'log_detail',
+ 'log_initialize',
'log_level_critical',
- 'log_level_warning',
+ 'log_level_deprecated',
'log_level_detail',
'log_level_sql',
- 'log_level_deprecated',
- 'log_destination_console',
- 'log_destination_file',
- 'log_destination_database',
- 'log',
+ 'log_level_warning',
+ 'log_max_file_size',
'log_setdestination',
- 'log_always',
- 'log_critical',
- 'log_warning',
- 'log_detail',
'log_sql',
- 'log_deprecated',
- 'log_max_file_size',
'log_trim_file_size',
- 'log_initialize',
- 'portal',
- 'security_database',
- 'security_table_groups',
- 'security_table_users',
- 'security_table_ug_map',
- 'security_default_realm',
- 'security_initialize',
- 'session_initialize',
- 'session_getdefaultdriver',
- 'session_setdefaultdriver',
- 'session_start',
- 'session_addvar',
- 'session_removevar',
- 'session_end',
- 'session_id',
- 'session_abort',
- 'session_result',
- 'session_deleteexpired',
+ 'log_warning',
+ 'log',
+ 'loop_abort',
+ 'loop_continue',
+ 'loop_count',
+ 'loop_key_pop',
+ 'loop_key_push',
+ 'loop_key',
+ 'loop_pop',
+ 'loop_push',
+ 'loop_value_pop',
+ 'loop_value_push',
+ 'loop_value',
+ 'loop',
+ 'lt',
+ 'lte',
+ 'main_thread_only',
+ 'max',
+ 'maxrecords_value',
+ 'median',
+ 'method_name',
+ 'micros',
+ 'millis',
+ 'min',
+ 'minimal',
+ 'mongo_insert_continue_on_error',
+ 'mongo_insert_no_validate',
+ 'mongo_insert_none',
+ 'mongo_query_await_data',
+ 'mongo_query_exhaust',
+ 'mongo_query_no_cursor_timeout',
+ 'mongo_query_none',
+ 'mongo_query_oplog_replay',
+ 'mongo_query_partial',
+ 'mongo_query_slave_ok',
+ 'mongo_query_tailable_cursor',
+ 'mongo_remove_none',
+ 'mongo_remove_single_remove',
+ 'mongo_update_multi_update',
+ 'mongo_update_no_validate',
+ 'mongo_update_none',
+ 'mongo_update_upsert',
+ 'mustache_compile_file',
+ 'mustache_compile_string',
+ 'mustache_include',
+ 'mysqlds',
+ 'namespace_global',
+ 'namespace_import',
+ 'namespace_using',
+ 'nbw',
+ 'ncn',
+ 'neq',
+ 'net_connectinprogress',
+ 'net_connectok',
+ 'net_typessl',
+ 'net_typessltcp',
+ 'net_typessludp',
+ 'net_typetcp',
+ 'net_typeudp',
+ 'net_waitread',
+ 'net_waittimeout',
+ 'net_waitwrite',
+ 'new',
+ 'none',
+ 'nrx',
+ 'nslookup',
'odbc_session_driver_mssql',
- 'session_decorate',
- 'auth_admin',
- 'auth_check',
- 'auth_custom',
- 'auth_group',
- 'auth_prompt',
- 'auth_user',
- 'client_addr',
- 'client_authorization',
- 'client_browser',
- 'client_contentlength',
- 'client_contenttype',
- 'client_cookielist',
- 'client_cookies',
- 'client_encoding',
- 'client_formmethod',
- 'client_getargs',
- 'client_getparams',
- 'client_getparam',
- 'client_headers',
- 'client_integertoip',
- 'client_iptointeger',
- 'client_password',
- 'client_postargs',
- 'client_postparams',
- 'client_postparam',
- 'client_type',
- 'client_username',
- 'client_url',
+ 'odbc',
+ 'output_none',
+ 'output',
+ 'pdf_package',
+ 'pdf_rectangle',
+ 'pdf_serve',
+ 'pi',
+ 'portal',
+ 'postgresql',
+ 'process',
+ 'protect_now',
+ 'protect',
+ 'queriable_average',
+ 'queriable_defaultcompare',
+ 'queriable_do',
+ 'queriable_internal_combinebindings',
+ 'queriable_max',
+ 'queriable_min',
+ 'queriable_qsort',
+ 'queriable_reversecompare',
+ 'queriable_sum',
+ 'random_seed',
+ 'range',
+ 'records_array',
+ 'records_map',
+ 'records',
+ 'redirect_url',
'referer_url',
'referrer_url',
- 'content_type',
- 'content_encoding',
- 'cookie',
- 'cookie_set',
- 'include',
- 'include_currentpath',
- 'include_filepath',
- 'include_localpath',
- 'include_once',
- 'include_path',
- 'include_raw',
- 'includes',
- 'library',
- 'library_once',
+ 'register_thread',
+ 'register',
'response_filepath',
'response_localpath',
'response_path',
'response_realm',
'response_root',
- 'redirect_url',
+ 'resultset_count',
+ 'resultset',
+ 'resultsets',
+ 'rows_array',
+ 'rows_impl',
+ 'rows',
+ 'rx',
+ 'schema_name',
+ 'security_database',
+ 'security_default_realm',
+ 'security_initialize',
+ 'security_table_groups',
+ 'security_table_ug_map',
+ 'security_table_users',
+ 'selected',
+ 'series',
'server_admin',
- 'server_name',
'server_ip',
+ 'server_name',
'server_port',
'server_protocol',
+ 'server_push',
'server_signature',
'server_software',
- 'server_push',
+ 'session_abort',
+ 'session_addvar',
+ 'session_decorate',
+ 'session_deleteexpired',
+ 'session_end',
+ 'session_getdefaultdriver',
+ 'session_id',
+ 'session_initialize',
+ 'session_removevar',
+ 'session_result',
+ 'session_setdefaultdriver',
+ 'session_start',
+ 'shown_count',
+ 'shown_first',
+ 'shown_last',
+ 'site_id',
+ 'site_name',
+ 'skiprecords_value',
+ 'sleep',
+ 'split_thread',
+ 'sqlite_abort',
+ 'sqlite_auth',
+ 'sqlite_blob',
+ 'sqlite_busy',
+ 'sqlite_cantopen',
+ 'sqlite_constraint',
+ 'sqlite_corrupt',
+ 'sqlite_createdb',
+ 'sqlite_done',
+ 'sqlite_empty',
+ 'sqlite_error',
+ 'sqlite_float',
+ 'sqlite_format',
+ 'sqlite_full',
+ 'sqlite_integer',
+ 'sqlite_internal',
+ 'sqlite_interrupt',
+ 'sqlite_ioerr',
+ 'sqlite_locked',
+ 'sqlite_mismatch',
+ 'sqlite_misuse',
+ 'sqlite_nolfs',
+ 'sqlite_nomem',
+ 'sqlite_notadb',
+ 'sqlite_notfound',
+ 'sqlite_null',
+ 'sqlite_ok',
+ 'sqlite_perm',
+ 'sqlite_protocol',
+ 'sqlite_range',
+ 'sqlite_readonly',
+ 'sqlite_row',
+ 'sqlite_schema',
+ 'sqlite_setsleepmillis',
+ 'sqlite_setsleeptries',
+ 'sqlite_text',
+ 'sqlite_toobig',
+ 'sqliteconnector',
+ 'staticarray_join',
+ 'stdout',
+ 'stdoutnl',
+ 'string_validcharset',
+ 'suspend',
+ 'sys_appspath',
+ 'sys_chroot',
+ 'sys_clock',
+ 'sys_clockspersec',
+ 'sys_credits',
+ 'sys_databasespath',
+ 'sys_detach_exec',
+ 'sys_difftime',
+ 'sys_dll_ext',
+ 'sys_drand48',
+ 'sys_environ',
+ 'sys_eol',
+ 'sys_erand48',
+ 'sys_errno',
+ 'sys_exec_pid_to_os_pid',
+ 'sys_exec',
+ 'sys_exit',
+ 'sys_fork',
+ 'sys_garbagecollect',
+ 'sys_getbytessincegc',
+ 'sys_getchar',
+ 'sys_getegid',
+ 'sys_getenv',
+ 'sys_geteuid',
+ 'sys_getgid',
+ 'sys_getgrnam',
+ 'sys_getheapfreebytes',
+ 'sys_getheapsize',
+ 'sys_getlogin',
+ 'sys_getpid',
+ 'sys_getppid',
+ 'sys_getpwnam',
+ 'sys_getpwuid',
+ 'sys_getstartclock',
+ 'sys_getthreadcount',
+ 'sys_getuid',
+ 'sys_growheapby',
+ 'sys_homepath',
+ 'sys_is_full_path',
+ 'sys_is_windows',
+ 'sys_isfullpath',
+ 'sys_iswindows',
+ 'sys_iterate',
+ 'sys_jrand48',
+ 'sys_kill_exec',
+ 'sys_kill',
+ 'sys_lcong48',
+ 'sys_librariespath',
+ 'sys_listtraits',
+ 'sys_listtypes',
+ 'sys_listunboundmethods',
+ 'sys_loadlibrary',
+ 'sys_lrand48',
+ 'sys_masterhomepath',
+ 'sys_mrand48',
+ 'sys_nrand48',
+ 'sys_pid_exec',
+ 'sys_pointersize',
+ 'sys_rand',
+ 'sys_random',
+ 'sys_seed48',
+ 'sys_setenv',
+ 'sys_setgid',
+ 'sys_setsid',
+ 'sys_setuid',
+ 'sys_sigabrt',
+ 'sys_sigalrm',
+ 'sys_sigbus',
+ 'sys_sigchld',
+ 'sys_sigcont',
+ 'sys_sigfpe',
+ 'sys_sighup',
+ 'sys_sigill',
+ 'sys_sigint',
+ 'sys_sigkill',
+ 'sys_sigpipe',
+ 'sys_sigprof',
+ 'sys_sigquit',
+ 'sys_sigsegv',
+ 'sys_sigstop',
+ 'sys_sigsys',
+ 'sys_sigterm',
+ 'sys_sigtrap',
+ 'sys_sigtstp',
+ 'sys_sigttin',
+ 'sys_sigttou',
+ 'sys_sigurg',
+ 'sys_sigusr1',
+ 'sys_sigusr2',
+ 'sys_sigvtalrm',
+ 'sys_sigxcpu',
+ 'sys_sigxfsz',
+ 'sys_srand',
+ 'sys_srand48',
+ 'sys_srandom',
+ 'sys_strerror',
+ 'sys_supportpath',
+ 'sys_test_exec',
+ 'sys_time',
+ 'sys_uname',
+ 'sys_unsetenv',
+ 'sys_usercapimodulepath',
+ 'sys_userstartuppath',
+ 'sys_version',
+ 'sys_wait_exec',
+ 'sys_waitpid',
+ 'sys_wcontinued',
+ 'sys_while',
+ 'sys_wnohang',
+ 'sys_wuntraced',
+ 'table_name',
+ 'tag_exists',
+ 'tag_name',
+ 'thread_var_get',
+ 'thread_var_pop',
+ 'thread_var_push',
+ 'threadvar_find',
+ 'threadvar_get',
+ 'threadvar_set_asrt',
+ 'threadvar_set',
+ 'timer',
'token_value',
+ 'treemap',
+ 'u_lb_alphabetic',
+ 'u_lb_ambiguous',
+ 'u_lb_break_after',
+ 'u_lb_break_before',
+ 'u_lb_break_both',
+ 'u_lb_break_symbols',
+ 'u_lb_carriage_return',
+ 'u_lb_close_punctuation',
+ 'u_lb_combining_mark',
+ 'u_lb_complex_context',
+ 'u_lb_contingent_break',
+ 'u_lb_exclamation',
+ 'u_lb_glue',
+ 'u_lb_h2',
+ 'u_lb_h3',
+ 'u_lb_hyphen',
+ 'u_lb_ideographic',
+ 'u_lb_infix_numeric',
+ 'u_lb_inseparable',
+ 'u_lb_jl',
+ 'u_lb_jt',
+ 'u_lb_jv',
+ 'u_lb_line_feed',
+ 'u_lb_mandatory_break',
+ 'u_lb_next_line',
+ 'u_lb_nonstarter',
+ 'u_lb_numeric',
+ 'u_lb_open_punctuation',
+ 'u_lb_postfix_numeric',
+ 'u_lb_prefix_numeric',
+ 'u_lb_quotation',
+ 'u_lb_space',
+ 'u_lb_surrogate',
+ 'u_lb_unknown',
+ 'u_lb_word_joiner',
+ 'u_lb_zwspace',
+ 'u_nt_decimal',
+ 'u_nt_digit',
+ 'u_nt_none',
+ 'u_nt_numeric',
+ 'u_sb_aterm',
+ 'u_sb_close',
+ 'u_sb_format',
+ 'u_sb_lower',
+ 'u_sb_numeric',
+ 'u_sb_oletter',
+ 'u_sb_other',
+ 'u_sb_sep',
+ 'u_sb_sp',
+ 'u_sb_sterm',
+ 'u_sb_upper',
+ 'u_wb_aletter',
+ 'u_wb_extendnumlet',
+ 'u_wb_format',
+ 'u_wb_katakana',
+ 'u_wb_midletter',
+ 'u_wb_midnum',
+ 'u_wb_numeric',
+ 'u_wb_other',
+ 'ucal_ampm',
+ 'ucal_dayofmonth',
+ 'ucal_dayofweek',
+ 'ucal_dayofweekinmonth',
+ 'ucal_dayofyear',
+ 'ucal_daysinfirstweek',
+ 'ucal_dowlocal',
+ 'ucal_dstoffset',
+ 'ucal_era',
+ 'ucal_extendedyear',
+ 'ucal_firstdayofweek',
+ 'ucal_hour',
+ 'ucal_hourofday',
+ 'ucal_julianday',
+ 'ucal_lenient',
+ 'ucal_listtimezones',
+ 'ucal_millisecond',
+ 'ucal_millisecondsinday',
+ 'ucal_minute',
+ 'ucal_month',
+ 'ucal_second',
+ 'ucal_weekofmonth',
+ 'ucal_weekofyear',
+ 'ucal_year',
+ 'ucal_yearwoy',
+ 'ucal_zoneoffset',
+ 'uchar_age',
+ 'uchar_alphabetic',
+ 'uchar_ascii_hex_digit',
+ 'uchar_bidi_class',
+ 'uchar_bidi_control',
+ 'uchar_bidi_mirrored',
+ 'uchar_bidi_mirroring_glyph',
+ 'uchar_block',
+ 'uchar_canonical_combining_class',
+ 'uchar_case_folding',
+ 'uchar_case_sensitive',
+ 'uchar_dash',
+ 'uchar_decomposition_type',
+ 'uchar_default_ignorable_code_point',
+ 'uchar_deprecated',
+ 'uchar_diacritic',
+ 'uchar_east_asian_width',
+ 'uchar_extender',
+ 'uchar_full_composition_exclusion',
+ 'uchar_general_category_mask',
+ 'uchar_general_category',
+ 'uchar_grapheme_base',
+ 'uchar_grapheme_cluster_break',
+ 'uchar_grapheme_extend',
+ 'uchar_grapheme_link',
+ 'uchar_hangul_syllable_type',
+ 'uchar_hex_digit',
+ 'uchar_hyphen',
+ 'uchar_id_continue',
+ 'uchar_ideographic',
+ 'uchar_ids_binary_operator',
+ 'uchar_ids_trinary_operator',
+ 'uchar_iso_comment',
+ 'uchar_join_control',
+ 'uchar_joining_group',
+ 'uchar_joining_type',
+ 'uchar_lead_canonical_combining_class',
+ 'uchar_line_break',
+ 'uchar_logical_order_exception',
+ 'uchar_lowercase_mapping',
+ 'uchar_lowercase',
+ 'uchar_math',
+ 'uchar_name',
+ 'uchar_nfc_inert',
+ 'uchar_nfc_quick_check',
+ 'uchar_nfd_inert',
+ 'uchar_nfd_quick_check',
+ 'uchar_nfkc_inert',
+ 'uchar_nfkc_quick_check',
+ 'uchar_nfkd_inert',
+ 'uchar_nfkd_quick_check',
+ 'uchar_noncharacter_code_point',
+ 'uchar_numeric_type',
+ 'uchar_numeric_value',
+ 'uchar_pattern_syntax',
+ 'uchar_pattern_white_space',
+ 'uchar_posix_alnum',
+ 'uchar_posix_blank',
+ 'uchar_posix_graph',
+ 'uchar_posix_print',
+ 'uchar_posix_xdigit',
+ 'uchar_quotation_mark',
+ 'uchar_radical',
+ 'uchar_s_term',
+ 'uchar_script',
+ 'uchar_segment_starter',
+ 'uchar_sentence_break',
+ 'uchar_simple_case_folding',
+ 'uchar_simple_lowercase_mapping',
+ 'uchar_simple_titlecase_mapping',
+ 'uchar_simple_uppercase_mapping',
+ 'uchar_soft_dotted',
+ 'uchar_terminal_punctuation',
+ 'uchar_titlecase_mapping',
+ 'uchar_trail_canonical_combining_class',
+ 'uchar_unicode_1_name',
+ 'uchar_unified_ideograph',
+ 'uchar_uppercase_mapping',
+ 'uchar_uppercase',
+ 'uchar_variation_selector',
+ 'uchar_white_space',
+ 'uchar_word_break',
+ 'uchar_xid_continue',
+ 'uncompress',
+ 'usage',
+ 'uuid_compare',
+ 'uuid_copy',
+ 'uuid_generate_random',
+ 'uuid_generate_time',
+ 'uuid_generate',
+ 'uuid_is_null',
+ 'uuid_parse',
+ 'uuid_unparse_lower',
+ 'uuid_unparse_upper',
+ 'uuid_unparse',
+ 'value_list',
+ 'value_listitem',
+ 'valuelistitem',
+ 'var_keys',
+ 'var_values',
'wap_isenabled',
'wap_maxbuttons',
- 'wap_maxhorzpixels',
- 'wap_maxvertpixels',
'wap_maxcolumns',
+ 'wap_maxhorzpixels',
'wap_maxrows',
- 'define_atbegin',
- 'define_atend',
- 'content_header',
- 'content_addheader',
- 'content_replaceheader',
- 'content_body',
- 'html_comment',
+ 'wap_maxvertpixels',
+ 'web_handlefcgirequest',
+ 'web_node_content_representation_css',
+ 'web_node_content_representation_html',
+ 'web_node_content_representation_js',
+ 'web_node_content_representation_xhr',
'web_node_forpath',
- 'web_nodes_requesthandler',
+ 'web_nodes_initialize',
'web_nodes_normalizeextension',
'web_nodes_processcontentnode',
- 'web_nodes_initialize',
- 'web_node_content_representation_xhr',
- 'web_node_content_representation_html',
- 'web_node_content_representation_css',
- 'web_node_content_representation_js',
+ 'web_nodes_requesthandler',
'web_response_nodesentry',
- 'web_response',
'web_router_database',
- 'web_router_initialize'
+ 'web_router_initialize',
+ 'websocket_handler_timeout',
+ 'wexitstatus',
+ 'wifcontinued',
+ 'wifexited',
+ 'wifsignaled',
+ 'wifstopped',
+ 'wstopsig',
+ 'wtermsig',
+ 'xml_transform',
+ 'xml',
+ 'zip_add_dir',
+ 'zip_add',
+ 'zip_checkcons',
+ 'zip_close',
+ 'zip_cm_bzip2',
+ 'zip_cm_default',
+ 'zip_cm_deflate',
+ 'zip_cm_deflate64',
+ 'zip_cm_implode',
+ 'zip_cm_pkware_implode',
+ 'zip_cm_reduce_1',
+ 'zip_cm_reduce_2',
+ 'zip_cm_reduce_3',
+ 'zip_cm_reduce_4',
+ 'zip_cm_shrink',
+ 'zip_cm_store',
+ 'zip_create',
+ 'zip_delete',
+ 'zip_em_3des_112',
+ 'zip_em_3des_168',
+ 'zip_em_aes_128',
+ 'zip_em_aes_192',
+ 'zip_em_aes_256',
+ 'zip_em_des',
+ 'zip_em_none',
+ 'zip_em_rc2_old',
+ 'zip_em_rc2',
+ 'zip_em_rc4',
+ 'zip_em_trad_pkware',
+ 'zip_em_unknown',
+ 'zip_er_changed',
+ 'zip_er_close',
+ 'zip_er_compnotsupp',
+ 'zip_er_crc',
+ 'zip_er_deleted',
+ 'zip_er_eof',
+ 'zip_er_exists',
+ 'zip_er_incons',
+ 'zip_er_internal',
+ 'zip_er_inval',
+ 'zip_er_memory',
+ 'zip_er_multidisk',
+ 'zip_er_noent',
+ 'zip_er_nozip',
+ 'zip_er_ok',
+ 'zip_er_open',
+ 'zip_er_read',
+ 'zip_er_remove',
+ 'zip_er_rename',
+ 'zip_er_seek',
+ 'zip_er_tmpopen',
+ 'zip_er_write',
+ 'zip_er_zipclosed',
+ 'zip_er_zlib',
+ 'zip_error_get_sys_type',
+ 'zip_error_get',
+ 'zip_error_to_str',
+ 'zip_et_none',
+ 'zip_et_sys',
+ 'zip_et_zlib',
+ 'zip_excl',
+ 'zip_fclose',
+ 'zip_file_error_get',
+ 'zip_file_strerror',
+ 'zip_fl_compressed',
+ 'zip_fl_nocase',
+ 'zip_fl_nodir',
+ 'zip_fl_unchanged',
+ 'zip_fopen_index',
+ 'zip_fopen',
+ 'zip_fread',
+ 'zip_get_archive_comment',
+ 'zip_get_file_comment',
+ 'zip_get_name',
+ 'zip_get_num_files',
+ 'zip_name_locate',
+ 'zip_open',
+ 'zip_rename',
+ 'zip_replace',
+ 'zip_set_archive_comment',
+ 'zip_set_file_comment',
+ 'zip_stat_index',
+ 'zip_stat',
+ 'zip_strerror',
+ 'zip_unchange_all',
+ 'zip_unchange_archive',
+ 'zip_unchange',
+ 'zlib_version',
),
'Lasso 8 Tags': (
'__char',
@@ -3029,1336 +3084,1231 @@ BUILTINS = {
'xsd_processschema',
'xsd_processsimpletype',
'xsd_ref',
- 'xsd_type'
+ 'xsd_type',
)
}
MEMBERS = {
'Member Methods': (
- 'escape_member',
- 'oncompare',
- 'sameas',
- 'isa',
+ 'abort',
+ 'abs',
+ 'accept_charset',
+ 'accept',
+ 'acceptconnections',
+ 'acceptdeserializedelement',
+ 'acceptnossl',
+ 'acceptpost',
+ 'accesskey',
+ 'acos',
+ 'acosh',
+ 'action',
+ 'actionparams',
+ 'active_tick',
+ 'add',
+ 'addatend',
+ 'addattachment',
+ 'addbarcode',
+ 'addchapter',
+ 'addcheckbox',
+ 'addcolumninfo',
+ 'addcombobox',
+ 'addcomment',
+ 'addcomponent',
+ 'addcomponents',
+ 'addcss',
+ 'adddatabasetable',
+ 'adddatasource',
+ 'adddatasourcedatabase',
+ 'adddatasourcehost',
+ 'adddir',
+ 'adddirpath',
+ 'addendjs',
+ 'addendjstext',
+ 'adderror',
+ 'addfavicon',
+ 'addfile',
+ 'addgroup',
+ 'addheader',
+ 'addhiddenfield',
+ 'addhtmlpart',
+ 'addimage',
+ 'addjavascript',
+ 'addjs',
+ 'addjstext',
+ 'addlist',
+ 'addmathfunctions',
+ 'addmember',
+ 'addoneheaderline',
+ 'addpage',
+ 'addparagraph',
+ 'addpart',
+ 'addpasswordfield',
+ 'addphrase',
+ 'addpostdispatch',
+ 'addpredispatch',
+ 'addradiobutton',
+ 'addradiogroup',
+ 'addresetbutton',
+ 'addrow',
+ 'addsection',
+ 'addselectlist',
+ 'addset',
+ 'addsubmitbutton',
+ 'addsubnode',
+ 'addtable',
+ 'addtask',
+ 'addtext',
+ 'addtextarea',
+ 'addtextfield',
+ 'addtextpart',
+ 'addtobuffer',
+ 'addtrait',
+ 'adduser',
+ 'addusertogroup',
+ 'addwarning',
+ 'addzip',
+ 'allocobject',
+ 'am',
+ 'ampm',
+ 'annotate',
+ 'answer',
+ 'apop',
+ 'append',
+ 'appendarray',
+ 'appendarraybegin',
+ 'appendarrayend',
+ 'appendbool',
+ 'appendbytes',
+ 'appendchar',
+ 'appendchild',
+ 'appendcolon',
+ 'appendcomma',
+ 'appenddata',
+ 'appenddatetime',
+ 'appenddbpointer',
+ 'appenddecimal',
+ 'appenddocument',
+ 'appendimagetolist',
+ 'appendinteger',
+ 'appendnowutc',
+ 'appendnull',
+ 'appendoid',
+ 'appendregex',
+ 'appendreplacement',
+ 'appendstring',
+ 'appendtail',
+ 'appendtime',
+ 'applyheatcolors',
+ 'appmessage',
+ 'appname',
+ 'appprefix',
+ 'appstatus',
+ 'arc',
+ 'archive',
+ 'arguments',
+ 'argumentvalue',
+ 'asarray',
+ 'asarraystring',
+ 'asasync',
+ 'asbytes',
'ascopy',
- 'asstring',
'ascopydeep',
- 'type',
- 'trait',
- 'parent',
- 'settrait',
- 'oncreate',
- 'listmethods',
- 'hasmethod',
- 'invoke',
- 'addtrait',
- 'isnota',
- 'isallof',
- 'isanyof',
- 'size',
- 'gettype',
- 'istype',
- 'doccomment',
- 'requires',
- 'provides',
- 'name',
- 'subtraits',
- 'description',
- 'hash',
- 'hosttonet16',
- 'hosttonet32',
- 'nettohost16',
- 'nettohost32',
- 'nettohost64',
- 'hosttonet64',
- 'bitset',
- 'bittest',
- 'bitflip',
- 'bitclear',
- 'bitor',
- 'bitand',
- 'bitxor',
- 'bitnot',
- 'bitshiftleft',
- 'bitshiftright',
- 'bytes',
- 'abs',
- 'div',
- 'dereferencepointer',
'asdecimal',
- 'serializationelements',
- 'acceptdeserializedelement',
- 'serialize',
- 'deg2rad',
+ 'asgenerator',
+ 'asin',
+ 'asinh',
+ 'asinteger',
+ 'askeyedgenerator',
+ 'aslazystring',
+ 'aslist',
+ 'asraw',
+ 'asstaticarray',
+ 'asstring',
'asstringhex',
'asstringoct',
- 'acos',
- 'asin',
+ 'asxml',
'atan',
'atan2',
- 'ceil',
- 'cos',
- 'cosh',
- 'exp',
- 'fabs',
- 'floor',
- 'frexp',
- 'ldexp',
- 'log',
- 'log10',
- 'modf',
- 'pow',
- 'sin',
- 'sinh',
- 'sqrt',
- 'tan',
- 'tanh',
- 'erf',
- 'erfc',
- 'gamma',
- 'hypot',
- 'j0',
- 'j1',
- 'jn',
- 'lgamma',
- 'y0',
- 'y1',
- 'yn',
- 'isnan',
- 'acosh',
- 'asinh',
'atanh',
- 'cbrt',
- 'expm1',
- 'nextafter',
- 'scalb',
- 'ilogb',
- 'log1p',
- 'logb',
- 'remainder',
- 'rint',
- 'asinteger',
- 'self',
- 'detach',
- 'restart',
- 'resume',
- 'continuation',
- 'home',
+ 'atend',
+ 'atends',
+ 'atime',
+ 'attributecount',
+ 'attributes',
+ 'attrs',
+ 'auth',
+ 'authenticate',
+ 'authorize',
+ 'autocollectbuffer',
+ 'average',
+ 'back',
+ 'basename',
+ 'basepaths',
+ 'baseuri',
+ 'bcc',
+ 'beginssl',
+ 'beginswith',
+ 'begintls',
+ 'bestcharset',
+ 'bind_blob',
+ 'bind_double',
+ 'bind_int',
+ 'bind_null',
+ 'bind_parameter_index',
+ 'bind_text',
+ 'bind',
+ 'bindcount',
+ 'bindone',
+ 'bindparam',
+ 'bitand',
+ 'bitclear',
+ 'bitflip',
+ 'bitformat',
+ 'bitnot',
+ 'bitor',
+ 'bitset',
+ 'bitshiftleft',
+ 'bitshiftright',
+ 'bittest',
+ 'bitxor',
+ 'blur',
+ 'body',
+ 'bodybytes',
+ 'boundary',
+ 'bptoxml',
+ 'bptypetostr',
+ 'bucketnumber',
+ 'buff',
+ 'buildquery',
+ 'businessdaysbetween',
+ 'by',
+ 'bytes',
+ 'cachedappprefix',
+ 'cachedroot',
+ 'callboolean',
+ 'callbooleanmethod',
+ 'callbytemethod',
+ 'callcharmethod',
+ 'calldoublemethod',
+ 'calledname',
+ 'callfirst',
+ 'callfloat',
+ 'callfloatmethod',
+ 'callint',
+ 'callintmethod',
+ 'calllongmethod',
+ 'callnonvirtualbooleanmethod',
+ 'callnonvirtualbytemethod',
+ 'callnonvirtualcharmethod',
+ 'callnonvirtualdoublemethod',
+ 'callnonvirtualfloatmethod',
+ 'callnonvirtualintmethod',
+ 'callnonvirtuallongmethod',
+ 'callnonvirtualobjectmethod',
+ 'callnonvirtualshortmethod',
+ 'callnonvirtualvoidmethod',
+ 'callobject',
+ 'callobjectmethod',
+ 'callshortmethod',
+ 'callsite_col',
'callsite_file',
'callsite_line',
- 'callsite_col',
'callstack',
- 'splitthread',
- 'threadreaddesc',
- 'givenblock',
- 'autocollectbuffer',
- 'calledname',
- 'methodname',
- 'invokeuntil',
- 'invokewhile',
- 'invokeautocollect',
- 'asasync',
- 'append',
- 'appendchar',
- 'private_find',
- 'private_findlast',
- 'length',
+ 'callstaticboolean',
+ 'callstaticbooleanmethod',
+ 'callstaticbytemethod',
+ 'callstaticcharmethod',
+ 'callstaticdoublemethod',
+ 'callstaticfloatmethod',
+ 'callstaticint',
+ 'callstaticintmethod',
+ 'callstaticlongmethod',
+ 'callstaticobject',
+ 'callstaticobjectmethod',
+ 'callstaticshortmethod',
+ 'callstaticstring',
+ 'callstaticvoidmethod',
+ 'callstring',
+ 'callvoid',
+ 'callvoidmethod',
+ 'cancel',
+ 'cap',
+ 'capa',
+ 'capabilities',
+ 'capi',
+ 'cbrt',
+ 'cc',
+ 'ceil',
'chardigitvalue',
- 'private_compare',
- 'remove',
'charname',
+ 'charset',
'chartype',
- 'decompose',
- 'normalize',
- 'digit',
- 'foldcase',
- 'sub',
- 'integer',
- 'private_merge',
- 'unescape',
- 'trim',
- 'titlecase',
- 'reverse',
- 'getisocomment',
- 'getnumericvalue',
- 'totitle',
- 'toupper',
- 'tolower',
- 'lowercase',
- 'uppercase',
- 'isalnum',
- 'isalpha',
- 'isbase',
- 'iscntrl',
- 'isdigit',
- 'isxdigit',
- 'islower',
- 'isprint',
- 'isspace',
- 'istitle',
- 'ispunct',
- 'isgraph',
- 'isblank',
- 'isualphabetic',
- 'isulowercase',
- 'isupper',
- 'isuuppercase',
- 'isuwhitespace',
- 'iswhitespace',
- 'encodehtml',
- 'decodehtml',
- 'encodexml',
- 'decodexml',
- 'encodehtmltoxml',
- 'getpropertyvalue',
- 'hasbinaryproperty',
- 'asbytes',
- 'find',
- 'findlast',
- 'contains',
- 'get',
- 'equals',
+ 'checkdebugging',
+ 'checked',
+ 'checkuser',
+ 'childnodes',
+ 'chk',
+ 'chmod',
+ 'choosecolumntype',
+ 'chown',
+ 'chunked',
+ 'circle',
+ 'class',
+ 'classid',
+ 'clear',
+ 'clonenode',
+ 'close',
+ 'closepath',
+ 'closeprepared',
+ 'closewrite',
+ 'code',
+ 'codebase',
+ 'codetype',
+ 'colmap',
+ 'colorspace',
+ 'column_blob',
+ 'column_count',
+ 'column_decltype',
+ 'column_double',
+ 'column_int64',
+ 'column_name',
+ 'column_text',
+ 'column_type',
+ 'command',
+ 'comments',
'compare',
'comparecodepointorder',
- 'padleading',
- 'padtrailing',
- 'merge',
- 'split',
- 'removeleading',
- 'removetrailing',
- 'beginswith',
- 'endswith',
- 'replace',
- 'values',
- 'foreachcharacter',
- 'foreachlinebreak',
- 'foreachwordbreak',
- 'eachwordbreak',
- 'eachcharacter',
- 'foreachmatch',
- 'eachmatch',
- 'encodesql92',
- 'encodesql',
- 'keys',
- 'decomposeassignment',
- 'firstcomponent',
- 'ifempty',
- 'eachsub',
- 'stripfirstcomponent',
- 'isnotempty',
- 'first',
- 'lastcomponent',
- 'foreachpathcomponent',
- 'isfullpath',
- 'back',
- 'second',
'componentdelimiter',
- 'isempty',
- 'foreachsub',
- 'front',
- 'striplastcomponent',
+ 'components',
+ 'composite',
+ 'compress',
+ 'concat',
+ 'condtoint',
+ 'configureds',
+ 'configuredskeys',
+ 'connect',
+ 'connection',
+ 'connectionhandler',
+ 'connhandler',
+ 'consume_domain',
+ 'consume_label',
+ 'consume_message',
+ 'consume_rdata',
+ 'consume_string',
+ 'contains',
+ 'content_disposition',
+ 'content_transfer_encoding',
+ 'content_type',
+ 'content',
+ 'contentlength',
+ 'contents',
+ 'contenttype',
+ 'continuation',
+ 'continuationpacket',
+ 'continuationpoint',
+ 'continuationstack',
+ 'continue',
+ 'contrast',
+ 'conventionaltop',
+ 'convert',
+ 'cookie',
+ 'cookies',
+ 'cookiesarray',
+ 'cookiesary',
+ 'copyto',
+ 'cos',
+ 'cosh',
+ 'count',
+ 'countkeys',
+ 'country',
+ 'countusersbygroup',
+ 'crc',
+ 'create',
+ 'createattribute',
+ 'createattributens',
+ 'createcdatasection',
+ 'createcomment',
+ 'createdocument',
+ 'createdocumentfragment',
+ 'createdocumenttype',
+ 'createelement',
+ 'createelementns',
+ 'createentityreference',
+ 'createindex',
+ 'createprocessinginstruction',
+ 'createtable',
+ 'createtextnode',
+ 'criteria',
+ 'crop',
+ 'csscontent',
+ 'curl',
+ 'current',
+ 'currentfile',
+ 'curveto',
+ 'd',
+ 'data',
+ 'databasecolumnnames',
+ 'databasecolumns',
+ 'databasemap',
+ 'databasename',
+ 'datasourcecolumnnames',
+ 'datasourcecolumns',
+ 'datasourcemap',
+ 'date',
+ 'day',
+ 'dayofmonth',
+ 'dayofweek',
+ 'dayofweekinmonth',
+ 'dayofyear',
+ 'days',
+ 'daysbetween',
+ 'db',
+ 'dbtablestable',
+ 'debug',
+ 'declare',
+ 'decodebase64',
+ 'decodehex',
+ 'decodehtml',
+ 'decodeqp',
+ 'decodeurl',
+ 'decodexml',
+ 'decompose',
+ 'decomposeassignment',
+ 'defaultcontentrepresentation',
+ 'defer',
+ 'deg2rad',
+ 'dele',
+ 'delete',
+ 'deletedata',
+ 'deleteglobalref',
+ 'deletelocalref',
+ 'delim',
+ 'depth',
+ 'dereferencepointer',
+ 'describe',
+ 'description',
+ 'deserialize',
+ 'detach',
+ 'detectcharset',
+ 'didinclude',
+ 'difference',
+ 'digit',
+ 'dir',
+ 'displaycountry',
+ 'displaylanguage',
+ 'displayname',
+ 'displayscript',
+ 'displayvariant',
+ 'div',
+ 'dns_response',
+ 'do',
+ 'doatbegins',
+ 'doatends',
+ 'doccomment',
+ 'doclose',
+ 'doctype',
+ 'document',
+ 'documentelement',
+ 'documentroot',
+ 'domainbody',
+ 'done',
+ 'dosessions',
+ 'dowithclose',
+ 'dowlocal',
+ 'download',
+ 'drawtext',
+ 'drop',
+ 'dropindex',
+ 'dsdbtable',
+ 'dshoststable',
+ 'dsinfo',
+ 'dst',
+ 'dstable',
+ 'dstoffset',
+ 'dtdid',
+ 'dup',
+ 'dup2',
+ 'each',
+ 'eachbyte',
+ 'eachcharacter',
+ 'eachchild',
'eachcomponent',
+ 'eachdir',
+ 'eachdirpath',
+ 'eachdirpathrecursive',
+ 'eachentry',
+ 'eachfile',
+ 'eachfilename',
+ 'eachfilepath',
+ 'eachfilepathrecursive',
+ 'eachkey',
'eachline',
- 'splitextension',
- 'hastrailingcomponent',
- 'last',
- 'ifnotempty',
- 'extensiondelimiter',
+ 'eachlinebreak',
+ 'eachmatch',
+ 'eachnode',
+ 'eachpair',
+ 'eachpath',
+ 'eachpathrecursive',
+ 'eachrow',
+ 'eachsub',
'eachword',
- 'substring',
- 'setsize',
- 'reserve',
- 'getrange',
- 'private_setrange',
- 'importas',
- 'import8bits',
- 'import32bits',
- 'import64bits',
- 'import16bits',
- 'importbytes',
- 'importpointer',
- 'export8bits',
+ 'eachwordbreak',
+ 'element',
+ 'eligiblepath',
+ 'eligiblepaths',
+ 'encodebase64',
+ 'encodehex',
+ 'encodehtml',
+ 'encodehtmltoxml',
+ 'encodemd5',
+ 'encodepassword',
+ 'encodeqp',
+ 'encodesql',
+ 'encodesql92',
+ 'encodeurl',
+ 'encodevalue',
+ 'encodexml',
+ 'encoding',
+ 'enctype',
+ 'end',
+ 'endjs',
+ 'endssl',
+ 'endswith',
+ 'endtls',
+ 'enhance',
+ 'ensurestopped',
+ 'entities',
+ 'entry',
+ 'env',
+ 'equals',
+ 'era',
+ 'erf',
+ 'erfc',
+ 'err',
+ 'errcode',
+ 'errmsg',
+ 'error',
+ 'errors',
+ 'errstack',
+ 'escape_member',
+ 'establisherrorstate',
+ 'exceptioncheck',
+ 'exceptionclear',
+ 'exceptiondescribe',
+ 'exceptionoccurred',
+ 'exchange',
+ 'execinits',
+ 'execinstalls',
+ 'execute',
+ 'executelazy',
+ 'executenow',
+ 'exists',
+ 'exit',
+ 'exitcode',
+ 'exp',
+ 'expire',
+ 'expireminutes',
+ 'expiresminutes',
+ 'expm1',
'export16bits',
'export32bits',
'export64bits',
+ 'export8bits',
+ 'exportas',
'exportbytes',
- 'exportsigned8bits',
+ 'exportfdf',
+ 'exportpointerbits',
'exportsigned16bits',
'exportsigned32bits',
'exportsigned64bits',
- 'marker',
- 'swapbytes',
- 'encodeurl',
- 'decodeurl',
- 'encodebase64',
- 'decodebase64',
- 'encodeqp',
- 'decodeqp',
- 'encodemd5',
- 'encodehex',
- 'decodehex',
- 'uncompress',
- 'compress',
- 'detectcharset',
- 'bestcharset',
- 'crc',
- 'importstring',
- 'setrange',
- 'exportas',
+ 'exportsigned8bits',
'exportstring',
- 'exportpointerbits',
- 'foreachbyte',
- 'eachbyte',
- 'setposition',
- 'position',
- 'value',
- 'join',
- 'asstaticarray',
- 'foreach',
- 'findposition',
- 'min',
- 'groupjoin',
- 'orderbydescending',
- 'average',
- 'take',
- 'do',
- 'selectmany',
- 'skip',
- 'select',
- 'sum',
- 'max',
- 'asarray',
- 'thenbydescending',
- 'aslist',
- 'orderby',
- 'thenby',
- 'where',
- 'groupby',
- 'asgenerator',
- 'typename',
- 'returntype',
- 'restname',
- 'paramdescs',
- 'action',
- 'statement',
- 'inputcolumns',
- 'keycolumns',
- 'returncolumns',
- 'sortcolumns',
- 'skiprows',
- 'maxrows',
- 'rowsfound',
- 'statementonly',
- 'lop',
- 'databasename',
- 'tablename',
- 'schemaname',
- 'hostid',
- 'hostdatasource',
- 'hostname',
- 'hostport',
- 'hostusername',
- 'hostpassword',
- 'hostschema',
- 'hosttableencoding',
- 'hostextra',
- 'hostisdynamic',
- 'refobj',
- 'connection',
- 'prepared',
- 'getset',
- 'addset',
- 'numsets',
- 'addrow',
- 'addcolumninfo',
- 'forcedrowid',
- 'makeinheritedcopy',
- 'filename',
'expose',
- 'recover',
- 'insert',
- 'removeall',
- 'count',
- 'exchange',
- 'findindex',
- 'foreachpair',
- 'foreachkey',
- 'sort',
- 'insertfirst',
- 'difference',
- 'removeback',
- 'insertback',
- 'removelast',
- 'removefront',
- 'insertfrom',
- 'intersection',
- 'top',
- 'insertlast',
- 'push',
- 'union',
- 'removefirst',
- 'insertfront',
- 'pop',
- 'fd',
- 'family',
- 'isvalid',
- 'isssl',
- 'open',
- 'close',
- 'read',
- 'write',
- 'ioctl',
- 'seek',
- 'mode',
- 'mtime',
- 'atime',
- 'dup',
- 'dup2',
- 'fchdir',
- 'fchown',
- 'fsync',
- 'ftruncate',
- 'fchmod',
- 'sendfd',
- 'receivefd',
- 'readobject',
- 'tryreadobject',
- 'writeobject',
- 'leaveopen',
- 'rewind',
- 'tell',
- 'language',
- 'script',
- 'country',
- 'variant',
- 'displaylanguage',
- 'displayscript',
- 'displaycountry',
- 'displayvariant',
- 'displayname',
- 'basename',
- 'keywords',
- 'iso3language',
- 'iso3country',
- 'formatas',
- 'formatnumber',
- 'parsenumber',
- 'parseas',
- 'format',
- 'parse',
- 'add',
- 'roll',
- 'set',
- 'getattr',
- 'setattr',
- 'clear',
- 'isset',
- 'settimezone',
- 'timezone',
- 'time',
- 'indaylighttime',
- 'createdocument',
- 'parsedocument',
- 'hasfeature',
- 'createdocumenttype',
- 'nodename',
- 'nodevalue',
- 'nodetype',
- 'parentnode',
- 'childnodes',
- 'firstchild',
- 'lastchild',
- 'previoussibling',
- 'nextsibling',
- 'attributes',
- 'ownerdocument',
- 'namespaceuri',
- 'prefix',
- 'localname',
- 'insertbefore',
- 'replacechild',
- 'removechild',
- 'appendchild',
- 'haschildnodes',
- 'clonenode',
- 'issupported',
- 'hasattributes',
+ 'extendedyear',
+ 'extensiondelimiter',
+ 'extensions',
'extract',
- 'extractone',
'extractfast',
- 'transform',
- 'foreachchild',
- 'eachchild',
'extractfastone',
- 'data',
- 'substringdata',
- 'appenddata',
- 'insertdata',
- 'deletedata',
- 'replacedata',
- 'doctype',
- 'implementation',
- 'documentelement',
- 'createelement',
- 'createdocumentfragment',
- 'createtextnode',
- 'createcomment',
- 'createcdatasection',
- 'createprocessinginstruction',
- 'createattribute',
- 'createentityreference',
- 'getelementsbytagname',
- 'importnode',
- 'createelementns',
- 'createattributens',
- 'getelementsbytagnamens',
- 'getelementbyid',
- 'tagname',
- 'getattribute',
- 'setattribute',
- 'removeattribute',
- 'getattributenode',
- 'setattributenode',
- 'removeattributenode',
- 'getattributens',
- 'setattributens',
- 'removeattributens',
- 'getattributenodens',
- 'setattributenodens',
- 'hasattribute',
- 'hasattributens',
- 'setname',
- 'contents',
- 'specified',
- 'ownerelement',
- 'splittext',
- 'notationname',
- 'publicid',
- 'systemid',
- 'target',
- 'entities',
- 'notations',
- 'internalsubset',
- 'item',
- 'getnameditem',
- 'getnameditemns',
- 'setnameditem',
- 'setnameditemns',
- 'removenameditem',
- 'removenameditemns',
- 'askeyedgenerator',
- 'eachpair',
- 'eachkey',
- 'next',
- 'readstring',
- 'readattributevalue',
- 'attributecount',
- 'baseuri',
- 'depth',
- 'hasvalue',
- 'isemptyelement',
- 'xmllang',
- 'getattributenamespace',
- 'lookupnamespace',
- 'movetoattribute',
- 'movetoattributenamespace',
- 'movetofirstattribute',
- 'movetonextattribute',
- 'movetoelement',
- 'prepare',
- 'last_insert_rowid',
- 'total_changes',
- 'interrupt',
- 'errcode',
- 'errmsg',
- 'addmathfunctions',
+ 'extractimage',
+ 'extractone',
+ 'f',
+ 'fabs',
+ 'fail',
+ 'failnoconnectionhandler',
+ 'family',
+ 'fatalerror',
+ 'fcgireq',
+ 'fchdir',
+ 'fchmod',
+ 'fchown',
+ 'fd',
+ 'features',
+ 'fetchdata',
+ 'fieldnames',
+ 'fieldposition',
+ 'fieldstable',
+ 'fieldtype',
+ 'fieldvalue',
+ 'file',
+ 'filename',
+ 'filenames',
+ 'filequeue',
+ 'fileuploads',
+ 'fileuploadsary',
+ 'filterinputcolumn',
'finalize',
- 'step',
- 'bind_blob',
- 'bind_double',
- 'bind_int',
- 'bind_null',
- 'bind_text',
- 'bind_parameter_index',
- 'reset',
- 'column_count',
- 'column_name',
- 'column_decltype',
- 'column_blob',
- 'column_double',
- 'column_int64',
- 'column_text',
- 'column_type',
- 'ismultipart',
- 'gotfileupload',
- 'setmaxfilesize',
- 'getparts',
- 'trackingid',
- 'currentfile',
- 'addtobuffer',
- 'input',
- 'replacepattern',
- 'findpattern',
- 'ignorecase',
- 'setinput',
- 'setreplacepattern',
- 'setfindpattern',
- 'setignorecase',
- 'output',
- 'appendreplacement',
- 'matches',
- 'private_replaceall',
- 'appendtail',
- 'groupcount',
- 'matchposition',
- 'matchesstart',
- 'private_replacefirst',
- 'private_split',
- 'matchstring',
- 'replaceall',
- 'replacefirst',
+ 'find',
'findall',
+ 'findandmodify',
+ 'findbucket',
+ 'findcase',
+ 'findclass',
'findcount',
+ 'finddescendant',
'findfirst',
+ 'findinclude',
+ 'findinctx',
+ 'findindex',
+ 'findlast',
+ 'findpattern',
+ 'findposition',
'findsymbols',
- 'loadlibrary',
- 'getlibrary',
- 'atend',
- 'f',
- 'r',
- 'form',
- 'gen',
- 'callfirst',
- 'key',
- 'by',
- 'from',
- 'init',
- 'to',
- 'd',
- 't',
- 'object',
- 'inneroncompare',
- 'members',
- 'writeid',
- 'addmember',
- 'refid',
- 'index',
- 'objects',
- 'tabs',
- 'trunk',
- 'trace',
- 'asxml',
- 'tabstr',
- 'toxmlstring',
- 'document',
- 'idmap',
- 'readidobjects',
- 'left',
- 'right',
- 'up',
- 'red',
- 'root',
- 'getnode',
- 'firstnode',
- 'lastnode',
- 'nextnode',
- 'private_rebalanceforremove',
- 'private_rotateleft',
- 'private_rotateright',
- 'private_rebalanceforinsert',
- 'eachnode',
- 'foreachnode',
- 'encoding',
- 'resolvelinks',
- 'readbytesfully',
- 'dowithclose',
- 'readsomebytes',
- 'readbytes',
- 'writestring',
- 'parentdir',
- 'aslazystring',
- 'path',
- 'openread',
- 'openwrite',
- 'openwriteonly',
- 'openappend',
- 'opentruncate',
- 'writebytes',
- 'exists',
- 'modificationtime',
- 'lastaccesstime',
- 'modificationdate',
- 'lastaccessdate',
- 'delete',
- 'moveto',
- 'copyto',
- 'linkto',
- 'flush',
- 'chmod',
- 'chown',
- 'isopen',
- 'setmarker',
- 'setmode',
- 'foreachline',
- 'lock',
- 'unlock',
- 'trylock',
- 'testlock',
- 'perms',
- 'islink',
- 'isdir',
- 'realpath',
- 'openwith',
- 'asraw',
- 'rawdiff',
- 'getformat',
- 'setformat',
- 'subtract',
- 'gmt',
- 'dst',
- 'era',
- 'year',
- 'month',
- 'week',
- 'weekofyear',
- 'weekofmonth',
- 'day',
- 'dayofmonth',
- 'dayofyear',
- 'dayofweek',
- 'dayofweekinmonth',
- 'ampm',
- 'am',
- 'pm',
- 'hour',
- 'hourofday',
- 'hourofampm',
- 'minute',
- 'millisecond',
- 'zoneoffset',
- 'dstoffset',
- 'yearwoy',
- 'dowlocal',
- 'extendedyear',
- 'julianday',
- 'millisecondsinday',
+ 'first',
+ 'firstchild',
+ 'firstcomponent',
'firstdayofweek',
+ 'firstnode',
'fixformat',
- 'minutesbetween',
- 'hoursbetween',
- 'secondsbetween',
- 'daysbetween',
- 'businessdaysbetween',
- 'pdifference',
- 'getfield',
- 'create',
- 'setcwd',
- 'foreachentry',
- 'eachpath',
- 'eachfilepath',
- 'eachdirpath',
- 'each',
- 'eachfile',
- 'eachdir',
- 'eachpathrecursive',
- 'eachfilepathrecursive',
- 'eachdirpathrecursive',
- 'eachentry',
- 'makefullpath',
- 'annotate',
- 'blur',
- 'command',
- 'composite',
- 'contrast',
- 'convert',
- 'crop',
- 'execute',
- 'enhance',
- 'flipv',
+ 'flags',
'fliph',
- 'modulate',
- 'rotate',
- 'save',
- 'scale',
- 'sharpen',
- 'addcomment',
- 'comments',
- 'describe',
- 'file',
- 'height',
- 'pixel',
- 'resolutionv',
- 'resolutionh',
- 'width',
- 'setcolorspace',
- 'colorspace',
- 'debug',
- 'histogram',
- 'imgptr',
- 'appendimagetolist',
+ 'flipv',
+ 'floor',
+ 'flush',
+ 'foldcase',
+ 'foo',
+ 'for',
+ 'forcedrowid',
+ 'foreach',
+ 'foreachaccept',
+ 'foreachbyte',
+ 'foreachcharacter',
+ 'foreachchild',
+ 'foreachday',
+ 'foreachentry',
+ 'foreachfile',
+ 'foreachfilename',
+ 'foreachkey',
+ 'foreachline',
+ 'foreachlinebreak',
+ 'foreachmatch',
+ 'foreachnode',
+ 'foreachpair',
+ 'foreachpathcomponent',
+ 'foreachrow',
+ 'foreachspool',
+ 'foreachsub',
+ 'foreachwordbreak',
+ 'form',
+ 'format',
+ 'formatas',
+ 'formatcontextelement',
+ 'formatcontextelements',
+ 'formatnumber',
+ 'free',
+ 'frexp',
+ 'from',
+ 'fromname',
+ 'fromport',
+ 'fromreflectedfield',
+ 'fromreflectedmethod',
+ 'front',
+ 'fsync',
+ 'ftpdeletefile',
+ 'ftpgetlisting',
+ 'ftruncate',
+ 'fullpath',
'fx',
- 'applyheatcolors',
- 'authenticate',
- 'search',
- 'searchurl',
- 'readerror',
- 'readline',
- 'setencoding',
- 'closewrite',
- 'exitcode',
- 'getversion',
- 'findclass',
- 'throw',
- 'thrownew',
- 'exceptionoccurred',
- 'exceptiondescribe',
- 'exceptionclear',
- 'fatalerror',
- 'newglobalref',
- 'deleteglobalref',
- 'deletelocalref',
- 'issameobject',
- 'allocobject',
- 'newobject',
- 'getobjectclass',
- 'isinstanceof',
- 'getmethodid',
- 'callobjectmethod',
- 'callbooleanmethod',
- 'callbytemethod',
- 'callcharmethod',
- 'callshortmethod',
- 'callintmethod',
- 'calllongmethod',
- 'callfloatmethod',
- 'calldoublemethod',
- 'callvoidmethod',
- 'callnonvirtualobjectmethod',
- 'callnonvirtualbooleanmethod',
- 'callnonvirtualbytemethod',
- 'callnonvirtualcharmethod',
- 'callnonvirtualshortmethod',
- 'callnonvirtualintmethod',
- 'callnonvirtuallongmethod',
- 'callnonvirtualfloatmethod',
- 'callnonvirtualdoublemethod',
- 'callnonvirtualvoidmethod',
- 'getfieldid',
- 'getobjectfield',
+ 'gamma',
+ 'gatewayinterface',
+ 'gen',
+ 'generatechecksum',
+ 'get',
+ 'getabswidth',
+ 'getalignment',
+ 'getappsource',
+ 'getarraylength',
+ 'getattr',
+ 'getattribute',
+ 'getattributenamespace',
+ 'getattributenode',
+ 'getattributenodens',
+ 'getattributens',
+ 'getbarheight',
+ 'getbarmultiplier',
+ 'getbarwidth',
+ 'getbaseline',
+ 'getbold',
+ 'getbooleanarrayelements',
+ 'getbooleanarrayregion',
'getbooleanfield',
+ 'getbordercolor',
+ 'getborderwidth',
+ 'getbytearrayelements',
+ 'getbytearrayregion',
'getbytefield',
+ 'getchararrayelements',
+ 'getchararrayregion',
'getcharfield',
- 'getshortfield',
+ 'getclass',
+ 'getcode',
+ 'getcolor',
+ 'getcolumn',
+ 'getcolumncount',
+ 'getcolumns',
+ 'getdatabasebyalias',
+ 'getdatabasebyid',
+ 'getdatabasebyname',
+ 'getdatabasehost',
+ 'getdatabasetable',
+ 'getdatabasetablebyalias',
+ 'getdatabasetablebyid',
+ 'getdatabasetablepart',
+ 'getdatasource',
+ 'getdatasourcedatabase',
+ 'getdatasourcedatabasebyid',
+ 'getdatasourcehost',
+ 'getdatasourceid',
+ 'getdatasourcename',
+ 'getdefaultstorage',
+ 'getdoublearrayelements',
+ 'getdoublearrayregion',
+ 'getdoublefield',
+ 'getelementbyid',
+ 'getelementsbytagname',
+ 'getelementsbytagnamens',
+ 'getencoding',
+ 'getface',
+ 'getfield',
+ 'getfieldid',
+ 'getfile',
+ 'getfloatarrayelements',
+ 'getfloatarrayregion',
+ 'getfloatfield',
+ 'getfont',
+ 'getformat',
+ 'getfullfontname',
+ 'getgroup',
+ 'getgroupid',
+ 'getheader',
+ 'getheaders',
+ 'gethostdatabase',
+ 'gethtmlattr',
+ 'gethtmlattrstring',
+ 'getinclude',
+ 'getintarrayelements',
+ 'getintarrayregion',
'getintfield',
+ 'getisocomment',
+ 'getitalic',
+ 'getlasterror',
+ 'getlcapitype',
+ 'getlibrary',
+ 'getlongarrayelements',
+ 'getlongarrayregion',
'getlongfield',
- 'getfloatfield',
- 'getdoublefield',
- 'setobjectfield',
- 'setbooleanfield',
- 'setbytefield',
- 'setcharfield',
- 'setshortfield',
- 'setintfield',
- 'setlongfield',
- 'setfloatfield',
- 'setdoublefield',
- 'getstaticmethodid',
- 'callstaticobjectmethod',
- 'callstaticbooleanmethod',
- 'callstaticbytemethod',
- 'callstaticcharmethod',
- 'callstaticshortmethod',
- 'callstaticintmethod',
- 'callstaticlongmethod',
- 'callstaticfloatmethod',
- 'callstaticdoublemethod',
- 'callstaticvoidmethod',
- 'getstaticfieldid',
- 'getstaticobjectfield',
+ 'getmargins',
+ 'getmethodid',
+ 'getmode',
+ 'getnameditem',
+ 'getnameditemns',
+ 'getnode',
+ 'getnumericvalue',
+ 'getobjectarrayelement',
+ 'getobjectclass',
+ 'getobjectfield',
+ 'getpadding',
+ 'getpagenumber',
+ 'getparts',
+ 'getprefs',
+ 'getpropertyvalue',
+ 'getprowcount',
+ 'getpsfontname',
+ 'getrange',
+ 'getrowcount',
+ 'getset',
+ 'getshortarrayelements',
+ 'getshortarrayregion',
+ 'getshortfield',
+ 'getsize',
+ 'getsortfieldspart',
+ 'getspacing',
'getstaticbooleanfield',
'getstaticbytefield',
'getstaticcharfield',
- 'getstaticshortfield',
+ 'getstaticdoublefield',
+ 'getstaticfieldid',
+ 'getstaticfloatfield',
'getstaticintfield',
'getstaticlongfield',
- 'getstaticfloatfield',
- 'getstaticdoublefield',
- 'setstaticobjectfield',
- 'setstaticbooleanfield',
- 'setstaticbytefield',
- 'setstaticcharfield',
- 'setstaticshortfield',
- 'setstaticintfield',
- 'setstaticlongfield',
- 'setstaticfloatfield',
- 'setstaticdoublefield',
- 'newstring',
- 'getstringlength',
+ 'getstaticmethodid',
+ 'getstaticobjectfield',
+ 'getstaticshortfield',
+ 'getstatus',
'getstringchars',
- 'getarraylength',
- 'newobjectarray',
- 'getobjectarrayelement',
- 'setobjectarrayelement',
- 'newbooleanarray',
- 'newbytearray',
- 'newchararray',
- 'newshortarray',
- 'newintarray',
- 'newlongarray',
- 'newfloatarray',
- 'newdoublearray',
- 'getbooleanarrayelements',
- 'getbytearrayelements',
- 'getchararrayelements',
- 'getshortarrayelements',
- 'getintarrayelements',
- 'getlongarrayelements',
- 'getfloatarrayelements',
- 'getdoublearrayelements',
- 'getbooleanarrayregion',
- 'getbytearrayregion',
- 'getchararrayregion',
- 'getshortarrayregion',
- 'getintarrayregion',
- 'getlongarrayregion',
- 'getfloatarrayregion',
- 'getdoublearrayregion',
- 'setbooleanarrayregion',
- 'setbytearrayregion',
- 'setchararrayregion',
- 'setshortarrayregion',
- 'setintarrayregion',
- 'setlongarrayregion',
- 'setfloatarrayregion',
- 'setdoublearrayregion',
- 'monitorenter',
- 'monitorexit',
- 'fromreflectedmethod',
- 'fromreflectedfield',
- 'toreflectedmethod',
- 'toreflectedfield',
- 'exceptioncheck',
- 'dbtablestable',
- 'dstable',
- 'dsdbtable',
- 'dshoststable',
- 'fieldstable',
- 'sql',
- 'adddatasource',
- 'loaddatasourceinfo',
- 'loaddatasourcehostinfo',
- 'getdatasource',
- 'getdatasourceid',
- 'getdatasourcename',
- 'listdatasources',
- 'listactivedatasources',
- 'removedatasource',
- 'listdatasourcehosts',
- 'listhosts',
- 'adddatasourcehost',
- 'getdatasourcehost',
- 'removedatasourcehost',
- 'getdatabasehost',
- 'gethostdatabase',
- 'listalldatabases',
- 'listdatasourcedatabases',
- 'listhostdatabases',
- 'getdatasourcedatabase',
- 'getdatasourcedatabasebyid',
- 'getdatabasebyname',
- 'getdatabasebyid',
- 'getdatabasebyalias',
- 'adddatasourcedatabase',
- 'removedatasourcedatabase',
- 'listalltables',
- 'listdatabasetables',
- 'getdatabasetable',
- 'getdatabasetablebyalias',
- 'getdatabasetablebyid',
+ 'getstringlength',
+ 'getstyle',
+ 'getsupportedencodings',
'gettablebyid',
- 'adddatabasetable',
- 'removedatabasetable',
- 'removefield',
- 'maybevalue',
+ 'gettext',
+ 'gettextalignment',
+ 'gettextsize',
+ 'gettrigger',
+ 'gettype',
+ 'getunderline',
'getuniquealiasname',
- 'makecolumnlist',
- 'makecolumnmap',
- 'datasourcecolumns',
- 'datasourcemap',
- 'hostcolumns',
- 'hostmap',
- 'hostcolumns2',
- 'hostmap2',
- 'databasecolumns',
- 'databasemap',
- 'tablecolumns',
- 'tablemap',
- 'databasecolumnnames',
- 'hostcolumnnames',
- 'hostcolumnnames2',
- 'datasourcecolumnnames',
- 'tablecolumnnames',
- 'bindcount',
- 'sqlite3',
- 'db',
- 'tables',
- 'hastable',
- 'tablehascolumn',
- 'eachrow',
- 'bindparam',
- 'foreachrow',
- 'executelazy',
- 'executenow',
- 'lastinsertid',
- 'table',
- 'bindone',
- 'src',
- 'stat',
- 'colmap',
- 'getcolumn',
- 'locals',
- 'getcolumns',
- 'bodybytes',
- 'headerbytes',
- 'ready',
- 'token',
- 'url',
- 'done',
- 'header',
- 'result',
- 'statuscode',
- 'raw',
- 'version',
- 'download',
- 'upload',
- 'ftpdeletefile',
- 'ftpgetlisting',
- 'perform',
- 'performonce',
- 's',
- 'linediffers',
- 'sourcefile',
- 'sourceline',
- 'sourcecolumn',
- 'continuationpacket',
- 'continuationpoint',
- 'continuationstack',
- 'features',
- 'lastpoint',
- 'net',
- 'running',
- 'source',
- 'run',
- 'pathtouri',
- 'sendpacket',
- 'readpacket',
- 'handlefeatureset',
- 'handlefeatureget',
- 'handlestdin',
- 'handlestdout',
- 'handlestderr',
- 'isfirststep',
- 'handlecontinuation',
- 'ensurestopped',
- 'handlestackget',
- 'handlecontextnames',
- 'formatcontextelements',
- 'formatcontextelement',
- 'bptypetostr',
- 'bptoxml',
- 'handlebreakpointlist',
+ 'getuser',
+ 'getuserbykey',
+ 'getuserid',
+ 'getversion',
+ 'getzipfilebytes',
+ 'givenblock',
+ 'gmt',
+ 'gotconnection',
+ 'gotfileupload',
+ 'groupby',
+ 'groupcolumns',
+ 'groupcount',
+ 'groupjoin',
'handlebreakpointget',
+ 'handlebreakpointlist',
'handlebreakpointremove',
- 'condtoint',
- 'inttocond',
- 'handlebreakpointupdate',
'handlebreakpointset',
+ 'handlebreakpointupdate',
'handlecontextget',
+ 'handlecontextnames',
+ 'handlecontinuation',
+ 'handledefinitionbody',
+ 'handledefinitionhead',
+ 'handledefinitionresource',
+ 'handledevconnection',
+ 'handleevalexpired',
+ 'handlefeatureget',
+ 'handlefeatureset',
+ 'handlelassoappcontent',
+ 'handlelassoappresponse',
+ 'handlenested',
+ 'handlenormalconnection',
+ 'handlepop',
+ 'handleresource',
'handlesource',
- 'error',
- 'setstatus',
- 'getstatus',
- 'stoprunning',
- 'pollide',
- 'polldbg',
- 'runonce',
- 'arguments',
- 'id',
- 'argumentvalue',
- 'end',
- 'start',
- 'days',
- 'foreachday',
- 'padzero',
- 'actionparams',
- 'capi',
- 'doclose',
- 'dsinfo',
- 'isnothing',
- 'named',
- 'workinginputcolumns',
- 'workingkeycolumns',
- 'workingreturncolumns',
- 'workingsortcolumns',
- 'workingkeyfield_name',
- 'scanfordatasource',
- 'configureds',
- 'configuredskeys',
- 'scrubkeywords',
- 'closeprepared',
- 'filterinputcolumn',
- 'prev',
+ 'handlestackget',
+ 'handlestderr',
+ 'handlestdin',
+ 'handlestdout',
+ 'handshake',
+ 'hasattribute',
+ 'hasattributens',
+ 'hasattributes',
+ 'hasbinaryproperty',
+ 'haschildnodes',
+ 'hasexpired',
+ 'hasfeature',
+ 'hasfield',
+ 'hash',
+ 'hashtmlattr',
+ 'hasmethod',
+ 'hastable',
+ 'hastrailingcomponent',
+ 'hasvalue',
'head',
- 'removenode',
- 'listnode',
- 'bind',
- 'listen',
- 'remoteaddress',
- 'shutdownrdwr',
- 'shutdownwr',
- 'shutdownrd',
- 'localaddress',
- 'accept',
- 'connect',
- 'foreachaccept',
- 'writeobjecttcp',
- 'readobjecttcp',
- 'beginssl',
- 'endssl',
- 'begintls',
- 'endtls',
- 'acceptnossl',
- 'loadcerts',
- 'sslerrfail',
- 'fromname',
- 'fromport',
- 'env',
- 'checked',
- 'getclass',
- 'jobjectisa',
- 'new',
- 'callvoid',
- 'callint',
- 'callfloat',
- 'callboolean',
- 'callobject',
- 'callstring',
- 'callstaticobject',
- 'callstaticstring',
- 'callstaticint',
- 'callstaticboolean',
- 'chk',
- 'makecolor',
- 'realdoc',
- 'addbarcode',
- 'addchapter',
- 'addcheckbox',
- 'addcombobox',
- 'addhiddenfield',
- 'addimage',
- 'addlist',
- 'addpage',
- 'addparagraph',
- 'addpasswordfield',
- 'addphrase',
- 'addradiobutton',
- 'addradiogroup',
- 'addresetbutton',
- 'addsection',
- 'addselectlist',
- 'addsubmitbutton',
- 'addtable',
- 'addtextarea',
- 'addtextfield',
- 'addtext',
- 'arc',
- 'circle',
- 'closepath',
- 'curveto',
- 'drawtext',
- 'getcolor',
- 'getheader',
- 'getheaders',
- 'getmargins',
- 'getpagenumber',
- 'getsize',
+ 'header',
+ 'headerbytes',
+ 'headers',
+ 'headersarray',
+ 'headersmap',
+ 'height',
+ 'histogram',
+ 'home',
+ 'host',
+ 'hostcolumnnames',
+ 'hostcolumnnames2',
+ 'hostcolumns',
+ 'hostcolumns2',
+ 'hostdatasource',
+ 'hostextra',
+ 'hostid',
+ 'hostisdynamic',
+ 'hostmap',
+ 'hostmap2',
+ 'hostname',
+ 'hostpassword',
+ 'hostport',
+ 'hostschema',
+ 'hosttableencoding',
+ 'hosttonet16',
+ 'hosttonet32',
+ 'hosttonet64',
+ 'hostusername',
+ 'hour',
+ 'hourofampm',
+ 'hourofday',
+ 'hoursbetween',
+ 'href',
+ 'hreflang',
+ 'htmlcontent',
+ 'htmlizestacktrace',
+ 'htmlizestacktracelink',
+ 'httpaccept',
+ 'httpacceptencoding',
+ 'httpacceptlanguage',
+ 'httpauthorization',
+ 'httpcachecontrol',
+ 'httpconnection',
+ 'httpcookie',
+ 'httpequiv',
+ 'httphost',
+ 'httpreferer',
+ 'httpreferrer',
+ 'httpuseragent',
+ 'hypot',
+ 'id',
+ 'idealinmemory',
+ 'idle',
+ 'idmap',
+ 'ifempty',
+ 'ifkey',
+ 'ifnotempty',
+ 'ifnotkey',
+ 'ignorecase',
+ 'ilogb',
+ 'imgptr',
+ 'implementation',
+ 'import16bits',
+ 'import32bits',
+ 'import64bits',
+ 'import8bits',
+ 'importas',
+ 'importbytes',
+ 'importfdf',
+ 'importnode',
+ 'importpointer',
+ 'importstring',
+ 'in',
+ 'include',
+ 'includebytes',
+ 'includelibrary',
+ 'includelibraryonce',
+ 'includeonce',
+ 'includes',
+ 'includestack',
+ 'indaylighttime',
+ 'index',
+ 'init',
+ 'initialize',
+ 'initrequest',
+ 'inits',
+ 'inneroncompare',
+ 'input',
+ 'inputcolumns',
+ 'inputtype',
+ 'insert',
+ 'insertback',
+ 'insertbefore',
+ 'insertdata',
+ 'insertfirst',
+ 'insertfrom',
+ 'insertfront',
+ 'insertinternal',
+ 'insertlast',
'insertpage',
- 'line',
- 'rect',
- 'setcolor',
- 'setfont',
- 'setlinewidth',
- 'setpagenumber',
- 'conventionaltop',
- 'lowagiefont',
- 'jcolor',
+ 'install',
+ 'installs',
+ 'integer',
+ 'internalsubset',
+ 'interrupt',
+ 'intersection',
+ 'inttocond',
+ 'invoke',
+ 'invokeautocollect',
+ 'invokeuntil',
+ 'invokewhile',
+ 'ioctl',
+ 'isa',
+ 'isalive',
+ 'isallof',
+ 'isalnum',
+ 'isalpha',
+ 'isanyof',
+ 'isbase',
+ 'isblank',
+ 'iscntrl',
+ 'isdigit',
+ 'isdir',
+ 'isempty',
+ 'isemptyelement',
+ 'isfirststep',
+ 'isfullpath',
+ 'isgraph',
+ 'ishttps',
+ 'isidle',
+ 'isinstanceof',
+ 'islink',
+ 'islower',
+ 'ismultipart',
+ 'isnan',
+ 'isnota',
+ 'isnotempty',
+ 'isnothing',
+ 'iso3country',
+ 'iso3language',
+ 'isopen',
+ 'isprint',
+ 'ispunct',
+ 'issameobject',
+ 'isset',
+ 'issourcefile',
+ 'isspace',
+ 'isssl',
+ 'issupported',
+ 'istitle',
+ 'istruetype',
+ 'istype',
+ 'isualphabetic',
+ 'isulowercase',
+ 'isupper',
+ 'isuuppercase',
+ 'isuwhitespace',
+ 'isvalid',
+ 'iswhitespace',
+ 'isxdigit',
+ 'isxhr',
+ 'item',
+ 'j0',
+ 'j1',
+ 'javascript',
'jbarcode',
- 'generatechecksum',
- 'getbarheight',
- 'getbarmultiplier',
- 'getbarwidth',
- 'getbaseline',
- 'getcode',
- 'getfont',
- 'gettextalignment',
- 'gettextsize',
- 'setbarheight',
- 'setbarmultiplier',
- 'setbarwidth',
- 'setbaseline',
- 'setcode',
- 'setgeneratechecksum',
- 'setshowchecksum',
- 'settextalignment',
- 'settextsize',
- 'showchecksum',
- 'showcode39startstop',
- 'showeanguardbars',
+ 'jcolor',
'jfont',
- 'getencoding',
- 'getface',
- 'getfullfontname',
- 'getpsfontname',
- 'getsupportedencodings',
- 'istruetype',
- 'getstyle',
- 'getbold',
- 'getitalic',
- 'getunderline',
- 'setface',
- 'setunderline',
- 'setbold',
- 'setitalic',
- 'textwidth',
'jimage',
- 'ontop',
'jlist',
+ 'jn',
+ 'jobjectisa',
+ 'join',
'jread',
- 'addjavascript',
- 'exportfdf',
- 'extractimage',
- 'fieldnames',
- 'fieldposition',
- 'fieldtype',
- 'fieldvalue',
- 'gettext',
- 'importfdf',
- 'javascript',
- 'pagecount',
- 'pagerotation',
- 'pagesize',
- 'setfieldvalue',
- 'setpagerange',
+ 'jscontent',
+ 'jsonfornode',
+ 'jsonhtml',
+ 'jsonisleaf',
+ 'jsonlabel',
'jtable',
- 'getabswidth',
- 'getalignment',
- 'getbordercolor',
- 'getborderwidth',
- 'getcolumncount',
- 'getpadding',
- 'getrowcount',
- 'getspacing',
- 'setalignment',
- 'setbordercolor',
- 'setborderwidth',
- 'setpadding',
- 'setspacing',
'jtext',
- 'element',
- 'foreachspool',
- 'unspool',
- 'err',
- 'in',
- 'out',
- 'pid',
- 'wait',
- 'testexitcode',
+ 'julianday',
+ 'kernel',
+ 'key',
+ 'keycolumns',
+ 'keys',
+ 'keywords',
+ 'kill',
+ 'label',
+ 'lang',
+ 'language',
+ 'last_insert_rowid',
+ 'last',
+ 'lastaccessdate',
+ 'lastaccesstime',
+ 'lastchild',
+ 'lastcomponent',
+ 'lasterror',
+ 'lastinsertid',
+ 'lastnode',
+ 'lastpoint',
+ 'lasttouched',
+ 'lazyvalue',
+ 'ldexp',
+ 'leaveopen',
+ 'left',
+ 'length',
+ 'lgamma',
+ 'line',
+ 'linediffers',
+ 'linkto',
+ 'linktype',
+ 'list',
+ 'listactivedatasources',
+ 'listalldatabases',
+ 'listalltables',
+ 'listdatabasetables',
+ 'listdatasourcedatabases',
+ 'listdatasourcehosts',
+ 'listdatasources',
+ 'listen',
+ 'listgroups',
+ 'listgroupsbyuser',
+ 'listhostdatabases',
+ 'listhosts',
+ 'listmethods',
+ 'listnode',
+ 'listusers',
+ 'listusersbygroup',
+ 'loadcerts',
+ 'loaddatasourcehostinfo',
+ 'loaddatasourceinfo',
+ 'loadlibrary',
+ 'localaddress',
+ 'localname',
+ 'locals',
+ 'lock',
+ 'log',
+ 'log10',
+ 'log1p',
+ 'logb',
+ 'lookupnamespace',
+ 'lop',
+ 'lowagiefont',
+ 'lowercase',
+ 'makecolor',
+ 'makecolumnlist',
+ 'makecolumnmap',
+ 'makecookieyumyum',
+ 'makefullpath',
+ 'makeinheritedcopy',
+ 'makenonrelative',
+ 'makeurl',
+ 'map',
+ 'marker',
+ 'matches',
+ 'matchesstart',
+ 'matchposition',
+ 'matchstring',
+ 'matchtriggers',
+ 'max',
+ 'maxinmemory',
+ 'maxlength',
+ 'maxrows',
'maxworkers',
- 'tasks',
- 'workers',
- 'startone',
- 'addtask',
- 'waitforcompletion',
- 'isidle',
- 'scanworkers',
- 'scantasks',
- 'z',
- 'addfile',
- 'adddir',
- 'adddirpath',
- 'foreachfile',
- 'foreachfilename',
- 'eachfilename',
- 'filenames',
- 'getfile',
+ 'maybeslash',
+ 'maybevalue',
+ 'md5hex',
+ 'media',
+ 'members',
+ 'merge',
'meta',
- 'criteria',
- 'map',
- 'valid',
- 'lazyvalue',
- 'dns_response',
- 'qdcount',
- 'qdarray',
- 'answer',
- 'bitformat',
- 'consume_rdata',
- 'consume_string',
- 'consume_label',
- 'consume_domain',
- 'consume_message',
- 'errors',
- 'warnings',
- 'addwarning',
- 'adderror',
- 'renderbytes',
- 'renderstring',
- 'components',
- 'addcomponent',
- 'addcomponents',
- 'body',
- 'renderdocumentbytes',
- 'contenttype',
+ 'method',
+ 'methodname',
+ 'millisecond',
+ 'millisecondsinday',
'mime_boundary',
'mime_contenttype',
'mime_hdrs',
- 'addtextpart',
- 'addhtmlpart',
- 'addattachment',
- 'addpart',
- 'recipients',
- 'pop_capa',
- 'pop_debug',
- 'pop_err',
- 'pop_get',
- 'pop_ids',
- 'pop_index',
- 'pop_log',
- 'pop_mode',
- 'pop_net',
- 'pop_res',
- 'pop_server',
- 'pop_timeout',
- 'pop_token',
- 'pop_cmd',
- 'user',
- 'pass',
- 'apop',
- 'auth',
- 'quit',
- 'rset',
- 'list',
- 'uidl',
- 'retr',
- 'dele',
+ 'mime',
+ 'mimes',
+ 'min',
+ 'minute',
+ 'minutesbetween',
+ 'moddatestr',
+ 'mode',
+ 'modf',
+ 'modificationdate',
+ 'modificationtime',
+ 'modulate',
+ 'monitorenter',
+ 'monitorexit',
+ 'month',
+ 'moveto',
+ 'movetoattribute',
+ 'movetoattributenamespace',
+ 'movetoelement',
+ 'movetofirstattribute',
+ 'movetonextattribute',
+ 'msg',
+ 'mtime',
+ 'multiple',
+ 'n',
+ 'name',
+ 'named',
+ 'namespaceuri',
+ 'needinitialization',
+ 'net',
+ 'nettohost16',
+ 'nettohost32',
+ 'nettohost64',
+ 'new',
+ 'newbooleanarray',
+ 'newbytearray',
+ 'newchararray',
+ 'newdoublearray',
+ 'newfloatarray',
+ 'newglobalref',
+ 'newintarray',
+ 'newlongarray',
+ 'newobject',
+ 'newobjectarray',
+ 'newshortarray',
+ 'newstring',
+ 'next',
+ 'nextafter',
+ 'nextnode',
+ 'nextprime',
+ 'nextprune',
+ 'nextprunedelta',
+ 'nextsibling',
+ 'nodeforpath',
+ 'nodelist',
+ 'nodename',
+ 'nodetype',
+ 'nodevalue',
'noop',
- 'capa',
- 'stls',
- 'authorize',
- 'retrieve',
- 'headers',
- 'uniqueid',
- 'capabilities',
- 'cancel',
- 'results',
- 'lasterror',
+ 'normalize',
+ 'notationname',
+ 'notations',
+ 'novaluelists',
+ 'numsets',
+ 'object',
+ 'objects',
+ 'objecttype',
+ 'onclick',
+ 'oncompare',
+ 'oncomparestrict',
+ 'onconvert',
+ 'oncreate',
+ 'ondblclick',
+ 'onkeydown',
+ 'onkeypress',
+ 'onkeyup',
+ 'onmousedown',
+ 'onmousemove',
+ 'onmouseout',
+ 'onmouseover',
+ 'onmouseup',
+ 'onreset',
+ 'onsubmit',
+ 'ontop',
+ 'open',
+ 'openappend',
+ 'openread',
+ 'opentruncate',
+ 'openwith',
+ 'openwrite',
+ 'openwriteonly',
+ 'orderby',
+ 'orderbydescending',
+ 'out',
+ 'output',
+ 'outputencoding',
+ 'ownerdocument',
+ 'ownerelement',
+ 'padleading',
+ 'padtrailing',
+ 'padzero',
+ 'pagecount',
+ 'pagerotation',
+ 'pagesize',
+ 'param',
+ 'paramdescs',
+ 'params',
+ 'parent',
+ 'parentdir',
+ 'parentnode',
'parse_body',
'parse_boundary',
'parse_charset',
@@ -4370,59 +4320,263 @@ MEMBERS = {
'parse_msg',
'parse_parts',
'parse_rawhdrs',
- 'rawheaders',
- 'content_type',
- 'content_transfer_encoding',
- 'content_disposition',
- 'boundary',
- 'charset',
- 'cc',
- 'subject',
- 'bcc',
- 'date',
+ 'parse',
+ 'parseas',
+ 'parsedocument',
+ 'parsenumber',
+ 'parseoneheaderline',
+ 'pass',
+ 'path',
+ 'pathinfo',
+ 'pathtouri',
+ 'pathtranslated',
'pause',
- 'continue',
- 'touch',
- 'refresh',
- 'queue',
- 'status',
- 'queue_status',
- 'active_tick',
- 'getprefs',
- 'initialize',
+ 'payload',
+ 'pdifference',
+ 'perform',
+ 'performonce',
+ 'perms',
+ 'pid',
+ 'pixel',
+ 'pm',
+ 'polldbg',
+ 'pollide',
+ 'pop_capa',
+ 'pop_cmd',
+ 'pop_debug',
+ 'pop_err',
+ 'pop_get',
+ 'pop_ids',
+ 'pop_index',
+ 'pop_log',
+ 'pop_mode',
+ 'pop_net',
+ 'pop_res',
+ 'pop_server',
+ 'pop_timeout',
+ 'pop_token',
+ 'pop',
+ 'popctx',
+ 'popinclude',
+ 'populate',
+ 'port',
+ 'position',
+ 'postdispatch',
+ 'postparam',
+ 'postparams',
+ 'postparamsary',
+ 'poststring',
+ 'pow',
+ 'predispatch',
+ 'prefix',
+ 'preflight',
+ 'prepare',
+ 'prepared',
+ 'pretty',
+ 'prev',
+ 'previoussibling',
+ 'printsimplemsg',
+ 'private_compare',
+ 'private_find',
+ 'private_findlast',
+ 'private_merge',
+ 'private_rebalanceforinsert',
+ 'private_rebalanceforremove',
+ 'private_replaceall',
+ 'private_replacefirst',
+ 'private_rotateleft',
+ 'private_rotateright',
+ 'private_setrange',
+ 'private_split',
+ 'probemimetype',
+ 'provides',
+ 'proxying',
+ 'prune',
+ 'publicid',
+ 'pullhttpheader',
+ 'pullmimepost',
+ 'pulloneheaderline',
+ 'pullpost',
+ 'pullrawpost',
+ 'pullrawpostchunks',
+ 'pullrequest',
+ 'pullrequestline',
+ 'push',
+ 'pushctx',
+ 'pushinclude',
+ 'qdarray',
+ 'qdcount',
+ 'queryparam',
+ 'queryparams',
+ 'queryparamsary',
+ 'querystring',
'queue_maintenance',
'queue_messages',
- 'content',
+ 'queue_status',
+ 'queue',
+ 'quit',
+ 'r',
+ 'raw',
+ 'rawcontent',
+ 'rawdiff',
+ 'rawheader',
+ 'rawheaders',
+ 'rawinvokable',
+ 'read',
+ 'readattributevalue',
+ 'readbytes',
+ 'readbytesfully',
+ 'readdestinations',
+ 'readerror',
+ 'readidobjects',
+ 'readline',
+ 'readmessage',
+ 'readnumber',
+ 'readobject',
+ 'readobjecttcp',
+ 'readpacket',
+ 'readsomebytes',
+ 'readstring',
+ 'ready',
+ 'realdoc',
+ 'realpath',
+ 'receivefd',
+ 'recipients',
+ 'recover',
+ 'rect',
'rectype',
- 'requestid',
- 'cachedappprefix',
- 'cachedroot',
- 'cookiesary',
- 'fcgireq',
- 'fileuploadsary',
- 'headersmap',
- 'httpauthorization',
- 'postparamsary',
- 'queryparamsary',
- 'documentroot',
- 'appprefix',
- 'httpconnection',
- 'httpcookie',
- 'httphost',
- 'httpuseragent',
- 'httpcachecontrol',
- 'httpreferer',
- 'httpreferrer',
- 'contentlength',
- 'pathtranslated',
+ 'red',
+ 'redirectto',
+ 'referrals',
+ 'refid',
+ 'refobj',
+ 'refresh',
+ 'rel',
+ 'remainder',
'remoteaddr',
+ 'remoteaddress',
'remoteport',
+ 'remove',
+ 'removeall',
+ 'removeattribute',
+ 'removeattributenode',
+ 'removeattributens',
+ 'removeback',
+ 'removechild',
+ 'removedatabasetable',
+ 'removedatasource',
+ 'removedatasourcedatabase',
+ 'removedatasourcehost',
+ 'removefield',
+ 'removefirst',
+ 'removefront',
+ 'removegroup',
+ 'removelast',
+ 'removeleading',
+ 'removenameditem',
+ 'removenameditemns',
+ 'removenode',
+ 'removesubnode',
+ 'removetrailing',
+ 'removeuser',
+ 'removeuserfromallgroups',
+ 'removeuserfromgroup',
+ 'rename',
+ 'renderbytes',
+ 'renderdocumentbytes',
+ 'renderstring',
+ 'replace',
+ 'replaceall',
+ 'replacechild',
+ 'replacedata',
+ 'replacefirst',
+ 'replaceheader',
+ 'replacepattern',
+ 'representnode',
+ 'representnoderesult',
+ 'reqid',
+ 'requestid',
'requestmethod',
+ 'requestparams',
'requesturi',
+ 'requires',
+ 'reserve',
+ 'reset',
+ 'resize',
+ 'resolutionh',
+ 'resolutionv',
+ 'resolvelinks',
+ 'resourcedata',
+ 'resourceinvokable',
+ 'resourcename',
+ 'resources',
+ 'respond',
+ 'restart',
+ 'restname',
+ 'result',
+ 'results',
+ 'resume',
+ 'retr',
+ 'retrieve',
+ 'returncolumns',
+ 'returntype',
+ 'rev',
+ 'reverse',
+ 'rewind',
+ 'right',
+ 'rint',
+ 'roll',
+ 'root',
+ 'rootmap',
+ 'rotate',
+ 'route',
+ 'rowsfound',
+ 'rset',
+ 'rule',
+ 'rules',
+ 'run',
+ 'running',
+ 'runonce',
+ 's',
+ 'sa',
+ 'safeexport8bits',
+ 'sameas',
+ 'save',
+ 'savedata',
+ 'scalb',
+ 'scale',
+ 'scanfordatasource',
+ 'scantasks',
+ 'scanworkers',
+ 'schemaname',
+ 'scheme',
+ 'script',
+ 'scriptextensions',
'scriptfilename',
'scriptname',
+ 'scripttype',
'scripturi',
'scripturl',
+ 'scrubkeywords',
+ 'search',
+ 'searchinbucket',
+ 'searchurl',
+ 'second',
+ 'secondsbetween',
+ 'seek',
+ 'select',
+ 'selected',
+ 'selectmany',
+ 'self',
+ 'send',
+ 'sendchunk',
+ 'sendfd',
+ 'sendfile',
+ 'sendpacket',
+ 'sendresponse',
+ 'separator',
+ 'serializationelements',
+ 'serialize',
'serveraddr',
'serveradmin',
'servername',
@@ -4430,296 +4584,280 @@ MEMBERS = {
'serverprotocol',
'serversignature',
'serversoftware',
- 'pathinfo',
- 'gatewayinterface',
- 'httpaccept',
- 'httpacceptencoding',
- 'httpacceptlanguage',
- 'ishttps',
- 'cookies',
- 'cookie',
- 'rawheader',
- 'queryparam',
- 'postparam',
- 'param',
- 'queryparams',
- 'querystring',
- 'postparams',
- 'poststring',
- 'params',
- 'fileuploads',
- 'isxhr',
- 'reqid',
- 'statusmsg',
- 'requestparams',
- 'stdin',
- 'mimes',
- 'writeheaderline',
- 'writeheaderbytes',
- 'writebodybytes',
- 'cap',
- 'n',
- 'proxying',
- 'stop',
- 'printsimplemsg',
- 'handleevalexpired',
- 'handlenormalconnection',
- 'handledevconnection',
- 'splittoprivatedev',
- 'getmode',
- 'curl',
- 'novaluelists',
- 'makeurl',
- 'choosecolumntype',
- 'getdatabasetablepart',
- 'getlcapitype',
- 'buildquery',
- 'getsortfieldspart',
- 'endjs',
- 'title',
- 'addjs',
- 'addjstext',
- 'addendjs',
- 'addendjstext',
- 'addcss',
- 'addfavicon',
- 'attrs',
- 'dtdid',
- 'lang',
- 'xhtml',
- 'style',
- 'gethtmlattr',
- 'hashtmlattr',
- 'onmouseover',
- 'onkeydown',
- 'dir',
- 'onclick',
- 'onkeypress',
- 'onmouseout',
- 'onkeyup',
- 'onmousemove',
- 'onmouseup',
- 'ondblclick',
- 'onmousedown',
+ 'sessionsdump',
+ 'sessionsmap',
+ 'set',
+ 'setalignment',
+ 'setattr',
+ 'setattribute',
+ 'setattributenode',
+ 'setattributenodens',
+ 'setattributens',
+ 'setbarheight',
+ 'setbarmultiplier',
+ 'setbarwidth',
+ 'setbaseline',
+ 'setbold',
+ 'setbooleanarrayregion',
+ 'setbooleanfield',
+ 'setbordercolor',
+ 'setborderwidth',
+ 'setbytearrayregion',
+ 'setbytefield',
+ 'setchararrayregion',
+ 'setcharfield',
+ 'setcode',
+ 'setcolor',
+ 'setcolorspace',
+ 'setcookie',
+ 'setcwd',
+ 'setdefaultstorage',
+ 'setdestination',
+ 'setdoublearrayregion',
+ 'setdoublefield',
+ 'setencoding',
+ 'setface',
+ 'setfieldvalue',
+ 'setfindpattern',
+ 'setfloatarrayregion',
+ 'setfloatfield',
+ 'setfont',
+ 'setformat',
+ 'setgeneratechecksum',
+ 'setheaders',
'sethtmlattr',
- 'class',
- 'gethtmlattrstring',
- 'tag',
- 'code',
- 'msg',
- 'scripttype',
- 'defer',
- 'httpequiv',
- 'scheme',
- 'href',
- 'hreflang',
- 'linktype',
- 'rel',
- 'rev',
- 'media',
- 'declare',
- 'classid',
- 'codebase',
- 'objecttype',
- 'codetype',
- 'archive',
- 'standby',
- 'usemap',
- 'tabindex',
- 'styletype',
- 'method',
- 'enctype',
- 'accept_charset',
- 'onsubmit',
- 'onreset',
- 'accesskey',
- 'inputtype',
- 'maxlength',
- 'for',
- 'selected',
- 'label',
- 'multiple',
- 'buff',
- 'wroteheaders',
- 'pullrequest',
- 'pullrawpost',
+ 'setignorecase',
+ 'setinput',
+ 'setintarrayregion',
+ 'setintfield',
+ 'setitalic',
+ 'setlinewidth',
+ 'setlongarrayregion',
+ 'setlongfield',
+ 'setmarker',
+ 'setmaxfilesize',
+ 'setmode',
+ 'setname',
+ 'setnameditem',
+ 'setnameditemns',
+ 'setobjectarrayelement',
+ 'setobjectfield',
+ 'setpadding',
+ 'setpagenumber',
+ 'setpagerange',
+ 'setposition',
+ 'setrange',
+ 'setreplacepattern',
+ 'setshortarrayregion',
+ 'setshortfield',
+ 'setshowchecksum',
+ 'setsize',
+ 'setspacing',
+ 'setstaticbooleanfield',
+ 'setstaticbytefield',
+ 'setstaticcharfield',
+ 'setstaticdoublefield',
+ 'setstaticfloatfield',
+ 'setstaticintfield',
+ 'setstaticlongfield',
+ 'setstaticobjectfield',
+ 'setstaticshortfield',
+ 'setstatus',
+ 'settextalignment',
+ 'settextsize',
+ 'settimezone',
+ 'settrait',
+ 'setunderline',
+ 'sharpen',
+ 'shouldabort',
'shouldclose',
- 'pullurlpost',
- 'pullmimepost',
- 'pullhttpheader',
- 'pulloneheaderline',
- 'parseoneheaderline',
- 'addoneheaderline',
- 'safeexport8bits',
- 'writeheader',
- 'fail',
- 'connhandler',
- 'port',
- 'connectionhandler',
- 'acceptconnections',
- 'gotconnection',
- 'failnoconnectionhandler',
+ 'showchecksum',
+ 'showcode39startstop',
+ 'showeanguardbars',
+ 'shutdownrd',
+ 'shutdownrdwr',
+ 'shutdownwr',
+ 'sin',
+ 'sinh',
+ 'size',
+ 'skip',
+ 'skiprows',
+ 'sort',
+ 'sortcolumns',
+ 'source',
+ 'sourcecolumn',
+ 'sourcefile',
+ 'sourceline',
+ 'specified',
+ 'split',
'splitconnection',
- 'scriptextensions',
- 'sendfile',
- 'probemimetype',
- 'appname',
- 'inits',
- 'installs',
- 'rootmap',
- 'install',
- 'getappsource',
- 'preflight',
+ 'splitdebuggingthread',
+ 'splitextension',
+ 'splittext',
+ 'splitthread',
+ 'splittoprivatedev',
'splituppath',
- 'handleresource',
- 'handledefinitionhead',
- 'handledefinitionbody',
- 'handledefinitionresource',
- 'execinstalls',
- 'execinits',
- 'payload',
- 'fullpath',
- 'resourcename',
- 'issourcefile',
- 'resourceinvokable',
+ 'sql',
+ 'sqlite3',
+ 'sqrt',
+ 'src',
'srcpath',
- 'resources',
- 'eligiblepath',
- 'eligiblepaths',
- 'expiresminutes',
- 'moddatestr',
- 'zips',
- 'addzip',
- 'getzipfilebytes',
- 'resourcedata',
- 'zip',
- 'zipfile',
- 'zipname',
- 'zipfilename',
- 'rawinvokable',
- 'route',
- 'setdestination',
- 'getprowcount',
- 'encodepassword',
- 'checkuser',
- 'needinitialization',
- 'adduser',
- 'getuserid',
- 'getuser',
- 'getuserbykey',
- 'removeuser',
- 'listusers',
- 'listusersbygroup',
- 'countusersbygroup',
- 'addgroup',
- 'updategroup',
- 'getgroupid',
- 'getgroup',
- 'removegroup',
- 'listgroups',
- 'listgroupsbyuser',
- 'addusertogroup',
- 'removeuserfromgroup',
- 'removeuserfromallgroups',
- 'md5hex',
- 'usercolumns',
- 'groupcolumns',
- 'expireminutes',
- 'lasttouched',
- 'hasexpired',
- 'idealinmemory',
- 'maxinmemory',
- 'nextprune',
- 'nextprunedelta',
- 'sessionsdump',
+ 'sslerrfail',
+ 'stack',
+ 'standby',
+ 'start',
+ 'startone',
'startup',
- 'validatesessionstable',
- 'createtable',
- 'fetchdata',
- 'savedata',
- 'kill',
- 'expire',
- 'prune',
- 'entry',
- 'host',
- 'tb',
- 'setdefaultstorage',
- 'getdefaultstorage',
- 'onconvert',
- 'send',
- 'nodelist',
- 'delim',
+ 'stat',
+ 'statement',
+ 'statementonly',
+ 'stats',
+ 'status',
+ 'statuscode',
+ 'statusmsg',
+ 'stdin',
+ 'step',
+ 'stls',
+ 'stop',
+ 'stoprunning',
+ 'storedata',
+ 'stripfirstcomponent',
+ 'striplastcomponent',
+ 'style',
+ 'styletype',
+ 'sub',
+ 'subject',
'subnode',
'subnodes',
- 'addsubnode',
- 'removesubnode',
- 'nodeforpath',
- 'representnoderesult',
- 'mime',
- 'extensions',
- 'representnode',
- 'jsonfornode',
- 'defaultcontentrepresentation',
+ 'substringdata',
+ 'subtract',
+ 'subtraits',
+ 'sum',
'supportscontentrepresentation',
- 'htmlcontent',
- 'appmessage',
- 'appstatus',
- 'atends',
- 'chunked',
- 'cookiesarray',
- 'didinclude',
- 'errstack',
- 'headersarray',
- 'includestack',
- 'outputencoding',
- 'sessionsmap',
- 'htmlizestacktrace',
- 'includes',
- 'respond',
- 'sendresponse',
- 'sendchunk',
- 'makecookieyumyum',
- 'getinclude',
- 'include',
- 'includeonce',
- 'includelibrary',
- 'includelibraryonce',
- 'includebytes',
- 'addatend',
- 'setcookie',
- 'addheader',
- 'replaceheader',
- 'setheaders',
- 'rawcontent',
- 'redirectto',
- 'htmlizestacktracelink',
- 'doatbegins',
- 'handlelassoappcontent',
- 'handlelassoappresponse',
- 'domainbody',
- 'establisherrorstate',
- 'tryfinderrorfile',
- 'doatends',
- 'dosessions',
- 'makenonrelative',
- 'pushinclude',
- 'popinclude',
- 'findinclude',
- 'checkdebugging',
- 'splitdebuggingthread',
- 'matchtriggers',
- 'rules',
- 'shouldabort',
- 'gettrigger',
+ 'swapbytes',
+ 'systemid',
+ 't',
+ 'tabindex',
+ 'table',
+ 'tablecolumnnames',
+ 'tablecolumns',
+ 'tablehascolumn',
+ 'tableizestacktrace',
+ 'tableizestacktracelink',
+ 'tablemap',
+ 'tablename',
+ 'tables',
+ 'tabs',
+ 'tabstr',
+ 'tag',
+ 'tagname',
+ 'take',
+ 'tan',
+ 'tanh',
+ 'target',
+ 'tasks',
+ 'tb',
+ 'tell',
+ 'testexitcode',
+ 'testlock',
+ 'textwidth',
+ 'thenby',
+ 'thenbydescending',
+ 'threadreaddesc',
+ 'throw',
+ 'thrownew',
+ 'time',
+ 'timezone',
+ 'title',
+ 'titlecase',
+ 'to',
+ 'token',
+ 'tolower',
+ 'top',
+ 'toreflectedfield',
+ 'toreflectedmethod',
+ 'total_changes',
+ 'totitle',
+ 'touch',
+ 'toupper',
+ 'toxmlstring',
+ 'trace',
+ 'trackingid',
+ 'trait',
+ 'transform',
'trigger',
- 'rule',
- 'foo',
- 'jsonlabel',
- 'jsonhtml',
- 'jsonisleaf',
- 'acceptpost',
- 'csscontent',
- 'jscontent'
+ 'trim',
+ 'trunk',
+ 'tryfinderrorfile',
+ 'trylock',
+ 'tryreadobject',
+ 'type',
+ 'typename',
+ 'uidl',
+ 'uncompress',
+ 'unescape',
+ 'union',
+ 'uniqueid',
+ 'unlock',
+ 'unspool',
+ 'up',
+ 'update',
+ 'updategroup',
+ 'upload',
+ 'uppercase',
+ 'url',
+ 'used',
+ 'usemap',
+ 'user',
+ 'usercolumns',
+ 'valid',
+ 'validate',
+ 'validatesessionstable',
+ 'value',
+ 'values',
+ 'valuetype',
+ 'variant',
+ 'version',
+ 'wait',
+ 'waitforcompletion',
+ 'warnings',
+ 'week',
+ 'weekofmonth',
+ 'weekofyear',
+ 'where',
+ 'width',
+ 'workers',
+ 'workinginputcolumns',
+ 'workingkeycolumns',
+ 'workingkeyfield_name',
+ 'workingreturncolumns',
+ 'workingsortcolumns',
+ 'write',
+ 'writebodybytes',
+ 'writebytes',
+ 'writeheader',
+ 'writeheaderbytes',
+ 'writeheaderline',
+ 'writeid',
+ 'writemessage',
+ 'writeobject',
+ 'writeobjecttcp',
+ 'writestring',
+ 'wroteheaders',
+ 'xhtml',
+ 'xmllang',
+ 'y0',
+ 'y1',
+ 'year',
+ 'yearwoy',
+ 'yn',
+ 'z',
+ 'zip',
+ 'zipfile',
+ 'zipfilename',
+ 'zipname',
+ 'zips',
+ 'zoneoffset',
),
'Lasso 8 Member Tags': (
'accept',
@@ -5177,6 +5315,6 @@ MEMBERS = {
'writeunlock',
'xmllang',
'xmlschematype',
- 'year'
+ 'year',
)
}
diff --git a/pygments/lexers/_mapping.py b/pygments/lexers/_mapping.py
index 2e855570..a08e806c 100644
--- a/pygments/lexers/_mapping.py
+++ b/pygments/lexers/_mapping.py
@@ -9,15 +9,16 @@
Do not alter the LEXERS dictionary by hand.
- :copyright: Copyright 2006-2015 by the Pygments team, see AUTHORS.
+ :copyright: Copyright 2006-2014 by the Pygments team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
from __future__ import print_function
LEXERS = {
- 'ABAPLexer': ('pygments.lexers.business', 'ABAP', ('abap',), ('*.abap',), ('text/x-abap',)),
+ 'ABAPLexer': ('pygments.lexers.business', 'ABAP', ('abap',), ('*.abap', '*.ABAP'), ('text/x-abap',)),
'APLLexer': ('pygments.lexers.apl', 'APL', ('apl',), ('*.apl',), ()),
+ 'AbnfLexer': ('pygments.lexers.grammar_notation', 'ABNF', ('abnf',), ('*.abnf',), ('text/x-abnf',)),
'ActionScript3Lexer': ('pygments.lexers.actionscript', 'ActionScript 3', ('as3', 'actionscript3'), ('*.as',), ('application/x-actionscript3', 'text/x-actionscript3', 'text/actionscript3')),
'ActionScriptLexer': ('pygments.lexers.actionscript', 'ActionScript', ('as', 'actionscript'), ('*.as',), ('application/x-actionscript', 'text/x-actionscript', 'text/actionscript')),
'AdaLexer': ('pygments.lexers.pascal', 'Ada', ('ada', 'ada95', 'ada2005'), ('*.adb', '*.ads', '*.ada'), ('text/x-ada',)),
@@ -43,20 +44,25 @@ LEXERS = {
'AutohotkeyLexer': ('pygments.lexers.automation', 'autohotkey', ('ahk', 'autohotkey'), ('*.ahk', '*.ahkl'), ('text/x-autohotkey',)),
'AwkLexer': ('pygments.lexers.textedit', 'Awk', ('awk', 'gawk', 'mawk', 'nawk'), ('*.awk',), ('application/x-awk',)),
'BBCodeLexer': ('pygments.lexers.markup', 'BBCode', ('bbcode',), (), ('text/x-bbcode',)),
+ 'BCLexer': ('pygments.lexers.algebra', 'BC', ('bc',), ('*.bc',), ()),
'BaseMakefileLexer': ('pygments.lexers.make', 'Base Makefile', ('basemake',), (), ()),
'BashLexer': ('pygments.lexers.shell', 'Bash', ('bash', 'sh', 'ksh', 'shell'), ('*.sh', '*.ksh', '*.bash', '*.ebuild', '*.eclass', '.bashrc', 'bashrc', '.bash_*', 'bash_*', 'PKGBUILD'), ('application/x-sh', 'application/x-shellscript')),
- 'BashSessionLexer': ('pygments.lexers.shell', 'Bash Session', ('console',), ('*.sh-session',), ('application/x-shell-session',)),
+ 'BashSessionLexer': ('pygments.lexers.shell', 'Bash Session', ('console', 'shell-session'), ('*.sh-session', '*.shell-session'), ('application/x-shell-session', 'application/x-sh-session')),
'BatchLexer': ('pygments.lexers.shell', 'Batchfile', ('bat', 'batch', 'dosbatch', 'winbatch'), ('*.bat', '*.cmd'), ('application/x-dos-batch',)),
'BefungeLexer': ('pygments.lexers.esoteric', 'Befunge', ('befunge',), ('*.befunge',), ('application/x-befunge',)),
'BlitzBasicLexer': ('pygments.lexers.basic', 'BlitzBasic', ('blitzbasic', 'b3d', 'bplus'), ('*.bb', '*.decls'), ('text/x-bb',)),
'BlitzMaxLexer': ('pygments.lexers.basic', 'BlitzMax', ('blitzmax', 'bmax'), ('*.bmx',), ('text/x-bmx',)),
+ 'BnfLexer': ('pygments.lexers.grammar_notation', 'BNF', ('bnf',), ('*.bnf',), ('text/x-bnf',)),
'BooLexer': ('pygments.lexers.dotnet', 'Boo', ('boo',), ('*.boo',), ('text/x-boo',)),
+ 'BoogieLexer': ('pygments.lexers.esoteric', 'Boogie', ('boogie',), ('*.bpl',), ()),
'BrainfuckLexer': ('pygments.lexers.esoteric', 'Brainfuck', ('brainfuck', 'bf'), ('*.bf', '*.b'), ('application/x-brainfuck',)),
'BroLexer': ('pygments.lexers.dsls', 'Bro', ('bro',), ('*.bro',), ()),
'BugsLexer': ('pygments.lexers.modeling', 'BUGS', ('bugs', 'winbugs', 'openbugs'), ('*.bug',), ()),
+ 'CAmkESLexer': ('pygments.lexers.esoteric', 'CAmkES', ('camkes', 'idl4'), ('*.camkes', '*.idl4'), ()),
'CLexer': ('pygments.lexers.c_cpp', 'C', ('c',), ('*.c', '*.h', '*.idc'), ('text/x-chdr', 'text/x-csrc')),
'CMakeLexer': ('pygments.lexers.make', 'CMake', ('cmake',), ('*.cmake', 'CMakeLists.txt'), ('text/x-cmake',)),
'CObjdumpLexer': ('pygments.lexers.asm', 'c-objdump', ('c-objdump',), ('*.c-objdump',), ('text/x-c-objdump',)),
+ 'CPSALexer': ('pygments.lexers.lisp', 'CPSA', ('cpsa',), ('*.cpsa',), ()),
'CSharpAspxLexer': ('pygments.lexers.dotnet', 'aspx-cs', ('aspx-cs',), ('*.aspx', '*.asax', '*.ascx', '*.ashx', '*.asmx', '*.axd'), ()),
'CSharpLexer': ('pygments.lexers.dotnet', 'C#', ('csharp', 'c#'), ('*.cs',), ('text/x-csharp',)),
'Ca65Lexer': ('pygments.lexers.asm', 'ca65 assembler', ('ca65',), ('*.s',), ()),
@@ -81,11 +87,16 @@ LEXERS = {
'ColdfusionHtmlLexer': ('pygments.lexers.templates', 'Coldfusion HTML', ('cfm',), ('*.cfm', '*.cfml'), ('application/x-coldfusion',)),
'ColdfusionLexer': ('pygments.lexers.templates', 'cfstatement', ('cfs',), (), ()),
'CommonLispLexer': ('pygments.lexers.lisp', 'Common Lisp', ('common-lisp', 'cl', 'lisp'), ('*.cl', '*.lisp'), ('text/x-common-lisp',)),
+ 'ComponentPascalLexer': ('pygments.lexers.oberon', 'Component Pascal', ('componentpascal', 'cp'), ('*.cp', '*.cps'), ('text/x-component-pascal',)),
'CoqLexer': ('pygments.lexers.theorem', 'Coq', ('coq',), ('*.v',), ('text/x-coq',)),
'CppLexer': ('pygments.lexers.c_cpp', 'C++', ('cpp', 'c++'), ('*.cpp', '*.hpp', '*.c++', '*.h++', '*.cc', '*.hh', '*.cxx', '*.hxx', '*.C', '*.H', '*.cp', '*.CPP'), ('text/x-c++hdr', 'text/x-c++src')),
'CppObjdumpLexer': ('pygments.lexers.asm', 'cpp-objdump', ('cpp-objdump', 'c++-objdumb', 'cxx-objdump'), ('*.cpp-objdump', '*.c++-objdump', '*.cxx-objdump'), ('text/x-cpp-objdump',)),
+ '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', ('csound-document', 'csound-csd'), ('*.csd',), ()),
+ 'CsoundOrchestraLexer': ('pygments.lexers.csound', 'Csound Orchestra', ('csound', 'csound-orc'), ('*.orc',), ()),
+ 'CsoundScoreLexer': ('pygments.lexers.csound', 'Csound Score', ('csound-score', 'csound-sco'), ('*.sco',), ()),
'CssDjangoLexer': ('pygments.lexers.templates', 'CSS+Django/Jinja', ('css+django', 'css+jinja'), (), ('text/css+django', 'text/css+jinja')),
'CssErbLexer': ('pygments.lexers.templates', 'CSS+Ruby', ('css+erb', 'css+ruby'), (), ('text/css+ruby',)),
'CssGenshiLexer': ('pygments.lexers.templates', 'CSS+Genshi Text', ('css+genshitext', 'css+genshi'), (), ('text/css+genshi',)),
@@ -112,10 +123,13 @@ LEXERS = {
'DylanLidLexer': ('pygments.lexers.dylan', 'DylanLID', ('dylan-lid', 'lid'), ('*.lid', '*.hdp'), ('text/x-dylan-lid',)),
'ECLLexer': ('pygments.lexers.ecl', 'ECL', ('ecl',), ('*.ecl',), ('application/x-ecl',)),
'ECLexer': ('pygments.lexers.c_like', 'eC', ('ec',), ('*.ec', '*.eh'), ('text/x-echdr', 'text/x-ecsrc')),
+ 'EarlGreyLexer': ('pygments.lexers.javascript', 'Earl Grey', ('earl-grey', 'earlgrey', 'eg'), ('*.eg',), ('text/x-earl-grey',)),
+ 'EasytrieveLexer': ('pygments.lexers.scripting', 'Easytrieve', ('easytrieve',), ('*.ezt', '*.mac'), ('text/x-easytrieve',)),
'EbnfLexer': ('pygments.lexers.parsers', 'EBNF', ('ebnf',), ('*.ebnf',), ('text/x-ebnf',)),
'EiffelLexer': ('pygments.lexers.eiffel', 'Eiffel', ('eiffel',), ('*.e',), ('text/x-eiffel',)),
'ElixirConsoleLexer': ('pygments.lexers.erlang', 'Elixir iex session', ('iex',), (), ('text/x-elixir-shellsession',)),
'ElixirLexer': ('pygments.lexers.erlang', 'Elixir', ('elixir', 'ex', 'exs'), ('*.ex', '*.exs'), ('text/x-elixir',)),
+ 'ElmLexer': ('pygments.lexers.elm', 'Elm', ('elm',), ('*.elm',), ('text/x-elm',)),
'EmacsLispLexer': ('pygments.lexers.lisp', 'EmacsLisp', ('emacs', 'elisp'), ('*.el',), ('text/x-elisp', 'application/x-elisp')),
'ErbLexer': ('pygments.lexers.templates', 'ERB', ('erb',), (), ('application/x-ruby-templating',)),
'ErlangLexer': ('pygments.lexers.erlang', 'Erlang', ('erlang',), ('*.erl', '*.hrl', '*.es', '*.escript'), ('text/x-erlang',)),
@@ -123,11 +137,13 @@ LEXERS = {
'EvoqueHtmlLexer': ('pygments.lexers.templates', 'HTML+Evoque', ('html+evoque',), ('*.html',), ('text/html+evoque',)),
'EvoqueLexer': ('pygments.lexers.templates', 'Evoque', ('evoque',), ('*.evoque',), ('application/x-evoque',)),
'EvoqueXmlLexer': ('pygments.lexers.templates', 'XML+Evoque', ('xml+evoque',), ('*.xml',), ('application/xml+evoque',)),
+ 'EzhilLexer': ('pygments.lexers.ezhil', 'Ezhil', ('ezhil',), ('*.n',), ('text/x-ezhil',)),
'FSharpLexer': ('pygments.lexers.dotnet', 'FSharp', ('fsharp',), ('*.fs', '*.fsi'), ('text/x-fsharp',)),
'FactorLexer': ('pygments.lexers.factor', 'Factor', ('factor',), ('*.factor',), ('text/x-factor',)),
'FancyLexer': ('pygments.lexers.ruby', 'Fancy', ('fancy', 'fy'), ('*.fy', '*.fancypack'), ('text/x-fancysrc',)),
'FantomLexer': ('pygments.lexers.fantom', 'Fantom', ('fan',), ('*.fan',), ('application/x-fantom',)),
'FelixLexer': ('pygments.lexers.felix', 'Felix', ('felix', 'flx'), ('*.flx', '*.flxh'), ('text/x-felix',)),
+ 'FishShellLexer': ('pygments.lexers.shell', 'Fish', ('fish', 'fishshell'), ('*.fish', '*.load'), ('application/x-fish',)),
'FortranFixedLexer': ('pygments.lexers.fortran', 'FortranFixed', ('fortranfixed',), ('*.f', '*.F'), ()),
'FortranLexer': ('pygments.lexers.fortran', 'Fortran', ('fortran',), ('*.f03', '*.f90', '*.F03', '*.F90'), ('text/x-fortran',)),
'FoxProLexer': ('pygments.lexers.foxpro', 'FoxPro', ('foxpro', 'vfp', 'clipper', 'xbase'), ('*.PRG', '*.prg'), ()),
@@ -151,6 +167,7 @@ LEXERS = {
'HandlebarsLexer': ('pygments.lexers.templates', 'Handlebars', ('handlebars',), (), ()),
'HaskellLexer': ('pygments.lexers.haskell', 'Haskell', ('haskell', 'hs'), ('*.hs',), ('text/x-haskell',)),
'HaxeLexer': ('pygments.lexers.haxe', 'Haxe', ('hx', 'haxe', 'hxsl'), ('*.hx', '*.hxsl'), ('text/haxe', 'text/x-haxe', 'text/x-hx')),
+ 'HexdumpLexer': ('pygments.lexers.hexdump', 'Hexdump', ('hexdump',), (), ()),
'HtmlDjangoLexer': ('pygments.lexers.templates', 'HTML+Django/Jinja', ('html+django', 'html+jinja', 'htmldjango'), (), ('text/html+django', 'text/html+jinja')),
'HtmlGenshiLexer': ('pygments.lexers.templates', 'HTML+Genshi', ('html+genshi', 'html+kid'), (), ('text/html+genshi',)),
'HtmlLexer': ('pygments.lexers.html', 'HTML', ('html',), ('*.html', '*.htm', '*.xhtml', '*.xslt'), ('text/html', 'application/xhtml+xml')),
@@ -166,11 +183,12 @@ LEXERS = {
'Inform6Lexer': ('pygments.lexers.int_fiction', 'Inform 6', ('inform6', 'i6'), ('*.inf',), ()),
'Inform6TemplateLexer': ('pygments.lexers.int_fiction', 'Inform 6 template', ('i6t',), ('*.i6t',), ()),
'Inform7Lexer': ('pygments.lexers.int_fiction', 'Inform 7', ('inform7', 'i7'), ('*.ni', '*.i7x'), ()),
- 'IniLexer': ('pygments.lexers.configs', 'INI', ('ini', 'cfg', 'dosini'), ('*.ini', '*.cfg'), ('text/x-ini',)),
+ 'IniLexer': ('pygments.lexers.configs', 'INI', ('ini', 'cfg', 'dosini'), ('*.ini', '*.cfg', '*.inf'), ('text/x-ini', 'text/inf')),
'IoLexer': ('pygments.lexers.iolang', 'Io', ('io',), ('*.io',), ('text/x-iosrc',)),
'IokeLexer': ('pygments.lexers.jvm', 'Ioke', ('ioke', 'ik'), ('*.ik',), ('text/x-iokesrc',)),
'IrcLogsLexer': ('pygments.lexers.textfmts', 'IRC logs', ('irc',), ('*.weechatlog',), ('text/x-irclog',)),
'IsabelleLexer': ('pygments.lexers.theorem', 'Isabelle', ('isabelle',), ('*.thy',), ('text/x-isabelle',)),
+ 'JLexer': ('pygments.lexers.j', 'J', ('j',), ('*.ijs',), ('text/x-j',)),
'JadeLexer': ('pygments.lexers.html', 'Jade', ('jade',), ('*.jade',), ('text/x-jade',)),
'JagsLexer': ('pygments.lexers.modeling', 'JAGS', ('jags',), ('*.jag', '*.bug'), ()),
'JasminLexer': ('pygments.lexers.jvm', 'Jasmin', ('jasmin', 'jasminxt'), ('*.j',), ()),
@@ -181,6 +199,7 @@ LEXERS = {
'JavascriptLexer': ('pygments.lexers.javascript', 'JavaScript', ('js', 'javascript'), ('*.js', '*.jsm'), ('application/javascript', 'application/x-javascript', 'text/x-javascript', 'text/javascript')),
'JavascriptPhpLexer': ('pygments.lexers.templates', 'JavaScript+PHP', ('js+php', 'javascript+php'), (), ('application/x-javascript+php', 'text/x-javascript+php', 'text/javascript+php')),
'JavascriptSmartyLexer': ('pygments.lexers.templates', 'JavaScript+Smarty', ('js+smarty', 'javascript+smarty'), (), ('application/x-javascript+smarty', 'text/x-javascript+smarty', 'text/javascript+smarty')),
+ 'JclLexer': ('pygments.lexers.scripting', 'JCL', ('jcl',), ('*.jcl',), ('text/x-jcl',)),
'JsonLdLexer': ('pygments.lexers.data', 'JSON-LD', ('jsonld', 'json-ld'), ('*.jsonld',), ('application/ld+json',)),
'JsonLexer': ('pygments.lexers.data', 'JSON', ('json',), ('*.json',), ('application/json',)),
'JspLexer': ('pygments.lexers.templates', 'Java Server Page', ('jsp',), ('*.jsp',), ('application/x-jsp',)),
@@ -197,6 +216,7 @@ LEXERS = {
'LassoLexer': ('pygments.lexers.javascript', 'Lasso', ('lasso', 'lassoscript'), ('*.lasso', '*.lasso[89]'), ('text/x-lasso',)),
'LassoXmlLexer': ('pygments.lexers.templates', 'XML+Lasso', ('xml+lasso',), (), ('application/xml+lasso',)),
'LeanLexer': ('pygments.lexers.theorem', 'Lean', ('lean',), ('*.lean',), ('text/x-lean',)),
+ 'LessCssLexer': ('pygments.lexers.css', 'LessCss', ('less',), ('*.less',), ('text/x-less-css',)),
'LighttpdConfLexer': ('pygments.lexers.configs', 'Lighttpd configuration file', ('lighty', 'lighttpd'), (), ('text/x-lighttpd-conf',)),
'LimboLexer': ('pygments.lexers.inferno', 'Limbo', ('limbo',), ('*.b',), ('text/limbo',)),
'LiquidLexer': ('pygments.lexers.templates', 'liquid', ('liquid',), ('*.liquid',), ()),
@@ -210,6 +230,7 @@ LEXERS = {
'LogtalkLexer': ('pygments.lexers.prolog', 'Logtalk', ('logtalk',), ('*.lgt', '*.logtalk'), ('text/x-logtalk',)),
'LuaLexer': ('pygments.lexers.scripting', 'Lua', ('lua',), ('*.lua', '*.wlua'), ('text/x-lua', 'application/x-lua')),
'MOOCodeLexer': ('pygments.lexers.scripting', 'MOOCode', ('moocode', 'moo'), ('*.moo',), ('text/x-moocode',)),
+ 'MSDOSSessionLexer': ('pygments.lexers.shell', 'MSDOS Session', ('doscon',), (), ()),
'MakefileLexer': ('pygments.lexers.make', 'Makefile', ('make', 'makefile', 'mf', 'bsdmake'), ('*.mak', '*.mk', 'Makefile', 'makefile', 'Makefile.*', 'GNUmakefile'), ('text/x-makefile',)),
'MakoCssLexer': ('pygments.lexers.templates', 'CSS+Mako', ('css+mako',), (), ('text/css+mako',)),
'MakoHtmlLexer': ('pygments.lexers.templates', 'HTML+Mako', ('html+mako',), (), ('text/html+mako',)),
@@ -265,19 +286,24 @@ LEXERS = {
'OocLexer': ('pygments.lexers.ooc', 'Ooc', ('ooc',), ('*.ooc',), ('text/x-ooc',)),
'OpaLexer': ('pygments.lexers.ml', 'Opa', ('opa',), ('*.opa',), ('text/x-opa',)),
'OpenEdgeLexer': ('pygments.lexers.business', 'OpenEdge ABL', ('openedge', 'abl', 'progress'), ('*.p', '*.cls'), ('text/x-openedge', 'application/x-openedge')),
+ 'PacmanConfLexer': ('pygments.lexers.configs', 'PacmanConf', ('pacmanconf',), ('pacman.conf',), ()),
'PanLexer': ('pygments.lexers.dsls', 'Pan', ('pan',), ('*.pan',), ()),
+ 'ParaSailLexer': ('pygments.lexers.parasail', 'ParaSail', ('parasail',), ('*.psi', '*.psl'), ('text/x-parasail',)),
'PawnLexer': ('pygments.lexers.pawn', 'Pawn', ('pawn',), ('*.p', '*.pwn', '*.inc'), ('text/x-pawn',)),
'Perl6Lexer': ('pygments.lexers.perl', 'Perl6', ('perl6', 'pl6'), ('*.pl', '*.pm', '*.nqp', '*.p6', '*.6pl', '*.p6l', '*.pl6', '*.6pm', '*.p6m', '*.pm6', '*.t'), ('text/x-perl6', 'application/x-perl6')),
'PerlLexer': ('pygments.lexers.perl', 'Perl', ('perl', 'pl'), ('*.pl', '*.pm', '*.t'), ('text/x-perl', 'application/x-perl')),
'PhpLexer': ('pygments.lexers.php', 'PHP', ('php', 'php3', 'php4', 'php5'), ('*.php', '*.php[345]', '*.inc'), ('text/x-php',)),
'PigLexer': ('pygments.lexers.jvm', 'Pig', ('pig',), ('*.pig',), ('text/x-pig',)),
'PikeLexer': ('pygments.lexers.c_like', 'Pike', ('pike',), ('*.pike', '*.pmod'), ('text/x-pike',)),
+ 'PkgConfigLexer': ('pygments.lexers.configs', 'PkgConfig', ('pkgconfig',), ('*.pc',), ()),
'PlPgsqlLexer': ('pygments.lexers.sql', 'PL/pgSQL', ('plpgsql',), (), ('text/x-plpgsql',)),
'PostScriptLexer': ('pygments.lexers.graphics', 'PostScript', ('postscript', 'postscr'), ('*.ps', '*.eps'), ('application/postscript',)),
'PostgresConsoleLexer': ('pygments.lexers.sql', 'PostgreSQL console (psql)', ('psql', 'postgresql-console', 'postgres-console'), (), ('text/x-postgresql-psql',)),
'PostgresLexer': ('pygments.lexers.sql', 'PostgreSQL SQL dialect', ('postgresql', 'postgres'), (), ('text/x-postgresql',)),
'PovrayLexer': ('pygments.lexers.graphics', 'POVRay', ('pov',), ('*.pov', '*.inc'), ('text/x-povray',)),
'PowerShellLexer': ('pygments.lexers.shell', 'PowerShell', ('powershell', 'posh', 'ps1', 'psm1'), ('*.ps1', '*.psm1'), ('text/x-powershell',)),
+ 'PowerShellSessionLexer': ('pygments.lexers.shell', 'PowerShell Session', ('ps1con',), (), ()),
+ 'PraatLexer': ('pygments.lexers.praat', 'Praat', ('praat',), ('*.praat', '*.proc', '*.psc'), ()),
'PrologLexer': ('pygments.lexers.prolog', 'Prolog', ('prolog',), ('*.ecl', '*.prolog', '*.pro', '*.pl'), ('text/x-prolog',)),
'PropertiesLexer': ('pygments.lexers.configs', 'Properties', ('properties', 'jproperties'), ('*.properties',), ('text/x-java-properties',)),
'ProtoBufLexer': ('pygments.lexers.dsls', 'Protocol Buffer', ('protobuf', 'proto'), ('*.proto',), ()),
@@ -289,7 +315,8 @@ LEXERS = {
'PythonLexer': ('pygments.lexers.python', 'Python', ('python', 'py', 'sage'), ('*.py', '*.pyw', '*.sc', 'SConstruct', 'SConscript', '*.tac', '*.sage'), ('text/x-python', 'application/x-python')),
'PythonTracebackLexer': ('pygments.lexers.python', 'Python Traceback', ('pytb',), ('*.pytb',), ('text/x-python-traceback',)),
'QBasicLexer': ('pygments.lexers.basic', 'QBasic', ('qbasic', 'basic'), ('*.BAS', '*.bas'), ('text/basic',)),
- 'QmlLexer': ('pygments.lexers.webmisc', 'QML', ('qml',), ('*.qml',), ('application/x-qml',)),
+ 'QVToLexer': ('pygments.lexers.qvt', 'QVTO', ('qvto', 'qvt'), ('*.qvto',), ()),
+ 'QmlLexer': ('pygments.lexers.webmisc', 'QML', ('qml', 'qbs'), ('*.qml', '*.qbs'), ('application/x-qml', 'application/x-qt.qbs+qml')),
'RConsoleLexer': ('pygments.lexers.r', 'RConsole', ('rconsole', 'rout'), ('*.Rout',), ()),
'RPMSpecLexer': ('pygments.lexers.installers', 'RPMSpec', ('spec',), ('*.spec',), ('text/x-rpm-spec',)),
'RacketLexer': ('pygments.lexers.lisp', 'Racket', ('racket', 'rkt'), ('*.rkt', '*.rktd', '*.rktl'), ('text/x-racket', 'application/x-racket')),
@@ -310,13 +337,16 @@ LEXERS = {
'ResourceLexer': ('pygments.lexers.resource', 'ResourceBundle', ('resource', 'resourcebundle'), ('*.txt',), ()),
'RexxLexer': ('pygments.lexers.scripting', 'Rexx', ('rexx', 'arexx'), ('*.rexx', '*.rex', '*.rx', '*.arexx'), ('text/x-rexx',)),
'RhtmlLexer': ('pygments.lexers.templates', 'RHTML', ('rhtml', 'html+erb', 'html+ruby'), ('*.rhtml',), ('text/html+ruby',)),
+ 'RoboconfGraphLexer': ('pygments.lexers.roboconf', 'Roboconf Graph', ('roboconf-graph',), ('*.graph',), ()),
+ 'RoboconfInstancesLexer': ('pygments.lexers.roboconf', 'Roboconf Instances', ('roboconf-instances',), ('*.instances',), ()),
'RobotFrameworkLexer': ('pygments.lexers.robotframework', 'RobotFramework', ('robotframework',), ('*.txt', '*.robot'), ('text/x-robotframework',)),
'RqlLexer': ('pygments.lexers.sql', 'RQL', ('rql',), ('*.rql',), ('text/x-rql',)),
'RslLexer': ('pygments.lexers.dsls', 'RSL', ('rsl',), ('*.rsl',), ('text/rsl',)),
'RstLexer': ('pygments.lexers.markup', 'reStructuredText', ('rst', 'rest', 'restructuredtext'), ('*.rst', '*.rest'), ('text/x-rst', 'text/prs.fallenstein.rst')),
+ 'RtsLexer': ('pygments.lexers.trafficscript', 'TrafficScript', ('rts', 'trafficscript'), ('*.rts',), ()),
'RubyConsoleLexer': ('pygments.lexers.ruby', 'Ruby irb session', ('rbcon', 'irb'), (), ('text/x-ruby-shellsession',)),
- 'RubyLexer': ('pygments.lexers.ruby', 'Ruby', ('rb', 'ruby', 'duby'), ('*.rb', '*.rbw', 'Rakefile', '*.rake', '*.gemspec', '*.rbx', '*.duby'), ('text/x-ruby', 'application/x-ruby')),
- 'RustLexer': ('pygments.lexers.rust', 'Rust', ('rust',), ('*.rs',), ('text/rust',)),
+ 'RubyLexer': ('pygments.lexers.ruby', 'Ruby', ('rb', 'ruby', 'duby'), ('*.rb', '*.rbw', 'Rakefile', '*.rake', '*.gemspec', '*.rbx', '*.duby', 'Gemfile'), ('text/x-ruby', 'application/x-ruby')),
+ 'RustLexer': ('pygments.lexers.rust', 'Rust', ('rust',), ('*.rs', '*.rs.in'), ('text/rust',)),
'SLexer': ('pygments.lexers.r', 'S', ('splus', 's', 'r'), ('*.S', '*.R', '.Rhistory', '.Rprofile', '.Renviron'), ('text/S-plus', 'text/S', 'text/x-r-source', 'text/x-r', 'text/x-R', 'text/x-r-history', 'text/x-r-profile')),
'SMLLexer': ('pygments.lexers.ml', 'Standard ML', ('sml',), ('*.sml', '*.sig', '*.fun'), ('text/x-standardml', 'application/x-standardml')),
'SassLexer': ('pygments.lexers.css', 'Sass', ('sass',), ('*.sass',), ('text/x-sass',)),
@@ -325,7 +355,7 @@ LEXERS = {
'SchemeLexer': ('pygments.lexers.lisp', 'Scheme', ('scheme', 'scm'), ('*.scm', '*.ss'), ('text/x-scheme', 'application/x-scheme')),
'ScilabLexer': ('pygments.lexers.matlab', 'Scilab', ('scilab',), ('*.sci', '*.sce', '*.tst'), ('text/scilab',)),
'ScssLexer': ('pygments.lexers.css', 'SCSS', ('scss',), ('*.scss',), ('text/x-scss',)),
- 'ShellSessionLexer': ('pygments.lexers.shell', 'Shell Session', ('shell-session',), ('*.shell-session',), ('application/x-sh-session',)),
+ 'ShenLexer': ('pygments.lexers.lisp', 'Shen', ('shen',), ('*.shen',), ('text/x-shen', 'application/x-shen')),
'SlimLexer': ('pygments.lexers.webmisc', 'Slim', ('slim',), ('*.slim',), ('text/x-slim',)),
'SmaliLexer': ('pygments.lexers.dalvik', 'Smali', ('smali',), ('*.smali',), ('text/smali',)),
'SmalltalkLexer': ('pygments.lexers.smalltalk', 'Smalltalk', ('smalltalk', 'squeak', 'st'), ('*.st',), ('text/x-smalltalk',)),
@@ -339,17 +369,25 @@ LEXERS = {
'SquidConfLexer': ('pygments.lexers.configs', 'SquidConf', ('squidconf', 'squid.conf', 'squid'), ('squid.conf',), ('text/x-squidconf',)),
'SspLexer': ('pygments.lexers.templates', 'Scalate Server Page', ('ssp',), ('*.ssp',), ('application/x-ssp',)),
'StanLexer': ('pygments.lexers.modeling', 'Stan', ('stan',), ('*.stan',), ()),
+ 'SuperColliderLexer': ('pygments.lexers.supercollider', 'SuperCollider', ('sc', 'supercollider'), ('*.sc', '*.scd'), ('application/supercollider', 'text/supercollider')),
'SwiftLexer': ('pygments.lexers.objective', 'Swift', ('swift',), ('*.swift',), ('text/x-swift',)),
'SwigLexer': ('pygments.lexers.c_like', 'SWIG', ('swig',), ('*.swg', '*.i'), ('text/swig',)),
'SystemVerilogLexer': ('pygments.lexers.hdl', 'systemverilog', ('systemverilog', 'sv'), ('*.sv', '*.svh'), ('text/x-systemverilog',)),
+ 'TAPLexer': ('pygments.lexers.testing', 'TAP', ('tap',), ('*.tap',), ()),
'Tads3Lexer': ('pygments.lexers.int_fiction', 'TADS 3', ('tads3',), ('*.t',), ()),
'TclLexer': ('pygments.lexers.tcl', 'Tcl', ('tcl',), ('*.tcl', '*.rvt'), ('text/x-tcl', 'text/x-script.tcl', 'application/x-tcl')),
'TcshLexer': ('pygments.lexers.shell', 'Tcsh', ('tcsh', 'csh'), ('*.tcsh', '*.csh'), ('application/x-csh',)),
+ 'TcshSessionLexer': ('pygments.lexers.shell', 'Tcsh Session', ('tcshcon',), (), ()),
'TeaTemplateLexer': ('pygments.lexers.templates', 'Tea', ('tea',), ('*.tea',), ('text/x-tea',)),
+ 'TermcapLexer': ('pygments.lexers.configs', 'Termcap', ('termcap',), ('termcap', 'termcap.src'), ()),
+ 'TerminfoLexer': ('pygments.lexers.configs', 'Terminfo', ('terminfo',), ('terminfo', 'terminfo.src'), ()),
+ 'TerraformLexer': ('pygments.lexers.configs', 'Terraform', ('terraform', 'tf'), ('*.tf',), ('application/x-tf', 'application/x-terraform')),
'TexLexer': ('pygments.lexers.markup', 'TeX', ('tex', 'latex'), ('*.tex', '*.aux', '*.toc'), ('text/x-tex', 'text/x-latex')),
'TextLexer': ('pygments.lexers.special', 'Text only', ('text',), ('*.txt',), ('text/plain',)),
+ 'ThriftLexer': ('pygments.lexers.dsls', 'Thrift', ('thrift',), ('*.thrift',), ('application/x-thrift',)),
'TodotxtLexer': ('pygments.lexers.textfmts', 'Todotxt', ('todotxt',), ('todo.txt', '*.todotxt'), ('text/x-todo',)),
'TreetopLexer': ('pygments.lexers.parsers', 'Treetop', ('treetop',), ('*.treetop', '*.tt'), ()),
+ 'TurtleLexer': ('pygments.lexers.rdf', 'Turtle', ('turtle',), ('*.ttl',), ('text/turtle', 'application/x-turtle')),
'TwigHtmlLexer': ('pygments.lexers.templates', 'HTML+Twig', ('html+twig',), ('*.twig',), ('text/html+twig',)),
'TwigLexer': ('pygments.lexers.templates', 'Twig', ('twig',), (), ('application/x-twig',)),
'TypeScriptLexer': ('pygments.lexers.javascript', 'TypeScript', ('ts',), ('*.ts',), ('text/x-typescript',)),
@@ -365,6 +403,7 @@ LEXERS = {
'VerilogLexer': ('pygments.lexers.hdl', 'verilog', ('verilog', 'v'), ('*.v',), ('text/x-verilog',)),
'VhdlLexer': ('pygments.lexers.hdl', 'vhdl', ('vhdl',), ('*.vhdl', '*.vhd'), ('text/x-vhdl',)),
'VimLexer': ('pygments.lexers.textedit', 'VimL', ('vim',), ('*.vim', '.vimrc', '.exrc', '.gvimrc', '_vimrc', '_exrc', '_gvimrc', 'vimrc', 'gvimrc'), ('text/x-vim',)),
+ 'X10Lexer': ('pygments.lexers.x10', 'X10', ('x10', 'xten'), ('*.x10',), ('text/x-x10',)),
'XQueryLexer': ('pygments.lexers.webmisc', 'XQuery', ('xquery', 'xqy', 'xq', 'xql', 'xqm'), ('*.xqy', '*.xquery', '*.xq', '*.xql', '*.xqm'), ('text/xquery', 'application/xquery')),
'XmlDjangoLexer': ('pygments.lexers.templates', 'XML+Django/Jinja', ('xml+django', 'xml+jinja'), (), ('application/xml+django', 'application/xml+jinja')),
'XmlErbLexer': ('pygments.lexers.templates', 'XML+Ruby', ('xml+erb', 'xml+ruby'), (), ('application/xml+ruby',)),
@@ -407,11 +446,18 @@ if __name__ == '__main__': # pragma: no cover
# extract useful sourcecode from this file
with open(__file__) as fp:
content = fp.read()
+ # replace crnl to nl for Windows.
+ #
+ # Note that, originally, contributers should keep nl of master
+ # repository, for example by using some kind of automatic
+ # management EOL, like `EolExtension
+ # <https://www.mercurial-scm.org/wiki/EolExtension>`.
+ content = content.replace("\r\n", "\n")
header = content[:content.find('LEXERS = {')]
footer = content[content.find("if __name__ == '__main__':"):]
# write new file
- with open(__file__, 'w') as fp:
+ with open(__file__, 'wb') as fp:
fp.write(header)
fp.write('LEXERS = {\n %s,\n}\n\n' % ',\n '.join(found_lexers))
fp.write(footer)
diff --git a/pygments/lexers/_stan_builtins.py b/pygments/lexers/_stan_builtins.py
index 6bf44574..6585ad71 100644
--- a/pygments/lexers/_stan_builtins.py
+++ b/pygments/lexers/_stan_builtins.py
@@ -4,7 +4,7 @@
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This file contains the names of functions for Stan used by
- ``pygments.lexers.math.StanLexer. This is for Stan language version 2.7.0
+ ``pygments.lexers.math.StanLexer. This is for Stan language version 2.8.0.
:copyright: Copyright 2006-2015 by the Pygments team, see AUTHORS.
:license: BSD, see LICENSE for details.
@@ -39,8 +39,7 @@ TYPES = (
'simplex',
'unit_vector',
'vector',
- 'void'
-)
+ 'void')
FUNCTIONS = (
'Phi',
@@ -105,6 +104,11 @@ FUNCTIONS = (
'cos',
'cosh',
'crossprod',
+ 'csr_extract_u',
+ 'csr_extract_v',
+ 'csr_extract_w',
+ 'csr_matrix_times_vector',
+ 'csr_to_dense_matrix',
'cumulative_sum',
'determinant',
'diag_matrix',
@@ -187,6 +191,7 @@ FUNCTIONS = (
'inv_gamma_log',
'inv_gamma_rng',
'inv_logit',
+ 'inv_phi',
'inv_sqrt',
'inv_square',
'inv_wishart_log',
diff --git a/pygments/lexers/algebra.py b/pygments/lexers/algebra.py
index 873b1bf2..fc54c3c3 100644
--- a/pygments/lexers/algebra.py
+++ b/pygments/lexers/algebra.py
@@ -15,7 +15,7 @@ from pygments.lexer import RegexLexer, bygroups, words
from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
Number, Punctuation
-__all__ = ['GAPLexer', 'MathematicaLexer', 'MuPADLexer']
+__all__ = ['GAPLexer', 'MathematicaLexer', 'MuPADLexer', 'BCLexer']
class GAPLexer(RegexLexer):
@@ -65,7 +65,7 @@ class GAPLexer(RegexLexer):
(r'[0-9]+(?:\.[0-9]*)?(?:e[0-9]+)?', Number),
(r'\.[0-9]+(?:e[0-9]+)?', Number),
(r'.', Text)
- ]
+ ],
}
@@ -183,5 +183,39 @@ class MuPADLexer(RegexLexer):
(r'/\*', Comment.Multiline, '#push'),
(r'\*/', Comment.Multiline, '#pop'),
(r'[*/]', Comment.Multiline)
- ]
+ ],
+ }
+
+
+class BCLexer(RegexLexer):
+ """
+ A `BC <https://www.gnu.org/software/bc/>`_ lexer.
+
+ .. versionadded:: 2.1
+ """
+ name = 'BC'
+ aliases = ['bc']
+ filenames = ['*.bc']
+
+ tokens = {
+ 'root': [
+ (r'/\*', Comment.Multiline, 'comment'),
+ (r'"(?:[^"\\]|\\.)*"', String),
+ (r'[{}();,]', Punctuation),
+ (words(('if', 'else', 'while', 'for', 'break', 'continue',
+ 'halt', 'return', 'define', 'auto', 'print', 'read',
+ 'length', 'scale', 'sqrt', 'limits', 'quit',
+ 'warranty'), suffix=r'\b'), Keyword),
+ (r'\+\+|--|\|\||&&|'
+ r'([-<>+*%\^/!=])=?', Operator),
+ # bc doesn't support exponential
+ (r'[0-9]+(\.[0-9]*)?', Number),
+ (r'\.[0-9]+', Number),
+ (r'.', Text)
+ ],
+ 'comment': [
+ (r'[^*/]+', Comment.Multiline),
+ (r'\*/', Comment.Multiline, '#pop'),
+ (r'[*/]', Comment.Multiline)
+ ],
}
diff --git a/pygments/lexers/archetype.py b/pygments/lexers/archetype.py
index b88fa2e9..e596b7be 100644
--- a/pygments/lexers/archetype.py
+++ b/pygments/lexers/archetype.py
@@ -70,7 +70,8 @@ class AtomsLexer(RegexLexer):
(r'[a-z][a-z0-9+.-]*:', Literal, 'uri'),
# term code
(r'(\[)(\w[\w-]*(?:\([^)\n]+\))?)(::)(\w[\w-]*)(\])',
- bygroups(Punctuation, Name.Decorator, Punctuation, Name.Decorator, Punctuation)),
+ bygroups(Punctuation, Name.Decorator, Punctuation, Name.Decorator,
+ Punctuation)),
(r'\|', Punctuation, 'interval'),
# list continuation
(r'\.\.\.', Punctuation),
@@ -223,7 +224,8 @@ class CadlLexer(AtomsLexer):
bygroups(Punctuation, String.Regex, Punctuation)),
(r'/', Punctuation, 'path'),
# for cardinality etc
- (r'(\{)((?:\d+\.\.)?(?:\d+|\*))((?:\s*;\s*(?:ordered|unordered|unique)){,2})(\})',
+ (r'(\{)((?:\d+\.\.)?(?:\d+|\*))'
+ r'((?:\s*;\s*(?:ordered|unordered|unique)){,2})(\})',
bygroups(Punctuation, Number, Number, Punctuation)),
# [{ is start of a tuple value
(r'\[\{', Punctuation),
@@ -267,13 +269,15 @@ class AdlLexer(AtomsLexer):
(r'^[ \t]*--.*$', Comment),
],
'odin_section': [
- # repeating the following two rules from the root state enable multi-line strings
- # that start in the first column to be dealt with
+ # repeating the following two rules from the root state enable multi-line
+ # strings that start in the first column to be dealt with
(r'^(language|description|ontology|terminology|annotations|'
r'component_terminologies|revision_history)[ \t]*\n', Generic.Heading),
(r'^(definition)[ \t]*\n', Generic.Heading, 'cadl_section'),
(r'^([ \t]*|[ \t]+.*)\n', using(OdinLexer)),
(r'^([^"]*")(>[ \t]*\n)', bygroups(String, Punctuation)),
+ # template overlay delimiter
+ (r'^----------*\n', Text, '#pop'),
(r'^.*\n', String),
default('#pop'),
],
@@ -300,7 +304,7 @@ class AdlLexer(AtomsLexer):
default('#pop'),
],
'root': [
- (r'^(archetype|template|template_overlay|operational_template|'
+ (r'^(archetype|template_overlay|operational_template|template|'
r'speciali[sz]e)', Generic.Heading),
(r'^(language|description|ontology|terminology|annotations|'
r'component_terminologies|revision_history)[ \t]*\n',
diff --git a/pygments/lexers/asm.py b/pygments/lexers/asm.py
index 8ec5ed99..bbe04f69 100644
--- a/pygments/lexers/asm.py
+++ b/pygments/lexers/asm.py
@@ -286,7 +286,8 @@ class LlvmLexer(RegexLexer):
r'|lshr|ashr|and|or|xor|icmp|fcmp'
r'|phi|call|trunc|zext|sext|fptrunc|fpext|uitofp|sitofp|fptoui'
- r'|fptosi|inttoptr|ptrtoint|bitcast|select|va_arg|ret|br|switch'
+ r'|fptosi|inttoptr|ptrtoint|bitcast|addrspacecast'
+ r'|select|va_arg|ret|br|switch'
r'|invoke|unwind|unreachable'
r'|indirectbr|landingpad|resume'
diff --git a/pygments/lexers/business.py b/pygments/lexers/business.py
index c71d9c28..ea888245 100644
--- a/pygments/lexers/business.py
+++ b/pygments/lexers/business.py
@@ -244,7 +244,7 @@ class ABAPLexer(RegexLexer):
"""
name = 'ABAP'
aliases = ['abap']
- filenames = ['*.abap']
+ filenames = ['*.abap', '*.ABAP']
mimetypes = ['text/x-abap']
flags = re.IGNORECASE | re.MULTILINE
diff --git a/pygments/lexers/c_cpp.py b/pygments/lexers/c_cpp.py
index 35ea517f..5a7137ea 100644
--- a/pygments/lexers/c_cpp.py
+++ b/pygments/lexers/c_cpp.py
@@ -65,8 +65,7 @@ class CFamilyLexer(RegexLexer):
'restricted', 'return', 'sizeof', 'static', 'struct',
'switch', 'typedef', 'union', 'volatile', 'while'),
suffix=r'\b'), Keyword),
- (r'(bool|int|long|float|short|double|char|unsigned|signed|void|'
- r'[a-z_][a-z0-9_]*_t)\b',
+ (r'(bool|int|long|float|short|double|char|unsigned|signed|void)\b',
Keyword.Type),
(words(('inline', '_inline', '__inline', 'naked', 'restrict',
'thread', 'typename'), suffix=r'\b'), Keyword.Reserved),
@@ -89,7 +88,7 @@ class CFamilyLexer(RegexLexer):
(r'((?:[\w*\s])+?(?:\s|[*]))' # return arguments
r'([a-zA-Z_]\w*)' # method name
r'(\s*\([^;]*?\))' # signature
- r'(' + _ws + r')?(\{)',
+ r'([^;{]*)(\{)',
bygroups(using(this), Name.Function, using(this), using(this),
Punctuation),
'function'),
@@ -97,7 +96,7 @@ class CFamilyLexer(RegexLexer):
(r'((?:[\w*\s])+?(?:\s|[*]))' # return arguments
r'([a-zA-Z_]\w*)' # method name
r'(\s*\([^;]*?\))' # signature
- r'(' + _ws + r')?(;)',
+ r'([^;]*)(;)',
bygroups(using(this), Name.Function, using(this), using(this),
Punctuation)),
default('statement'),
@@ -124,6 +123,7 @@ class CFamilyLexer(RegexLexer):
(r'\\', String), # stray backslash
],
'macro': [
+ (r'(include)(' + _ws1 + ')([^\n]+)', bygroups(Comment.Preproc, Text, Comment.PreprocFile)),
(r'[^/\n]+', Comment.Preproc),
(r'/[*](.|\n)*?[*]/', Comment.Multiline),
(r'//.*?\n', Comment.Single, '#pop'),
@@ -139,22 +139,26 @@ class CFamilyLexer(RegexLexer):
]
}
- stdlib_types = ['size_t', 'ssize_t', 'off_t', 'wchar_t', 'ptrdiff_t',
- 'sig_atomic_t', 'fpos_t', 'clock_t', 'time_t', 'va_list',
- 'jmp_buf', 'FILE', 'DIR', 'div_t', 'ldiv_t', 'mbstate_t',
- 'wctrans_t', 'wint_t', 'wctype_t']
- c99_types = ['_Bool', '_Complex', 'int8_t', 'int16_t', 'int32_t', 'int64_t',
- 'uint8_t', 'uint16_t', 'uint32_t', 'uint64_t', 'int_least8_t',
- 'int_least16_t', 'int_least32_t', 'int_least64_t',
- 'uint_least8_t', 'uint_least16_t', 'uint_least32_t',
- 'uint_least64_t', 'int_fast8_t', 'int_fast16_t', 'int_fast32_t',
- 'int_fast64_t', 'uint_fast8_t', 'uint_fast16_t', 'uint_fast32_t',
- 'uint_fast64_t', 'intptr_t', 'uintptr_t', 'intmax_t',
- 'uintmax_t']
+ stdlib_types = set((
+ 'size_t', 'ssize_t', 'off_t', 'wchar_t', 'ptrdiff_t', 'sig_atomic_t', 'fpos_t',
+ 'clock_t', 'time_t', 'va_list', 'jmp_buf', 'FILE', 'DIR', 'div_t', 'ldiv_t',
+ 'mbstate_t', 'wctrans_t', 'wint_t', 'wctype_t'))
+ c99_types = set((
+ '_Bool', '_Complex', 'int8_t', 'int16_t', 'int32_t', 'int64_t', 'uint8_t',
+ 'uint16_t', 'uint32_t', 'uint64_t', 'int_least8_t', 'int_least16_t',
+ 'int_least32_t', 'int_least64_t', 'uint_least8_t', 'uint_least16_t',
+ 'uint_least32_t', 'uint_least64_t', 'int_fast8_t', 'int_fast16_t', 'int_fast32_t',
+ 'int_fast64_t', 'uint_fast8_t', 'uint_fast16_t', 'uint_fast32_t', 'uint_fast64_t',
+ 'intptr_t', 'uintptr_t', 'intmax_t', 'uintmax_t'))
+ linux_types = set((
+ 'clockid_t', 'cpu_set_t', 'cpumask_t', 'dev_t', 'gid_t', 'id_t', 'ino_t', 'key_t',
+ 'mode_t', 'nfds_t', 'pid_t', 'rlim_t', 'sig_t', 'sighandler_t', 'siginfo_t',
+ 'sigset_t', 'sigval_t', 'socklen_t', 'timer_t', 'uid_t'))
def __init__(self, **options):
self.stdlibhighlighting = get_bool_opt(options, 'stdlibhighlighting', True)
self.c99highlighting = get_bool_opt(options, 'c99highlighting', True)
+ self.platformhighlighting = get_bool_opt(options, 'platformhighlighting', True)
RegexLexer.__init__(self, **options)
def get_tokens_unprocessed(self, text):
@@ -165,6 +169,8 @@ class CFamilyLexer(RegexLexer):
token = Keyword.Type
elif self.c99highlighting and value in self.c99_types:
token = Keyword.Type
+ elif self.platformhighlighting and value in self.linux_types:
+ token = Keyword.Type
yield index, token, value
@@ -181,7 +187,7 @@ class CLexer(CFamilyLexer):
def analyse_text(text):
if re.search('^\s*#include [<"]', text, re.MULTILINE):
return 0.1
- if re.search('^\s*#ifdef ', text, re.MULTILINE):
+ if re.search('^\s*#ifn?def ', text, re.MULTILINE):
return 0.1
diff --git a/pygments/lexers/c_like.py b/pygments/lexers/c_like.py
index 27736bff..d894818d 100644
--- a/pygments/lexers/c_like.py
+++ b/pygments/lexers/c_like.py
@@ -418,6 +418,8 @@ class ArduinoLexer(CppLexer):
This is an extension of the CppLexer, as the Arduino® Language is a superset
of C++
+
+ .. versionadded:: 2.1
"""
name = 'Arduino'
@@ -426,93 +428,93 @@ class ArduinoLexer(CppLexer):
mimetypes = ['text/x-arduino']
# Language constants
- constants = set(( 'DIGITAL_MESSAGE', 'FIRMATA_STRING', 'ANALOG_MESSAGE',
- 'REPORT_DIGITAL', 'REPORT_ANALOG', 'INPUT_PULLUP',
+ constants = set(('DIGITAL_MESSAGE', 'FIRMATA_STRING', 'ANALOG_MESSAGE',
+ 'REPORT_DIGITAL', 'REPORT_ANALOG', 'INPUT_PULLUP',
'SET_PIN_MODE', 'INTERNAL2V56', 'SYSTEM_RESET', 'LED_BUILTIN',
- 'INTERNAL1V1', 'SYSEX_START', 'INTERNAL', 'EXTERNAL',
- 'DEFAULT', 'OUTPUT', 'INPUT', 'HIGH', 'LOW' ))
+ 'INTERNAL1V1', 'SYSEX_START', 'INTERNAL', 'EXTERNAL',
+ 'DEFAULT', 'OUTPUT', 'INPUT', 'HIGH', 'LOW'))
# Language sketch main structure functions
- structure = set(( 'setup', 'loop' ))
+ structure = set(('setup', 'loop'))
# Language variable types
- storage = set(( 'boolean', 'const', 'byte', 'word', 'string', 'String', 'array' ))
+ storage = set(('boolean', 'const', 'byte', 'word', 'string', 'String', 'array'))
# Language shipped functions and class ( )
- functions = set(( 'KeyboardController', 'MouseController', 'SoftwareSerial',
- 'EthernetServer', 'EthernetClient', 'LiquidCrystal',
- 'RobotControl', 'GSMVoiceCall', 'EthernetUDP', 'EsploraTFT',
- 'HttpClient', 'RobotMotor', 'WiFiClient', 'GSMScanner',
- 'FileSystem', 'Scheduler', 'GSMServer', 'YunClient', 'YunServer',
- 'IPAddress', 'GSMClient', 'GSMModem', 'Keyboard', 'Ethernet',
- 'Console', 'GSMBand', 'Esplora', 'Stepper', 'Process',
- 'WiFiUDP', 'GSM_SMS', 'Mailbox', 'USBHost', 'Firmata', 'PImage',
- 'Client', 'Server', 'GSMPIN', 'FileIO', 'Bridge', 'Serial',
- 'EEPROM', 'Stream', 'Mouse', 'Audio', 'Servo', 'File', 'Task',
- 'GPRS', 'WiFi', 'Wire', 'TFT', 'GSM', 'SPI', 'SD',
- 'runShellCommandAsynchronously', 'analogWriteResolution',
- 'retrieveCallingNumber', 'printFirmwareVersion',
- 'analogReadResolution', 'sendDigitalPortPair',
- 'noListenOnLocalhost', 'readJoystickButton', 'setFirmwareVersion',
- 'readJoystickSwitch', 'scrollDisplayRight', 'getVoiceCallStatus',
- 'scrollDisplayLeft', 'writeMicroseconds', 'delayMicroseconds',
- 'beginTransmission', 'getSignalStrength', 'runAsynchronously',
- 'getAsynchronously', 'listenOnLocalhost', 'getCurrentCarrier',
- 'readAccelerometer', 'messageAvailable', 'sendDigitalPorts',
- 'lineFollowConfig', 'countryNameWrite', 'runShellCommand',
- 'readStringUntil', 'rewindDirectory', 'readTemperature',
- 'setClockDivider', 'readLightSensor', 'endTransmission',
- 'analogReference', 'detachInterrupt', 'countryNameRead',
- 'attachInterrupt', 'encryptionType', 'readBytesUntil',
- 'robotNameWrite', 'readMicrophone', 'robotNameRead', 'cityNameWrite',
- 'userNameWrite', 'readJoystickY', 'readJoystickX', 'mouseReleased',
- 'openNextFile', 'scanNetworks', 'noInterrupts', 'digitalWrite',
- 'beginSpeaker', 'mousePressed', 'isActionDone', 'mouseDragged',
- 'displayLogos', 'noAutoscroll', 'addParameter', 'remoteNumber',
- 'getModifiers', 'keyboardRead', 'userNameRead', 'waitContinue',
- 'processInput', 'parseCommand', 'printVersion', 'readNetworks',
- 'writeMessage', 'blinkVersion', 'cityNameRead', 'readMessage',
- 'setDataMode', 'parsePacket', 'isListening', 'setBitOrder',
- 'beginPacket', 'isDirectory', 'motorsWrite', 'drawCompass',
- 'digitalRead', 'clearScreen', 'serialEvent', 'rightToLeft',
- 'setTextSize', 'leftToRight', 'requestFrom', 'keyReleased',
- 'compassRead', 'analogWrite', 'interrupts', 'WiFiServer',
- 'disconnect', 'playMelody', 'parseFloat', 'autoscroll',
- 'getPINUsed', 'setPINUsed', 'setTimeout', 'sendAnalog',
- 'readSlider', 'analogRead', 'beginWrite', 'createChar',
- 'motorsStop', 'keyPressed', 'tempoWrite', 'readButton',
- 'subnetMask', 'debugPrint', 'macAddress', 'writeGreen',
- 'randomSeed', 'attachGPRS', 'readString', 'sendString',
- 'remotePort', 'releaseAll', 'mouseMoved', 'background',
- 'getXChange', 'getYChange', 'answerCall', 'getResult',
- 'voiceCall', 'endPacket', 'constrain', 'getSocket', 'writeJSON',
- 'getButton', 'available', 'connected', 'findUntil', 'readBytes',
- 'exitValue', 'readGreen', 'writeBlue', 'startLoop', 'IPAddress',
- 'isPressed', 'sendSysex', 'pauseMode', 'gatewayIP', 'setCursor',
- 'getOemKey', 'tuneWrite', 'noDisplay', 'loadImage', 'switchPIN',
- 'onRequest', 'onReceive', 'changePIN', 'playFile', 'noBuffer',
- 'parseInt', 'overflow', 'checkPIN', 'knobRead', 'beginTFT',
- 'bitClear', 'updateIR', 'bitWrite', 'position', 'writeRGB',
- 'highByte', 'writeRed', 'setSpeed', 'readBlue', 'noStroke',
- 'remoteIP', 'transfer', 'shutdown', 'hangCall', 'beginSMS',
- 'endWrite', 'attached', 'maintain', 'noCursor', 'checkReg',
- 'checkPUK', 'shiftOut', 'isValid', 'shiftIn', 'pulseIn',
- 'connect', 'println', 'localIP', 'pinMode', 'getIMEI',
- 'display', 'noBlink', 'process', 'getBand', 'running', 'beginSD',
- 'drawBMP', 'lowByte', 'setBand', 'release', 'bitRead', 'prepare',
- 'pointTo', 'readRed', 'setMode', 'noFill', 'remove', 'listen',
- 'stroke', 'detach', 'attach', 'noTone', 'exists', 'buffer',
- 'height', 'bitSet', 'circle', 'config', 'cursor', 'random',
- 'IRread', 'sizeof', 'setDNS', 'endSMS', 'getKey', 'micros',
- 'millis', 'begin', 'print', 'write', 'ready', 'flush', 'width',
- 'isPIN', 'blink', 'clear', 'press', 'mkdir', 'rmdir', 'close',
- 'point', 'yield', 'image', 'float', 'BSSID', 'click', 'delay',
- 'read', 'text', 'move', 'peek', 'beep', 'rect', 'line', 'open',
- 'seek', 'fill', 'size', 'turn', 'stop', 'home', 'find', 'char',
- 'byte', 'step', 'word', 'long', 'tone', 'sqrt', 'RSSI', 'SSID',
- 'end', 'bit', 'tan', 'cos', 'sin', 'pow', 'map', 'abs', 'max',
- 'min', 'int', 'get', 'run', 'put' ))
-
+ functions = set(('KeyboardController', 'MouseController', 'SoftwareSerial',
+ 'EthernetServer', 'EthernetClient', 'LiquidCrystal',
+ 'RobotControl', 'GSMVoiceCall', 'EthernetUDP', 'EsploraTFT',
+ 'HttpClient', 'RobotMotor', 'WiFiClient', 'GSMScanner',
+ 'FileSystem', 'Scheduler', 'GSMServer', 'YunClient', 'YunServer',
+ 'IPAddress', 'GSMClient', 'GSMModem', 'Keyboard', 'Ethernet',
+ 'Console', 'GSMBand', 'Esplora', 'Stepper', 'Process',
+ 'WiFiUDP', 'GSM_SMS', 'Mailbox', 'USBHost', 'Firmata', 'PImage',
+ 'Client', 'Server', 'GSMPIN', 'FileIO', 'Bridge', 'Serial',
+ 'EEPROM', 'Stream', 'Mouse', 'Audio', 'Servo', 'File', 'Task',
+ 'GPRS', 'WiFi', 'Wire', 'TFT', 'GSM', 'SPI', 'SD',
+ 'runShellCommandAsynchronously', 'analogWriteResolution',
+ 'retrieveCallingNumber', 'printFirmwareVersion',
+ 'analogReadResolution', 'sendDigitalPortPair',
+ 'noListenOnLocalhost', 'readJoystickButton', 'setFirmwareVersion',
+ 'readJoystickSwitch', 'scrollDisplayRight', 'getVoiceCallStatus',
+ 'scrollDisplayLeft', 'writeMicroseconds', 'delayMicroseconds',
+ 'beginTransmission', 'getSignalStrength', 'runAsynchronously',
+ 'getAsynchronously', 'listenOnLocalhost', 'getCurrentCarrier',
+ 'readAccelerometer', 'messageAvailable', 'sendDigitalPorts',
+ 'lineFollowConfig', 'countryNameWrite', 'runShellCommand',
+ 'readStringUntil', 'rewindDirectory', 'readTemperature',
+ 'setClockDivider', 'readLightSensor', 'endTransmission',
+ 'analogReference', 'detachInterrupt', 'countryNameRead',
+ 'attachInterrupt', 'encryptionType', 'readBytesUntil',
+ 'robotNameWrite', 'readMicrophone', 'robotNameRead', 'cityNameWrite',
+ 'userNameWrite', 'readJoystickY', 'readJoystickX', 'mouseReleased',
+ 'openNextFile', 'scanNetworks', 'noInterrupts', 'digitalWrite',
+ 'beginSpeaker', 'mousePressed', 'isActionDone', 'mouseDragged',
+ 'displayLogos', 'noAutoscroll', 'addParameter', 'remoteNumber',
+ 'getModifiers', 'keyboardRead', 'userNameRead', 'waitContinue',
+ 'processInput', 'parseCommand', 'printVersion', 'readNetworks',
+ 'writeMessage', 'blinkVersion', 'cityNameRead', 'readMessage',
+ 'setDataMode', 'parsePacket', 'isListening', 'setBitOrder',
+ 'beginPacket', 'isDirectory', 'motorsWrite', 'drawCompass',
+ 'digitalRead', 'clearScreen', 'serialEvent', 'rightToLeft',
+ 'setTextSize', 'leftToRight', 'requestFrom', 'keyReleased',
+ 'compassRead', 'analogWrite', 'interrupts', 'WiFiServer',
+ 'disconnect', 'playMelody', 'parseFloat', 'autoscroll',
+ 'getPINUsed', 'setPINUsed', 'setTimeout', 'sendAnalog',
+ 'readSlider', 'analogRead', 'beginWrite', 'createChar',
+ 'motorsStop', 'keyPressed', 'tempoWrite', 'readButton',
+ 'subnetMask', 'debugPrint', 'macAddress', 'writeGreen',
+ 'randomSeed', 'attachGPRS', 'readString', 'sendString',
+ 'remotePort', 'releaseAll', 'mouseMoved', 'background',
+ 'getXChange', 'getYChange', 'answerCall', 'getResult',
+ 'voiceCall', 'endPacket', 'constrain', 'getSocket', 'writeJSON',
+ 'getButton', 'available', 'connected', 'findUntil', 'readBytes',
+ 'exitValue', 'readGreen', 'writeBlue', 'startLoop', 'IPAddress',
+ 'isPressed', 'sendSysex', 'pauseMode', 'gatewayIP', 'setCursor',
+ 'getOemKey', 'tuneWrite', 'noDisplay', 'loadImage', 'switchPIN',
+ 'onRequest', 'onReceive', 'changePIN', 'playFile', 'noBuffer',
+ 'parseInt', 'overflow', 'checkPIN', 'knobRead', 'beginTFT',
+ 'bitClear', 'updateIR', 'bitWrite', 'position', 'writeRGB',
+ 'highByte', 'writeRed', 'setSpeed', 'readBlue', 'noStroke',
+ 'remoteIP', 'transfer', 'shutdown', 'hangCall', 'beginSMS',
+ 'endWrite', 'attached', 'maintain', 'noCursor', 'checkReg',
+ 'checkPUK', 'shiftOut', 'isValid', 'shiftIn', 'pulseIn',
+ 'connect', 'println', 'localIP', 'pinMode', 'getIMEI',
+ 'display', 'noBlink', 'process', 'getBand', 'running', 'beginSD',
+ 'drawBMP', 'lowByte', 'setBand', 'release', 'bitRead', 'prepare',
+ 'pointTo', 'readRed', 'setMode', 'noFill', 'remove', 'listen',
+ 'stroke', 'detach', 'attach', 'noTone', 'exists', 'buffer',
+ 'height', 'bitSet', 'circle', 'config', 'cursor', 'random',
+ 'IRread', 'sizeof', 'setDNS', 'endSMS', 'getKey', 'micros',
+ 'millis', 'begin', 'print', 'write', 'ready', 'flush', 'width',
+ 'isPIN', 'blink', 'clear', 'press', 'mkdir', 'rmdir', 'close',
+ 'point', 'yield', 'image', 'float', 'BSSID', 'click', 'delay',
+ 'read', 'text', 'move', 'peek', 'beep', 'rect', 'line', 'open',
+ 'seek', 'fill', 'size', 'turn', 'stop', 'home', 'find', 'char',
+ 'byte', 'step', 'word', 'long', 'tone', 'sqrt', 'RSSI', 'SSID',
+ 'end', 'bit', 'tan', 'cos', 'sin', 'pow', 'map', 'abs', 'max',
+ 'min', 'int', 'get', 'run', 'put'))
+
def get_tokens_unprocessed(self, text):
for index, token, value in CppLexer.get_tokens_unprocessed(self, text):
@@ -528,7 +530,7 @@ class ArduinoLexer(CppLexer):
elif token is Name.Function:
if value in self.structure:
yield index, Name.Other, value
- else:
+ else:
yield index, token, value
elif token is Keyword:
if value in self.storage:
diff --git a/pygments/lexers/chapel.py b/pygments/lexers/chapel.py
index 6fb6920c..d69c55f5 100644
--- a/pygments/lexers/chapel.py
+++ b/pygments/lexers/chapel.py
@@ -46,10 +46,10 @@ class ChapelLexer(RegexLexer):
'continue', 'delete', 'dmapped', 'do', 'domain', 'else', 'enum',
'export', 'extern', 'for', 'forall', 'if', 'index', 'inline',
'iter', 'label', 'lambda', 'let', 'local', 'new', 'noinit', 'on',
- 'otherwise', 'pragma', 'private', 'public', 'reduce', 'return',
- 'scan', 'select', 'serial', 'single', 'sparse', 'subdomain',
- 'sync', 'then', 'use', 'when', 'where', 'while', 'with', 'yield',
- 'zip'), suffix=r'\b'),
+ 'otherwise', 'pragma', 'private', 'public', 'reduce',
+ 'require', 'return', 'scan', 'select', 'serial', 'single',
+ 'sparse', 'subdomain', 'sync', 'then', 'use', 'when', 'where',
+ 'while', 'with', 'yield', 'zip'), suffix=r'\b'),
Keyword),
(r'(proc)((?:\s|\\\s)+)', bygroups(Keyword, Text), 'procname'),
(r'(class|module|record|union)(\s+)', bygroups(Keyword, Text),
@@ -77,7 +77,8 @@ class ChapelLexer(RegexLexer):
(r'[0-9]+', Number.Integer),
# strings
- (r'["\'](\\\\|\\"|[^"\'])*["\']', String),
+ (r'"(\\\\|\\"|[^"])*"', String),
+ (r"'(\\\\|\\'|[^'])*'", String),
# tokens
(r'(=|\+=|-=|\*=|/=|\*\*=|%=|&=|\|=|\^=|&&=|\|\|=|<<=|>>=|'
diff --git a/pygments/lexers/configs.py b/pygments/lexers/configs.py
index 1bd8f55a..c46d8bb8 100644
--- a/pygments/lexers/configs.py
+++ b/pygments/lexers/configs.py
@@ -13,12 +13,14 @@ import re
from pygments.lexer import RegexLexer, default, words, bygroups, include, using
from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
- Number, Punctuation, Whitespace
+ Number, Punctuation, Whitespace, Literal
from pygments.lexers.shell import BashLexer
__all__ = ['IniLexer', 'RegeditLexer', 'PropertiesLexer', 'KconfigLexer',
'Cfengine3Lexer', 'ApacheConfLexer', 'SquidConfLexer',
- 'NginxConfLexer', 'LighttpdConfLexer', 'DockerLexer']
+ 'NginxConfLexer', 'LighttpdConfLexer', 'DockerLexer',
+ 'TerraformLexer', 'TermcapLexer', 'TerminfoLexer',
+ 'PkgConfigLexer', 'PacmanConfLexer']
class IniLexer(RegexLexer):
@@ -28,8 +30,8 @@ class IniLexer(RegexLexer):
name = 'INI'
aliases = ['ini', 'cfg', 'dosini']
- filenames = ['*.ini', '*.cfg']
- mimetypes = ['text/x-ini']
+ filenames = ['*.ini', '*.cfg', '*.inf']
+ mimetypes = ['text/x-ini', 'text/inf']
tokens = {
'root': [
@@ -540,7 +542,286 @@ class DockerLexer(RegexLexer):
bygroups(Name.Keyword, Whitespace, Keyword)),
(r'^(%s)\b(.*)' % (_keywords,), bygroups(Keyword, String)),
(r'#.*', Comment),
- (r'RUN', Keyword), # Rest of line falls through
+ (r'RUN', Keyword), # Rest of line falls through
(r'(.*\\\n)*.+', using(BashLexer)),
],
}
+
+
+class TerraformLexer(RegexLexer):
+ """
+ Lexer for `terraformi .tf files <https://www.terraform.io/>`_.
+
+ .. versionadded:: 2.1
+ """
+
+ name = 'Terraform'
+ aliases = ['terraform', 'tf']
+ filenames = ['*.tf']
+ mimetypes = ['application/x-tf', 'application/x-terraform']
+
+ tokens = {
+ 'root': [
+ include('string'),
+ include('punctuation'),
+ include('curly'),
+ include('basic'),
+ include('whitespace'),
+ (r'[0-9]+', Number),
+ ],
+ 'basic': [
+ (words(('true', 'false'), prefix=r'\b', suffix=r'\b'), Keyword.Type),
+ (r'\s*/\*', Comment.Multiline, 'comment'),
+ (r'\s*#.*\n', Comment.Single),
+ (r'(.*?)(\s*)(=)', bygroups(Name.Attribute, Text, Operator)),
+ (words(('variable', 'resource', 'provider', 'provisioner', 'module'),
+ prefix=r'\b', suffix=r'\b'), Keyword.Reserved, 'function'),
+ (words(('ingress', 'egress', 'listener', 'default', 'connection'),
+ prefix=r'\b', suffix=r'\b'), Keyword.Declaration),
+ ('\$\{', String.Interpol, 'var_builtin'),
+ ],
+ 'function': [
+ (r'(\s+)(".*")(\s+)', bygroups(Text, String, Text)),
+ include('punctuation'),
+ include('curly'),
+ ],
+ 'var_builtin': [
+ (r'\$\{', String.Interpol, '#push'),
+ (words(('concat', 'file', 'join', 'lookup', 'element'),
+ prefix=r'\b', suffix=r'\b'), Name.Builtin),
+ include('string'),
+ include('punctuation'),
+ (r'\s+', Text),
+ (r'\}', String.Interpol, '#pop'),
+ ],
+ 'string': [
+ (r'(".*")', bygroups(String.Double)),
+ ],
+ 'punctuation': [
+ (r'[\[\]\(\),.]', Punctuation),
+ ],
+ # Keep this seperate from punctuation - we sometimes want to use different
+ # Tokens for { }
+ 'curly': [
+ (r'\{', Text.Punctuation),
+ (r'\}', Text.Punctuation),
+ ],
+ 'comment': [
+ (r'[^*/]', Comment.Multiline),
+ (r'/\*', Comment.Multiline, '#push'),
+ (r'\*/', Comment.Multiline, '#pop'),
+ (r'[*/]', Comment.Multiline)
+ ],
+ 'whitespace': [
+ (r'\n', Text),
+ (r'\s+', Text),
+ (r'\\\n', Text),
+ ],
+ }
+
+
+class TermcapLexer(RegexLexer):
+ """
+ Lexer for termcap database source.
+
+ This is very simple and minimal.
+
+ .. versionadded:: 2.1
+ """
+ name = 'Termcap'
+ aliases = ['termcap',]
+
+ filenames = ['termcap', 'termcap.src',]
+ mimetypes = []
+
+ # NOTE:
+ # * multiline with trailing backslash
+ # * separator is ':'
+ # * to embed colon as data, we must use \072
+ # * space after separator is not allowed (mayve)
+ tokens = {
+ 'root': [
+ (r'^#.*$', Comment),
+ (r'^[^\s#:\|]+', Name.Tag, 'names'),
+ ],
+ 'names': [
+ (r'\n', Text, '#pop'),
+ (r':', Punctuation, 'defs'),
+ (r'\|', Punctuation),
+ (r'[^:\|]+', Name.Attribute),
+ ],
+ 'defs': [
+ (r'\\\n[ \t]*', Text),
+ (r'\n[ \t]*', Text, '#pop:2'),
+ (r'(#)([0-9]+)', bygroups(Operator, Number)),
+ (r'=', Operator, 'data'),
+ (r':', Punctuation),
+ (r'[^\s:=#]+', Name.Class),
+ ],
+ 'data': [
+ (r'\\072', Literal),
+ (r':', Punctuation, '#pop'),
+ (r'[^:\\]+', Literal), # for performance
+ (r'.', Literal),
+ ],
+ }
+
+
+class TerminfoLexer(RegexLexer):
+ """
+ Lexer for terminfo database source.
+
+ This is very simple and minimal.
+
+ .. versionadded:: 2.1
+ """
+ name = 'Terminfo'
+ aliases = ['terminfo',]
+
+ filenames = ['terminfo', 'terminfo.src',]
+ mimetypes = []
+
+ # NOTE:
+ # * multiline with leading whitespace
+ # * separator is ','
+ # * to embed comma as data, we can use \,
+ # * space after separator is allowed
+ tokens = {
+ 'root': [
+ (r'^#.*$', Comment),
+ (r'^[^\s#,\|]+', Name.Tag, 'names'),
+ ],
+ 'names': [
+ (r'\n', Text, '#pop'),
+ (r'(,)([ \t]*)', bygroups(Punctuation, Text), 'defs'),
+ (r'\|', Punctuation),
+ (r'[^,\|]+', Name.Attribute),
+ ],
+ 'defs': [
+ (r'\n[ \t]+', Text),
+ (r'\n', Text, '#pop:2'),
+ (r'(#)([0-9]+)', bygroups(Operator, Number)),
+ (r'=', Operator, 'data'),
+ (r'(,)([ \t]*)', bygroups(Punctuation, Text)),
+ (r'[^\s,=#]+', Name.Class),
+ ],
+ 'data': [
+ (r'\\[,\\]', Literal),
+ (r'(,)([ \t]*)', bygroups(Punctuation, Text), '#pop'),
+ (r'[^\\,]+', Literal), # for performance
+ (r'.', Literal),
+ ],
+ }
+
+
+class PkgConfigLexer(RegexLexer):
+ """
+ Lexer for `pkg-config
+ <http://www.freedesktop.org/wiki/Software/pkg-config/>`_
+ (see also `manual page <http://linux.die.net/man/1/pkg-config>`_).
+
+ .. versionadded:: 2.1
+ """
+
+ name = 'PkgConfig'
+ aliases = ['pkgconfig',]
+ filenames = ['*.pc',]
+ mimetypes = []
+
+ tokens = {
+ 'root': [
+ (r'#.*$', Comment.Single),
+
+ # variable definitions
+ (r'^(\w+)(=)', bygroups(Name.Attribute, Operator)),
+
+ # keyword lines
+ (r'^([\w.]+)(:)',
+ bygroups(Name.Tag, Punctuation), 'spvalue'),
+
+ # variable references
+ include('interp'),
+
+ # fallback
+ (r'[^${}#=:\n.]+', Text),
+ (r'.', Text),
+ ],
+ 'interp': [
+ # you can escape literal "$" as "$$"
+ (r'\$\$', Text),
+
+ # variable references
+ (r'\$\{', String.Interpol, 'curly'),
+ ],
+ 'curly': [
+ (r'\}', String.Interpol, '#pop'),
+ (r'\w+', Name.Attribute),
+ ],
+ 'spvalue': [
+ include('interp'),
+
+ (r'#.*$', Comment.Single, '#pop'),
+ (r'\n', Text, '#pop'),
+
+ # fallback
+ (r'[^${}#\n]+', Text),
+ (r'.', Text),
+ ],
+ }
+
+
+class PacmanConfLexer(RegexLexer):
+ """
+ Lexer for `pacman.conf
+ <https://www.archlinux.org/pacman/pacman.conf.5.html>`_.
+
+ Actually, IniLexer works almost fine for this format,
+ but it yield error token. It is because pacman.conf has
+ a form without assignment like:
+
+ UseSyslog
+ Color
+ TotalDownload
+ CheckSpace
+ VerbosePkgLists
+
+ These are flags to switch on.
+
+ .. versionadded:: 2.1
+ """
+
+ name = 'PacmanConf'
+ aliases = ['pacmanconf',]
+ filenames = ['pacman.conf',]
+ mimetypes = []
+
+ tokens = {
+ 'root': [
+ # comment
+ (r'#.*$', Comment.Single),
+
+ # section header
+ (r'^\s*\[.*?\]\s*$', Keyword),
+
+ # variable definitions
+ # (Leading space is allowed...)
+ (r'(\w+)(\s*)(=)',
+ bygroups(Name.Attribute, Text, Operator)),
+
+ # flags to on
+ (r'^(\s*)(\w+)(\s*)$',
+ bygroups(Text, Name.Attribute, Text)),
+
+ # built-in special values
+ (words((
+ '$repo', # repository
+ '$arch', # architecture
+ '%o', # outfile
+ '%u', # url
+ ), suffix=r'\b'),
+ Name.Variable),
+
+ # fallback
+ (r'.', Text),
+ ],
+ }
diff --git a/pygments/lexers/csound.py b/pygments/lexers/csound.py
new file mode 100644
index 00000000..51414073
--- /dev/null
+++ b/pygments/lexers/csound.py
@@ -0,0 +1,366 @@
+# -*- coding: utf-8 -*-
+"""
+ pygments.lexers.csound
+ ~~~~~~~~~~~~~~~~~~~~~~
+
+ Lexers for CSound languages.
+
+ :copyright: Copyright 2006-2015 by the Pygments team, see AUTHORS.
+ :license: BSD, see LICENSE for details.
+"""
+
+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
+from pygments.lexers.python import PythonLexer
+from pygments.lexers.scripting import LuaLexer
+
+__all__ = ['CsoundScoreLexer', 'CsoundOrchestraLexer', 'CsoundDocumentLexer']
+
+newline = (r'((?:;|//).*)*(\n)', bygroups(Comment.Single, Text))
+
+
+class CsoundLexer(RegexLexer):
+ # Subclasses must define a 'single-line string' state.
+ tokens = {
+ 'whitespace': [
+ (r'[ \t]+', Text),
+ (r'\\\n', Text),
+ (r'/[*](.|\n)*?[*]/', Comment.Multiline)
+ ],
+
+ 'macro call': [
+ (r'(\$\w+\.?)(\()', bygroups(Comment.Preproc, Punctuation),
+ 'function macro call'),
+ (r'\$\w+(\.|\b)', Comment.Preproc)
+ ],
+ 'function macro call': [
+ (r"((?:\\['\)]|[^'\)])+)(')", bygroups(Comment.Preproc, Punctuation)),
+ (r"([^'\)]+)(\))", bygroups(Comment.Preproc, Punctuation), '#pop')
+ ],
+
+ 'whitespace or macro call': [
+ include('whitespace'),
+ include('macro call')
+ ],
+
+ 'preprocessor directives': [
+ (r'#(e(nd(if)?|lse)|ifn?def|undef)\b|##', Comment.Preproc),
+ (r'#include\b', Comment.Preproc, 'include'),
+ (r'#[ \t]*define\b', Comment.Preproc, 'macro name'),
+ (r'@+[ \t]*\d*', Comment.Preproc)
+ ],
+
+ 'include': [
+ include('whitespace'),
+ (r'"', String, 'single-line string')
+ ],
+
+ 'macro name': [
+ include('whitespace'),
+ (r'(\w+)(\()', bygroups(Comment.Preproc, Text),
+ 'function macro argument list'),
+ (r'\w+', Comment.Preproc, 'object macro definition after name')
+ ],
+ 'object macro definition after name': [
+ include('whitespace'),
+ (r'#', Punctuation, 'object macro replacement text')
+ ],
+ 'object macro replacement text': [
+ (r'(\\#|[^#])+', Comment.Preproc),
+ (r'#', Punctuation, '#pop:3')
+ ],
+ 'function macro argument list': [
+ (r"(\w+)(['#])", bygroups(Comment.Preproc, Punctuation)),
+ (r'(\w+)(\))', bygroups(Comment.Preproc, Punctuation),
+ 'function macro definition after name')
+ ],
+ 'function macro definition after name': [
+ (r'[ \t]+', Text),
+ (r'#', Punctuation, 'function macro replacement text')
+ ],
+ 'function macro replacement text': [
+ (r'(\\#|[^#])+', Comment.Preproc),
+ (r'#', Punctuation, '#pop:4')
+ ]
+ }
+
+
+class CsoundScoreLexer(CsoundLexer):
+ """
+ For `Csound <http://csound.github.io>`_ scores.
+
+ .. versionadded:: 2.1
+ """
+
+ name = 'Csound Score'
+ aliases = ['csound-score', 'csound-sco']
+ filenames = ['*.sco']
+
+ tokens = {
+ 'partial statement': [
+ include('preprocessor directives'),
+ (r'\d+e[+-]?\d+|(\d+\.\d*|\d*\.\d+)(e[+-]?\d+)?', Number.Float),
+ (r'0[xX][a-fA-F0-9]+', Number.Hex),
+ (r'\d+', Number.Integer),
+ (r'"', String, 'single-line string'),
+ (r'[+\-*/%^!=<>|&#~.]', Operator),
+ (r'[]()[]', Punctuation),
+ (r'\w+', Comment.Preproc)
+ ],
+
+ 'statement': [
+ include('whitespace or macro call'),
+ newline + ('#pop',),
+ include('partial statement')
+ ],
+
+ 'root': [
+ newline,
+ include('whitespace or macro call'),
+ (r'[{}]', Punctuation, 'statement'),
+ (r'[abefimq-tv-z]|[nN][pP]?', Keyword, 'statement')
+ ],
+
+ 'single-line string': [
+ (r'"', String, '#pop'),
+ (r'[^\\"]+', String)
+ ]
+ }
+
+
+class CsoundOrchestraLexer(CsoundLexer):
+ """
+ For `Csound <http://csound.github.io>`_ orchestras.
+
+ .. versionadded:: 2.1
+ """
+
+ name = 'Csound Orchestra'
+ aliases = ['csound', 'csound-orc']
+ filenames = ['*.orc']
+
+ user_defined_opcodes = set()
+
+ def opcode_name_callback(lexer, match):
+ opcode = match.group(0)
+ lexer.user_defined_opcodes.add(opcode)
+ yield match.start(), Name.Function, opcode
+
+ def name_callback(lexer, match):
+ name = match.group(0)
+ if re.match('p\d+$', name) or name in OPCODES:
+ yield match.start(), Name.Builtin, name
+ elif name in lexer.user_defined_opcodes:
+ yield match.start(), Name.Function, name
+ else:
+ nameMatch = re.search(r'^(g?[aikSw])(\w+)', name)
+ if nameMatch:
+ yield nameMatch.start(1), Keyword.Type, nameMatch.group(1)
+ yield nameMatch.start(2), Name, nameMatch.group(2)
+ else:
+ yield match.start(), Name, name
+
+ tokens = {
+ 'label': [
+ (r'\b(\w+)(:)', bygroups(Name.Label, Punctuation))
+ ],
+
+ 'partial expression': [
+ include('preprocessor directives'),
+ (r'\b(0dbfs|k(r|smps)|nchnls(_i)?|sr)\b', Name.Variable.Global),
+ (r'\d+e[+-]?\d+|(\d+\.\d*|\d*\.\d+)(e[+-]?\d+)?', Number.Float),
+ (r'0[xX][a-fA-F0-9]+', Number.Hex),
+ (r'\d+', Number.Integer),
+ (r'"', String, 'single-line string'),
+ (r'{{', String, 'multi-line string'),
+ (r'[+\-*/%^!=&|<>#~¬]', Operator),
+ (r'[](),?:[]', Punctuation),
+ (words((
+ # Keywords
+ 'do', 'else', 'elseif', 'endif', 'enduntil', 'fi', 'if', 'ithen', 'kthen',
+ 'od', 'then', 'until', 'while',
+ # Opcodes that act as control structures
+ 'return', 'timout'
+ ), prefix=r'\b', suffix=r'\b'), Keyword),
+ (words(('goto', 'igoto', 'kgoto', 'rigoto', 'tigoto'),
+ prefix=r'\b', suffix=r'\b'), Keyword, 'goto label'),
+ (words(('cggoto', 'cigoto', 'cingoto', 'ckgoto', 'cngoto'),
+ prefix=r'\b', suffix=r'\b'), Keyword,
+ ('goto label', 'goto expression')),
+ (words(('loop_ge', 'loop_gt', 'loop_le', 'loop_lt'),
+ prefix=r'\b', suffix=r'\b'), Keyword,
+ ('goto label', 'goto expression', 'goto expression', 'goto expression')),
+ (r'\bscoreline(_i)?\b', Name.Builtin, 'scoreline opcode'),
+ (r'\bpyl?run[it]?\b', Name.Builtin, 'python opcode'),
+ (r'\blua_(exec|opdef)\b', Name.Builtin, 'lua opcode'),
+ (r'\b[a-zA-Z_]\w*\b', name_callback)
+ ],
+
+ 'expression': [
+ include('whitespace or macro call'),
+ newline + ('#pop',),
+ include('partial expression')
+ ],
+
+ 'root': [
+ newline,
+ include('whitespace or macro call'),
+ (r'\binstr\b', Keyword, ('instrument block', 'instrument name list')),
+ (r'\bopcode\b', Keyword, ('opcode block', 'opcode parameter list',
+ 'opcode types', 'opcode types', 'opcode name')),
+ include('label'),
+ default('expression')
+ ],
+
+ 'instrument name list': [
+ include('whitespace or macro call'),
+ (r'\d+|\+?[a-zA-Z_]\w*', Name.Function),
+ (r',', Punctuation),
+ newline + ('#pop',)
+ ],
+ 'instrument block': [
+ newline,
+ include('whitespace or macro call'),
+ (r'\bendin\b', Keyword, '#pop'),
+ include('label'),
+ default('expression')
+ ],
+
+ 'opcode name': [
+ include('whitespace or macro call'),
+ (r'[a-zA-Z_]\w*', opcode_name_callback, '#pop')
+ ],
+ 'opcode types': [
+ include('whitespace or macro call'),
+ (r'0|[]afijkKoOpPStV[]+', Keyword.Type, '#pop'),
+ (r',', Punctuation)
+ ],
+ 'opcode parameter list': [
+ include('whitespace or macro call'),
+ newline + ('#pop',)
+ ],
+ 'opcode block': [
+ newline,
+ include('whitespace or macro call'),
+ (r'\bendop\b', Keyword, '#pop'),
+ include('label'),
+ default('expression')
+ ],
+
+ 'goto label': [
+ include('whitespace or macro call'),
+ (r'\w+', Name.Label, '#pop'),
+ default('#pop')
+ ],
+ 'goto expression': [
+ include('whitespace or macro call'),
+ (r',', Punctuation, '#pop'),
+ include('partial expression')
+ ],
+
+ 'single-line string': [
+ include('macro call'),
+ (r'"', String, '#pop'),
+ # From https://github.com/csound/csound/blob/develop/Opcodes/fout.c#L1405
+ (r'%\d*(\.\d+)?[cdhilouxX]', String.Interpol),
+ (r'%[!%nNrRtT]|[~^]|\\([\\aAbBnNrRtT"]|[0-7]{1,3})', String.Escape),
+ (r'[^\\"~$%\^\n]+', String),
+ (r'[\\"~$%\^\n]', String)
+ ],
+ 'multi-line string': [
+ (r'}}', String, '#pop'),
+ (r'[^\}]+|\}(?!\})', String)
+ ],
+
+ 'scoreline opcode': [
+ include('whitespace or macro call'),
+ (r'{{', String, 'scoreline'),
+ default('#pop')
+ ],
+ 'scoreline': [
+ (r'}}', String, '#pop'),
+ (r'([^\}]+)|\}(?!\})', using(CsoundScoreLexer))
+ ],
+
+ 'python opcode': [
+ include('whitespace or macro call'),
+ (r'{{', String, 'python'),
+ default('#pop')
+ ],
+ 'python': [
+ (r'}}', String, '#pop'),
+ (r'([^\}]+)|\}(?!\})', using(PythonLexer))
+ ],
+
+ 'lua opcode': [
+ include('whitespace or macro call'),
+ (r'"', String, 'single-line string'),
+ (r'{{', String, 'lua'),
+ (r',', Punctuation),
+ default('#pop')
+ ],
+ 'lua': [
+ (r'}}', String, '#pop'),
+ (r'([^\}]+)|\}(?!\})', using(LuaLexer))
+ ]
+ }
+
+
+class CsoundDocumentLexer(RegexLexer):
+ """
+ For `Csound <http://csound.github.io>`_ documents.
+
+
+ """
+
+ name = 'Csound Document'
+ aliases = ['csound-document', 'csound-csd']
+ filenames = ['*.csd']
+
+ # These tokens are based on those in XmlLexer in pygments/lexers/html.py. Making
+ # CsoundDocumentLexer a subclass of XmlLexer rather than RegexLexer may seem like a
+ # better idea, since Csound Document files look like XML files. However, Csound
+ # Documents can contain Csound comments (preceded by //, for example) before and
+ # after the root element, unescaped bitwise AND & and less than < operators, etc. In
+ # other words, while Csound Document files look like XML files, they may not actually
+ # be XML files.
+ tokens = {
+ 'root': [
+ newline,
+ (r'/[*](.|\n)*?[*]/', Comment.Multiline),
+ (r'[^<&;/]+', Text),
+ (r'<\s*CsInstruments', Name.Tag, ('orchestra', 'tag')),
+ (r'<\s*CsScore', Name.Tag, ('score', 'tag')),
+ (r'<\s*[hH][tT][mM][lL]', Name.Tag, ('HTML', 'tag')),
+ (r'<\s*[\w:.-]+', Name.Tag, 'tag'),
+ (r'<\s*/\s*[\w:.-]+\s*>', Name.Tag)
+ ],
+ 'orchestra': [
+ (r'<\s*/\s*CsInstruments\s*>', Name.Tag, '#pop'),
+ (r'(.|\n)+?(?=<\s*/\s*CsInstruments\s*>)', using(CsoundOrchestraLexer))
+ ],
+ 'score': [
+ (r'<\s*/\s*CsScore\s*>', Name.Tag, '#pop'),
+ (r'(.|\n)+?(?=<\s*/\s*CsScore\s*>)', using(CsoundScoreLexer))
+ ],
+ 'HTML': [
+ (r'<\s*/\s*[hH][tT][mM][lL]\s*>', Name.Tag, '#pop'),
+ (r'(.|\n)+?(?=<\s*/\s*[hH][tT][mM][lL]\s*>)', using(HtmlLexer))
+ ],
+ 'tag': [
+ (r'\s+', Text),
+ (r'[\w.:-]+\s*=', Name.Attribute, 'attr'),
+ (r'/?\s*>', Name.Tag, '#pop')
+ ],
+ 'attr': [
+ (r'\s+', Text),
+ (r'".*?"', String, '#pop'),
+ (r"'.*?'", String, '#pop'),
+ (r'[^\s>]+', String, '#pop')
+ ]
+ }
diff --git a/pygments/lexers/css.py b/pygments/lexers/css.py
index 6f27d63c..6f7e5be8 100644
--- a/pygments/lexers/css.py
+++ b/pygments/lexers/css.py
@@ -13,12 +13,12 @@ import re
import copy
from pygments.lexer import ExtendedRegexLexer, RegexLexer, include, bygroups, \
- default, words
+ default, words, inherit
from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
Number, Punctuation
from pygments.util import iteritems
-__all__ = ['CssLexer', 'SassLexer', 'ScssLexer']
+__all__ = ['CssLexer', 'SassLexer', 'ScssLexer', 'LessCssLexer']
class CssLexer(RegexLexer):
@@ -475,8 +475,9 @@ class ScssLexer(RegexLexer):
(r'(@media)(\s+)', bygroups(Keyword, Text), 'value'),
(r'@[\w-]+', Keyword, 'selector'),
(r'(\$[\w-]*\w)([ \t]*:)', bygroups(Name.Variable, Operator), 'value'),
- (r'(?=[^;{}][;}])', Name.Attribute, 'attr'),
- (r'(?=[^;{}:]+:[^a-z])', Name.Attribute, 'attr'),
+ # TODO: broken, and prone to infinite loops.
+ #(r'(?=[^;{}][;}])', Name.Attribute, 'attr'),
+ #(r'(?=[^;{}:]+:[^a-z])', Name.Attribute, 'attr'),
default('selector'),
],
@@ -497,3 +498,27 @@ class ScssLexer(RegexLexer):
tokens[group] = copy.copy(common)
tokens['value'].extend([(r'\n', Text), (r'[;{}]', Punctuation, '#pop')])
tokens['selector'].extend([(r'\n', Text), (r'[;{}]', Punctuation, '#pop')])
+
+
+class LessCssLexer(CssLexer):
+ """
+ For `LESS <http://lesscss.org/>`_ styleshets.
+
+ .. versionadded:: 2.1
+ """
+
+ name = 'LessCss'
+ aliases = ['less']
+ filenames = ['*.less']
+ mimetypes = ['text/x-less-css']
+
+ tokens = {
+ 'root': [
+ (r'@\w+', Name.Variable),
+ inherit,
+ ],
+ 'content': [
+ (r'{', Punctuation, '#push'),
+ inherit,
+ ],
+ }
diff --git a/pygments/lexers/dsls.py b/pygments/lexers/dsls.py
index 433287d4..24fda2a2 100644
--- a/pygments/lexers/dsls.py
+++ b/pygments/lexers/dsls.py
@@ -11,12 +11,14 @@
import re
-from pygments.lexer import RegexLexer, bygroups, words, include, default
+from pygments.lexer import RegexLexer, bygroups, words, include, default, \
+ this, using, combined
from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
- Number, Punctuation, Literal
+ Number, Punctuation, Literal, Whitespace
__all__ = ['ProtoBufLexer', 'BroLexer', 'PuppetLexer', 'RslLexer',
- 'MscgenLexer', 'VGLLexer', 'AlloyLexer', 'PanLexer']
+ 'MscgenLexer', 'VGLLexer', 'AlloyLexer', 'PanLexer',
+ 'CrmshLexer', 'ThriftLexer']
class ProtoBufLexer(RegexLexer):
@@ -81,6 +83,111 @@ class ProtoBufLexer(RegexLexer):
}
+class ThriftLexer(RegexLexer):
+ """
+ For `Thrift <https://thrift.apache.org/>`__ interface definitions.
+
+ .. versionadded:: 2.1
+ """
+ name = 'Thrift'
+ aliases = ['thrift']
+ filenames = ['*.thrift']
+ mimetypes = ['application/x-thrift']
+
+ tokens = {
+ 'root': [
+ include('whitespace'),
+ include('comments'),
+ (r'"', String.Double, combined('stringescape', 'dqs')),
+ (r'\'', String.Single, combined('stringescape', 'sqs')),
+ (r'(namespace)(\s+)',
+ bygroups(Keyword.Namespace, Text.Whitespace), 'namespace'),
+ (r'(enum|union|struct|service|exception)(\s+)',
+ bygroups(Keyword.Declaration, Text.Whitespace), 'class'),
+ (r'((?:(?:[^\W\d]|\$)[\w.\[\]$<>]*\s+)+?)' # return arguments
+ r'((?:[^\W\d]|\$)[\w$]*)' # method name
+ r'(\s*)(\()', # signature start
+ bygroups(using(this), Name.Function, Text, Operator)),
+ include('keywords'),
+ include('numbers'),
+ (r'[&=]', Operator),
+ (r'[:;\,\{\}\(\)\<>\[\]]', Punctuation),
+ (r'[a-zA-Z_](\.[a-zA-Z_0-9]|[a-zA-Z_0-9])*', Name),
+ ],
+ 'whitespace': [
+ (r'\n', Text.Whitespace),
+ (r'\s+', Text.Whitespace),
+ ],
+ 'comments': [
+ (r'#.*$', Comment),
+ (r'//.*?\n', Comment),
+ (r'/\*[\w\W]*?\*/', Comment.Multiline),
+ ],
+ 'stringescape': [
+ (r'\\([\\nrt"\'])', String.Escape),
+ ],
+ 'dqs': [
+ (r'"', String.Double, '#pop'),
+ (r'[^\\"\n]+', String.Double),
+ ],
+ 'sqs': [
+ (r"'", String.Single, '#pop'),
+ (r'[^\\\'\n]+', String.Single),
+ ],
+ 'namespace': [
+ (r'[a-z\*](\.[a-zA-Z_0-9]|[a-zA-Z_0-9])*', Name.Namespace, '#pop'),
+ default('#pop'),
+ ],
+ 'class': [
+ (r'[a-zA-Z_]\w*', Name.Class, '#pop'),
+ default('#pop'),
+ ],
+ 'keywords': [
+ (r'(async|oneway|extends|throws|required|optional)\b', Keyword),
+ (r'(true|false)\b', Keyword.Constant),
+ (r'(const|typedef)\b', Keyword.Declaration),
+ (words((
+ 'cpp_namespace', 'cpp_include', 'cpp_type', 'java_package',
+ 'cocoa_prefix', 'csharp_namespace', 'delphi_namespace',
+ 'php_namespace', 'py_module', 'perl_package',
+ 'ruby_namespace', 'smalltalk_category', 'smalltalk_prefix',
+ 'xsd_all', 'xsd_optional', 'xsd_nillable', 'xsd_namespace',
+ 'xsd_attrs', 'include'), suffix=r'\b'),
+ Keyword.Namespace),
+ (words((
+ 'void', 'bool', 'byte', 'i16', 'i32', 'i64', 'double',
+ 'string', 'binary', 'void', 'map', 'list', 'set', 'slist',
+ 'senum'), suffix=r'\b'),
+ Keyword.Type),
+ (words((
+ 'BEGIN', 'END', '__CLASS__', '__DIR__', '__FILE__',
+ '__FUNCTION__', '__LINE__', '__METHOD__', '__NAMESPACE__',
+ 'abstract', 'alias', 'and', 'args', 'as', 'assert', 'begin',
+ 'break', 'case', 'catch', 'class', 'clone', 'continue',
+ 'declare', 'def', 'default', 'del', 'delete', 'do', 'dynamic',
+ 'elif', 'else', 'elseif', 'elsif', 'end', 'enddeclare',
+ 'endfor', 'endforeach', 'endif', 'endswitch', 'endwhile',
+ 'ensure', 'except', 'exec', 'finally', 'float', 'for',
+ 'foreach', 'function', 'global', 'goto', 'if', 'implements',
+ 'import', 'in', 'inline', 'instanceof', 'interface', 'is',
+ 'lambda', 'module', 'native', 'new', 'next', 'nil', 'not',
+ 'or', 'pass', 'public', 'print', 'private', 'protected',
+ 'raise', 'redo', 'rescue', 'retry', 'register', 'return',
+ 'self', 'sizeof', 'static', 'super', 'switch', 'synchronized',
+ 'then', 'this', 'throw', 'transient', 'try', 'undef',
+ 'unless', 'unsigned', 'until', 'use', 'var', 'virtual',
+ 'volatile', 'when', 'while', 'with', 'xor', 'yield'),
+ prefix=r'\b', suffix=r'\b'),
+ Keyword.Reserved),
+ ],
+ 'numbers': [
+ (r'[+-]?(\d+\.\d+([eE][+-]?\d+)?|\.?\d+[eE][+-]?\d+)', Number.Float),
+ (r'[+-]?0x[0-9A-Fa-f]+', Number.Hex),
+ (r'[+-]?[0-9]+', Number.Integer),
+ ],
+ }
+
+
class BroLexer(RegexLexer):
"""
For `Bro <http://bro-ids.org/>`_ scripts.
@@ -471,19 +578,22 @@ class PanLexer(RegexLexer):
],
'basic': [
(words((
- 'if', 'for', 'with', 'else', 'type', 'bind', 'while', 'valid', 'final', 'prefix',
- 'unique', 'object', 'foreach', 'include', 'template', 'function', 'variable',
- 'structure', 'extensible', 'declaration'), prefix=r'\b', suffix=r'\s*\b'),
+ 'if', 'for', 'with', 'else', 'type', 'bind', 'while', 'valid', 'final',
+ 'prefix', 'unique', 'object', 'foreach', 'include', 'template',
+ 'function', 'variable', 'structure', 'extensible', 'declaration'),
+ prefix=r'\b', suffix=r'\s*\b'),
Keyword),
(words((
- 'file_contents', 'format', 'index', 'length', 'match', 'matches', 'replace',
- 'splice', 'split', 'substr', 'to_lowercase', 'to_uppercase', 'debug', 'error',
- 'traceback', 'deprecated', 'base64_decode', 'base64_encode', 'digest', 'escape',
- 'unescape', 'append', 'create', 'first', 'nlist', 'key', 'list', 'merge', 'next',
- 'prepend', 'is_boolean', 'is_defined', 'is_double', 'is_list', 'is_long',
- 'is_nlist', 'is_null', 'is_number', 'is_property', 'is_resource', 'is_string',
- 'to_boolean', 'to_double', 'to_long', 'to_string', 'clone', 'delete', 'exists',
- 'path_exists', 'if_exists', 'return', 'value'), prefix=r'\b', suffix=r'\s*\b'),
+ 'file_contents', 'format', 'index', 'length', 'match', 'matches',
+ 'replace', 'splice', 'split', 'substr', 'to_lowercase', 'to_uppercase',
+ 'debug', 'error', 'traceback', 'deprecated', 'base64_decode',
+ 'base64_encode', 'digest', 'escape', 'unescape', 'append', 'create',
+ 'first', 'nlist', 'key', 'list', 'merge', 'next', 'prepend', 'is_boolean',
+ 'is_defined', 'is_double', 'is_list', 'is_long', 'is_nlist', 'is_null',
+ 'is_number', 'is_property', 'is_resource', 'is_string', 'to_boolean',
+ 'to_double', 'to_long', 'to_string', 'clone', 'delete', 'exists',
+ 'path_exists', 'if_exists', 'return', 'value'),
+ prefix=r'\b', suffix=r'\s*\b'),
Name.Builtin),
(r'#.*', Comment),
(r'\\[\w\W]', String.Escape),
@@ -512,3 +622,73 @@ class PanLexer(RegexLexer):
include('root'),
],
}
+
+
+class CrmshLexer(RegexLexer):
+ """
+ Lexer for `crmsh <http://crmsh.github.io/>`_ configuration files
+ for Pacemaker clusters.
+
+ .. versionadded:: 2.1
+ """
+ name = 'Crmsh'
+ aliases = ['crmsh', 'pcmk']
+ filenames = ['*.crmsh', '*.pcmk']
+ mimetypes = []
+
+ elem = words((
+ 'node', 'primitive', 'group', 'clone', 'ms', 'location',
+ 'colocation', 'order', 'fencing_topology', 'rsc_ticket',
+ 'rsc_template', 'property', 'rsc_defaults',
+ 'op_defaults', 'acl_target', 'acl_group', 'user', 'role',
+ 'tag'), suffix=r'(?![\w#$-])')
+ sub = words((
+ 'params', 'meta', 'operations', 'op', 'rule',
+ 'attributes', 'utilization'), suffix=r'(?![\w#$-])')
+ acl = words(('read', 'write', 'deny'), suffix=r'(?![\w#$-])')
+ bin_rel = words(('and', 'or'), suffix=r'(?![\w#$-])')
+ un_ops = words(('defined', 'not_defined'), suffix=r'(?![\w#$-])')
+ date_exp = words(('in_range', 'date', 'spec', 'in'), suffix=r'(?![\w#$-])')
+ acl_mod = (r'(?:tag|ref|reference|attribute|type|xpath)')
+ bin_ops = (r'(?:lt|gt|lte|gte|eq|ne)')
+ val_qual = (r'(?:string|version|number)')
+ rsc_role_action = (r'(?:Master|Started|Slave|Stopped|'
+ r'start|promote|demote|stop)')
+
+ tokens = {
+ 'root': [
+ (r'^#.*\n?', Comment),
+ # attr=value (nvpair)
+ (r'([\w#$-]+)(=)("(?:""|[^"])*"|\S+)',
+ bygroups(Name.Attribute, Punctuation, String)),
+ # need this construct, otherwise numeric node ids
+ # are matched as scores
+ # elem id:
+ (r'(node)(\s+)([\w#$-]+)(:)',
+ bygroups(Keyword, Whitespace, Name, Punctuation)),
+ # scores
+ (r'([+-]?([0-9]+|inf)):', Number),
+ # keywords (elements and other)
+ (elem, Keyword),
+ (sub, Keyword),
+ (acl, Keyword),
+ # binary operators
+ (r'(?:%s:)?(%s)(?![\w#$-])' % (val_qual, bin_ops), Operator.Word),
+ # other operators
+ (bin_rel, Operator.Word),
+ (un_ops, Operator.Word),
+ (date_exp, Operator.Word),
+ # builtin attributes (e.g. #uname)
+ (r'#[a-z]+(?![\w#$-])', Name.Builtin),
+ # acl_mod:blah
+ (r'(%s)(:)("(?:""|[^"])*"|\S+)' % acl_mod,
+ bygroups(Keyword, Punctuation, Name)),
+ # rsc_id[:(role|action)]
+ # NB: this matches all other identifiers
+ (r'([\w#$-]+)(?:(:)(%s))?(?![\w#$-])' % rsc_role_action,
+ bygroups(Name, Punctuation, Operator.Word)),
+ # punctuation
+ (r'(\\(?=\n)|[[\](){}/:@])', Punctuation),
+ (r'\s+|\n', Whitespace),
+ ],
+ }
diff --git a/pygments/lexers/elm.py b/pygments/lexers/elm.py
new file mode 100644
index 00000000..b8206c6d
--- /dev/null
+++ b/pygments/lexers/elm.py
@@ -0,0 +1,119 @@
+# -*- coding: utf-8 -*-
+"""
+ pygments.lexers.elm
+ ~~~~~~~~~~~~~~~~~~~
+
+ Lexer for the Elm programming language.
+
+"""
+
+from pygments.lexer import RegexLexer, words, include
+from pygments.token import Comment, Keyword, Name, Number, Punctuation, String, Text
+
+__all__ = ['ElmLexer']
+
+
+class ElmLexer(RegexLexer):
+ """
+ For `Elm <http://elm-lang.org/>`_ source code.
+
+ .. versionadded:: 2.1
+ """
+
+ name = 'Elm'
+ aliases = ['elm']
+ filenames = ['*.elm']
+ mimetypes = ['text/x-elm']
+
+ validName = r'[a-z_][a-zA-Z_\']*'
+
+ specialName = r'^main '
+
+ builtinOps = (
+ '~', '||', '|>', '|', '`', '^', '\\', '\'', '>>', '>=', '>', '==',
+ '=', '<~', '<|', '<=', '<<', '<-', '<', '::', ':', '/=', '//', '/',
+ '..', '.', '->', '-', '++', '+', '*', '&&', '%',
+ )
+
+ reservedWords = words((
+ 'alias', 'as', 'case', 'else', 'if', 'import', 'in',
+ 'let', 'module', 'of', 'port', 'then', 'type', 'where',
+ ), suffix=r'\b')
+
+ tokens = {
+ 'root': [
+
+ # Comments
+ (r'{-', Comment.Multiline, 'comment'),
+ (r'--.*', Comment.Single),
+
+ # Whitespace
+ (r'\s+', Text),
+
+ # Strings
+ (r'"', String, 'doublequote'),
+
+ # Modules
+ (r'^\s*module\s*', Keyword.Namespace, 'imports'),
+
+ # Imports
+ (r'^\s*import\s*', Keyword.Namespace, 'imports'),
+
+ # Shaders
+ (r'\[glsl\|.*', Name.Entity, 'shader'),
+
+ # Keywords
+ (reservedWords, Keyword.Reserved),
+
+ # Types
+ (r'[A-Z]\w*', Keyword.Type),
+
+ # Main
+ (specialName, Keyword.Reserved),
+
+ # Prefix Operators
+ (words((builtinOps), prefix=r'\(', suffix=r'\)'), Name.Function),
+
+ # Infix Operators
+ (words((builtinOps)), Name.Function),
+
+ # Numbers
+ include('numbers'),
+
+ # Variable Names
+ (validName, Name.Variable),
+
+ # Parens
+ (r'[,\(\)\[\]{}]', Punctuation),
+
+ ],
+
+ 'comment': [
+ (r'-(?!})', Comment.Multiline),
+ (r'{-', Comment.Multiline, 'comment'),
+ (r'[^-}]', Comment.Multiline),
+ (r'-}', Comment.Multiline, '#pop'),
+ ],
+
+ 'doublequote': [
+ (r'\\u[0-9a-fA-F]\{4}', String.Escape),
+ (r'\\[nrfvb\\\"]', String.Escape),
+ (r'[^"]', String),
+ (r'"', String, '#pop'),
+ ],
+
+ 'imports': [
+ (r'\w+(\.\w+)*', Name.Class, '#pop'),
+ ],
+
+ 'numbers': [
+ (r'_?\d+\.(?=\d+)', Number.Float),
+ (r'_?\d+', Number.Integer),
+ ],
+
+ 'shader': [
+ (r'\|(?!\])', Name.Entity),
+ (r'\|\]', Name.Entity, '#pop'),
+ (r'.*\n', Name.Entity),
+ ],
+ }
diff --git a/pygments/lexers/esoteric.py b/pygments/lexers/esoteric.py
index f61b292d..73ea4a4a 100644
--- a/pygments/lexers/esoteric.py
+++ b/pygments/lexers/esoteric.py
@@ -9,11 +9,11 @@
:license: BSD, see LICENSE for details.
"""
-from pygments.lexer import RegexLexer, include
+from pygments.lexer import RegexLexer, include, words
from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
- Number, Punctuation, Error
+ Number, Punctuation, Error, Whitespace
-__all__ = ['BrainfuckLexer', 'BefungeLexer', 'RedcodeLexer']
+__all__ = ['BrainfuckLexer', 'BefungeLexer', 'BoogieLexer', 'RedcodeLexer', 'CAmkESLexer']
class BrainfuckLexer(RegexLexer):
@@ -78,6 +78,66 @@ class BefungeLexer(RegexLexer):
}
+class CAmkESLexer(RegexLexer):
+ """
+ Basic lexer for the input language for the
+ `CAmkES <https://sel4.systems/CAmkES/>`_ component platform.
+
+ .. versionadded:: 2.1
+ """
+ name = 'CAmkES'
+ aliases = ['camkes', 'idl4']
+ filenames = ['*.camkes', '*.idl4']
+
+ tokens = {
+ 'root':[
+ # C pre-processor directive
+ (r'^\s*#.*\n', Comment.Preproc),
+
+ # Whitespace, comments
+ (r'\s+', Text),
+ (r'/\*(.|\n)*?\*/', Comment),
+ (r'//.*\n', Comment),
+
+ (r'[\[\(\){},\.;=\]]', Punctuation),
+
+ (words(('assembly', 'attribute', 'component', 'composition',
+ 'configuration', 'connection', 'connector', 'consumes',
+ 'control', 'dataport', 'Dataport', 'emits', 'event',
+ 'Event', 'from', 'group', 'hardware', 'has', 'interface',
+ 'Interface', 'maybe', 'procedure', 'Procedure', 'provides',
+ 'template', 'to', 'uses'), suffix=r'\b'), Keyword),
+
+ (words(('bool', 'boolean', 'Buf', 'char', 'character', 'double',
+ 'float', 'in', 'inout', 'int', 'int16_6', 'int32_t',
+ 'int64_t', 'int8_t', 'integer', 'mutex', 'out', 'real',
+ 'refin', 'semaphore', 'signed', 'string', 'uint16_t',
+ 'uint32_t', 'uint64_t', 'uint8_t', 'uintptr_t', 'unsigned',
+ 'void'), suffix=r'\b'), Keyword.Type),
+
+ # Recognised attributes
+ (r'[a-zA-Z_]\w*_(priority|domain|buffer)', Keyword.Reserved),
+ (words(('dma_pool', 'from_access', 'to_access'), suffix=r'\b'),
+ Keyword.Reserved),
+
+ # CAmkES-level include
+ (r'import\s+(<[^>]*>|"[^"]*");', Comment.Preproc),
+
+ # C-level include
+ (r'include\s+(<[^>]*>|"[^"]*");', Comment.Preproc),
+
+ # Literals
+ (r'0[xX][\da-fA-F]+', Number.Hex),
+ (r'-?[\d]+', Number),
+ (r'-?[\d]+\.[\d]+', Number.Float),
+ (r'"[^"]*"', String),
+
+ # Identifiers
+ (r'[a-zA-Z_]\w*', Name),
+ ],
+ }
+
+
class RedcodeLexer(RegexLexer):
"""
A simple Redcode lexer based on ICWS'94.
@@ -112,3 +172,48 @@ class RedcodeLexer(RegexLexer):
(r'[-+]?\d+', Number.Integer),
],
}
+
+
+class BoogieLexer(RegexLexer):
+ """
+ For `Boogie <https://boogie.codeplex.com/>`_ source code.
+
+ .. versionadded:: 2.1
+ """
+ name = 'Boogie'
+ aliases = ['boogie']
+ filenames = ['*.bpl']
+
+ tokens = {
+ 'root': [
+ # Whitespace and Comments
+ (r'\n', Whitespace),
+ (r'\s+', Whitespace),
+ (r'//[/!](.*?)\n', Comment.Doc),
+ (r'//(.*?)\n', Comment.Single),
+ (r'/\*', Comment.Multiline, 'comment'),
+
+ (words((
+ 'axiom', 'break', 'call', 'ensures', 'else', 'exists', 'function',
+ 'forall', 'if', 'invariant', 'modifies', 'procedure', 'requires',
+ 'then', 'var', 'while'),
+ suffix=r'\b'), Keyword),
+ (words(('const',), suffix=r'\b'), Keyword.Reserved),
+
+ (words(('bool', 'int', 'ref'), suffix=r'\b'), Keyword.Type),
+ include('numbers'),
+ (r"(>=|<=|:=|!=|==>|&&|\|\||[+/\-=>*<\[\]])", Operator),
+ (r"([{}():;,.])", Punctuation),
+ # Identifier
+ (r'[a-zA-Z_]\w*', Name),
+ ],
+ 'comment': [
+ (r'[^*/]+', Comment.Multiline),
+ (r'/\*', Comment.Multiline, '#push'),
+ (r'\*/', Comment.Multiline, '#pop'),
+ (r'[*/]', Comment.Multiline),
+ ],
+ 'numbers': [
+ (r'[0-9]+', Number.Integer),
+ ],
+ }
diff --git a/pygments/lexers/ezhil.py b/pygments/lexers/ezhil.py
new file mode 100644
index 00000000..713541ee
--- /dev/null
+++ b/pygments/lexers/ezhil.py
@@ -0,0 +1,68 @@
+# -*- coding: utf-8 -*-
+"""
+ pygments.lexers.ezhil
+ ~~~~~~~~~~~~~~~~~~~~~~
+
+ Pygments lexers for Ezhil language.
+
+ :copyright: Copyright 2006-2015 by the Pygments team, see AUTHORS.
+ :license: BSD, see LICENSE for details.
+"""
+
+import re
+from pygments.lexer import RegexLexer, include, words
+from pygments.token import Keyword, Text, Comment, Name
+from pygments.token import String, Number, Punctuation, Operator
+
+__all__ = ['EzhilLexer']
+
+class EzhilLexer(RegexLexer):
+ """
+ Lexer for `Ezhil, a Tamil script-based programming language <http://ezhillang.org>`_
+
+ .. versionadded:: 2.1
+ """
+ name = 'Ezhil'
+ aliases = ['ezhil']
+ filenames = ['*.n']
+ mimetypes = ['text/x-ezhil']
+ flags = re.MULTILINE | re.UNICODE
+ # Refer to tamil.utf8.tamil_letters from open-tamil for a stricter version of this.
+ # This much simpler version is close enough, and includes combining marks.
+ _TALETTERS = u'[a-zA-Z_]|[\u0b80-\u0bff]'
+ tokens = {
+ 'root': [
+ include('keywords'),
+ (r'#.*\n', Comment.Single),
+ (r'[@+/*,^\-%]|[!<>=]=?|&&?|\|\|?', Operator),
+ (u'இல்', Operator.Word),
+ (words(('assert', 'max', 'min',
+ 'நீளம்','சரம்_இடமாற்று','சரம்_கண்டுபிடி',
+ 'பட்டியல்','பின்இணை','வரிசைப்படுத்து',
+ 'எடு','தலைகீழ்','நீட்டிக்க','நுழைக்க','வை',
+ 'கோப்பை_திற','கோப்பை_எழுது','கோப்பை_மூடு',
+ 'pi','sin','cos','tan','sqrt','hypot','pow','exp','log','log10'
+ 'min','max','exit',
+ ), suffix=r'\b'), Name.Builtin),
+ (r'(True|False)\b', Keyword.Constant),
+ (r'[^\S\n]+', Text),
+ include('identifier'),
+ include('literal'),
+ (r'[(){}\[\]:;.]', Punctuation),
+ ],
+ 'keywords': [
+ (u'பதிப்பி|தேர்ந்தெடு|தேர்வு|ஏதேனில்|ஆனால்|இல்லைஆனால்|இல்லை|ஆக|ஒவ்வொன்றாக|இல்|வரை|செய்|முடியேனில்|பின்கொடு|முடி|நிரல்பாகம்|தொடர்|நிறுத்து|நிரல்பாகம்', Keyword),
+ ],
+ 'identifier': [
+ (u'(?:'+_TALETTERS+u')(?:[0-9]|'+_TALETTERS+u')*', Name),
+ ],
+ 'literal': [
+ (r'".*?"', String),
+ (r'(?u)\d+((\.\d*)?[eE][+-]?\d+|\.\d*)', Number.Float),
+ (r'(?u)\d+', Number.Integer),
+ ]
+ }
+
+ def __init__(self, **options):
+ super(EzhilLexer, self).__init__(**options)
+ self.encoding = options.get('encoding', 'utf-8')
diff --git a/pygments/lexers/fortran.py b/pygments/lexers/fortran.py
index d822160f..4c22139d 100644
--- a/pygments/lexers/fortran.py
+++ b/pygments/lexers/fortran.py
@@ -73,13 +73,14 @@ class FortranLexer(RegexLexer):
# Data Types
(words((
'CHARACTER', 'COMPLEX', 'DOUBLE PRECISION', 'DOUBLE COMPLEX', 'INTEGER',
- 'LOGICAL', 'REAL', 'C_INT', 'C_SHORT', 'C_LONG', 'C_LONG_LONG', 'C_SIGNED_CHAR',
- 'C_SIZE_T', 'C_INT8_T', 'C_INT16_T', 'C_INT32_T', 'C_INT64_T', 'C_INT_LEAST8_T',
- 'C_INT_LEAST16_T', 'C_INT_LEAST32_T', 'C_INT_LEAST64_T', 'C_INT_FAST8_T',
- 'C_INT_FAST16_T', 'C_INT_FAST32_T', 'C_INT_FAST64_T', 'C_INTMAX_T',
- 'C_INTPTR_T', 'C_FLOAT', 'C_DOUBLE', 'C_LONG_DOUBLE', 'C_FLOAT_COMPLEX',
- 'C_DOUBLE_COMPLEX', 'C_LONG_DOUBLE_COMPLEX', 'C_BOOL', 'C_CHAR', 'C_PTR',
- 'C_FUNPTR'), prefix=r'\b', suffix=r'\s*\b'),
+ 'LOGICAL', 'REAL', 'C_INT', 'C_SHORT', 'C_LONG', 'C_LONG_LONG',
+ 'C_SIGNED_CHAR', 'C_SIZE_T', 'C_INT8_T', 'C_INT16_T', 'C_INT32_T',
+ 'C_INT64_T', 'C_INT_LEAST8_T', 'C_INT_LEAST16_T', 'C_INT_LEAST32_T',
+ 'C_INT_LEAST64_T', 'C_INT_FAST8_T', 'C_INT_FAST16_T', 'C_INT_FAST32_T',
+ 'C_INT_FAST64_T', 'C_INTMAX_T', 'C_INTPTR_T', 'C_FLOAT', 'C_DOUBLE',
+ 'C_LONG_DOUBLE', 'C_FLOAT_COMPLEX', 'C_DOUBLE_COMPLEX',
+ 'C_LONG_DOUBLE_COMPLEX', 'C_BOOL', 'C_CHAR', 'C_PTR', 'C_FUNPTR'),
+ prefix=r'\b', suffix=r'\s*\b'),
Keyword.Type),
# Operators
@@ -171,7 +172,7 @@ class FortranFixedLexer(RegexLexer):
aliases = ['fortranfixed']
filenames = ['*.f', '*.F']
- flags = re.IGNORECASE
+ flags = re.IGNORECASE
def _lex_fortran(self, match, ctx=None):
"""Lex a line just as free form fortran without line break."""
diff --git a/pygments/lexers/functional.py b/pygments/lexers/functional.py
index 180d3fd4..13c72b1e 100644
--- a/pygments/lexers/functional.py
+++ b/pygments/lexers/functional.py
@@ -10,7 +10,7 @@
"""
from pygments.lexers.lisp import SchemeLexer, CommonLispLexer, RacketLexer, \
- NewLispLexer
+ NewLispLexer, ShenLexer
from pygments.lexers.haskell import HaskellLexer, LiterateHaskellLexer, \
KokaLexer
from pygments.lexers.theorem import CoqLexer
diff --git a/pygments/lexers/grammar_notation.py b/pygments/lexers/grammar_notation.py
new file mode 100644
index 00000000..460914f4
--- /dev/null
+++ b/pygments/lexers/grammar_notation.py
@@ -0,0 +1,131 @@
+# -*- coding: utf-8 -*-
+"""
+ pygments.lexers.grammar_notation
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+ Lexers for grammer notations like BNF.
+
+ :copyright: Copyright 2006-2015 by the Pygments team, see AUTHORS.
+ :license: BSD, see LICENSE for details.
+"""
+
+from pygments.lexer import RegexLexer, bygroups, words
+from pygments.token import Punctuation, Text, Comment, Operator, \
+ Keyword, Name, Literal
+
+__all__ = ['BnfLexer', 'AbnfLexer']
+
+
+class BnfLexer(RegexLexer):
+ """
+ This lexer is for grammer notations which are similar to
+ original BNF.
+
+ In order to maximize a number of targets of this lexer,
+ let's decide some designs:
+
+ * We don't distinguish `Terminal Symbol`.
+
+ * We do assume that `NonTerminal Symbol` are always enclosed
+ with arrow brackets.
+
+ * We do assume that `NonTerminal Symbol` may include
+ any printable characters except arrow brackets and ASCII 0x20.
+ This assumption is for `RBNF <http://www.rfc-base.org/txt/rfc-5511.txt>`_.
+
+ * We do assume that target notation doesn't support comment.
+
+ * We don't distinguish any operators and punctuation except
+ `::=`.
+
+ Though these desision making might cause too minimal highlighting
+ and you might be disappointed, but it is reasonable for us.
+
+ .. versionadded:: 2.1
+ """
+
+ name = 'BNF'
+ aliases = ['bnf']
+ filenames = ['*.bnf']
+ mimetypes = ['text/x-bnf']
+
+ tokens = {
+ 'root': [
+ (r'(<)([ -;=?-~]+)(>)',
+ bygroups(Punctuation, Name.Class, Punctuation)),
+
+ # an only operator
+ (r'::=', Operator),
+
+ # fallback
+ (r'[^<>:]+', Text), # for performance
+ (r'.', Text),
+ ],
+ }
+
+
+class AbnfLexer(RegexLexer):
+ """
+ Lexer for `IETF 7405 ABNF
+ <http://www.ietf.org/rfc/rfc7405.txt>`_
+ (Updates `5234 <http://www.ietf.org/rfc/rfc5234.txt>`_)
+ grammars.
+
+ .. versionadded:: 2.1
+ """
+
+ name = 'ABNF'
+ aliases = ['abnf']
+ filenames = ['*.abnf']
+ mimetypes = ['text/x-abnf']
+
+ _core_rules = (
+ 'ALPHA', 'BIT', 'CHAR', 'CR', 'CRLF', 'CTL', 'DIGIT',
+ 'DQUOTE', 'HEXDIG', 'HTAB', 'LF', 'LWSP', 'OCTET',
+ 'SP', 'VCHAR', 'WSP')
+
+ tokens = {
+ 'root': [
+ # comment
+ (r';.*$', Comment.Single),
+
+ # quoted
+ # double quote itself in this state, it is as '%x22'.
+ (r'(%[si])?"[^"]*"', Literal),
+
+ # binary (but i have never seen...)
+ (r'%b[01]+\-[01]+\b', Literal), # range
+ (r'%b[01]+(\.[01]+)*\b', Literal), # concat
+
+ # decimal
+ (r'%d[0-9]+\-[0-9]+\b', Literal), # range
+ (r'%d[0-9]+(\.[0-9]+)*\b', Literal), # concat
+
+ # hexadecimal
+ (r'%x[0-9a-fA-F]+\-[0-9a-fA-F]+\b', Literal), # range
+ (r'%x[0-9a-fA-F]+(\.[0-9a-fA-F]+)*\b', Literal), # concat
+
+ # repetition (<a>*<b>element) including nRule
+ (r'\b[0-9]+\*[0-9]+', Operator),
+ (r'\b[0-9]+\*', Operator),
+ (r'\b[0-9]+', Operator),
+ (r'\*', Operator),
+
+ # Strictly speaking, these are not keyword but
+ # are called `Core Rule'.
+ (words(_core_rules, suffix=r'\b'), Keyword),
+
+ # nonterminals (ALPHA *(ALPHA / DIGIT / "-"))
+ (r'[a-zA-Z][a-zA-Z0-9-]+\b', Name.Class),
+
+ # operators
+ (r'(=/|=|/)', Operator),
+
+ # punctuation
+ (r'[\[\]()]', Punctuation),
+
+ # fallback
+ (r'\s+', Text),
+ (r'.', Text),
+ ],
+ }
diff --git a/pygments/lexers/graph.py b/pygments/lexers/graph.py
index d90f0278..8315898c 100644
--- a/pygments/lexers/graph.py
+++ b/pygments/lexers/graph.py
@@ -61,6 +61,7 @@ class CypherLexer(RegexLexer):
'relations': [
(r'(-\[)(.*?)(\]->)', bygroups(Operator, using(this), Operator)),
(r'(<-\[)(.*?)(\]-)', bygroups(Operator, using(this), Operator)),
+ (r'(-\[)(.*?)(\]-)', bygroups(Operator, using(this), Operator)),
(r'-->|<--|\[|\]', Operator),
(r'<|>|<>|=|<=|=>|\(|\)|\||:|,|;', Punctuation),
(r'[.*{}]', Punctuation),
diff --git a/pygments/lexers/hexdump.py b/pygments/lexers/hexdump.py
new file mode 100644
index 00000000..efe16fa7
--- /dev/null
+++ b/pygments/lexers/hexdump.py
@@ -0,0 +1,97 @@
+# -*- coding: utf-8 -*-
+"""
+ pygments.lexers.hexdump
+ ~~~~~~~~~~~~~~~~~~~~~~~
+
+ Lexers for hexadecimal dumps.
+
+ :copyright: Copyright 2006-2015 by the Pygments team, see AUTHORS.
+ :license: BSD, see LICENSE for details.
+"""
+
+import re
+
+from pygments.lexer import RegexLexer, bygroups, include
+from pygments.token import Text, Name, Number, String, Punctuation
+
+__all__ = ['HexdumpLexer']
+
+
+class HexdumpLexer(RegexLexer):
+ """
+ For typical hex dump output formats by the UNIX and GNU/Linux tools ``hexdump``,
+ ``hd``, ``hexcat``, ``od`` and ``xxd``, and the DOS tool ``DEBUG``. For example:
+
+ .. sourcecode:: hexdump
+
+ 00000000 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00 |.ELF............|
+ 00000010 02 00 3e 00 01 00 00 00 c5 48 40 00 00 00 00 00 |..>......H@.....|
+
+ The specific supported formats are the outputs of:
+
+ * ``hexdump FILE``
+ * ``hexdump -C FILE`` -- the `canonical` format used in the example.
+ * ``hd FILE`` -- same as ``hexdump -C FILE``.
+ * ``hexcat FILE``
+ * ``od -t x1z FILE``
+ * ``xxd FILE``
+ * ``DEBUG.EXE FILE.COM`` and entering ``d`` to the prompt.
+
+ .. versionadded:: 2.1
+ """
+ name = 'Hexdump'
+ aliases = ['hexdump']
+
+ hd = r'[0-9A-Ha-h]'
+
+ tokens = {
+ 'root': [
+ (r'\n', Text),
+ include('offset'),
+ (r'('+hd+r'{2})(\-)('+hd+r'{2})', bygroups(Number.Hex, Punctuation, Number.Hex)),
+ (hd+r'{2}', Number.Hex),
+ (r'(\s{2,3})(\>)(.{16})(\<)$', bygroups(Text, Punctuation, String, Punctuation), 'bracket-strings'),
+ (r'(\s{2,3})(\|)(.{16})(\|)$', bygroups(Text, Punctuation, String, Punctuation), 'piped-strings'),
+ (r'(\s{2,3})(\>)(.{1,15})(\<)$', bygroups(Text, Punctuation, String, Punctuation)),
+ (r'(\s{2,3})(\|)(.{1,15})(\|)$', bygroups(Text, Punctuation, String, Punctuation)),
+ (r'(\s{2,3})(.{1,15})$', bygroups(Text, String)),
+ (r'(\s{2,3})(.{16}|.{20})$', bygroups(Text, String), 'nonpiped-strings'),
+ (r'\s', Text),
+ (r'^\*', Punctuation),
+ ],
+ 'offset': [
+ (r'^('+hd+'+)(:)', bygroups(Name.Label, Punctuation), 'offset-mode'),
+ (r'^'+hd+'+', Name.Label),
+ ],
+ 'offset-mode': [
+ (r'\s', Text, '#pop'),
+ (hd+'+', Name.Label),
+ (r':', Punctuation)
+ ],
+ 'piped-strings': [
+ (r'\n', Text),
+ include('offset'),
+ (hd+r'{2}', Number.Hex),
+ (r'(\s{2,3})(\|)(.{1,16})(\|)$', bygroups(Text, Punctuation, String, Punctuation)),
+ (r'\s', Text),
+ (r'^\*', Punctuation),
+ ],
+ 'bracket-strings': [
+ (r'\n', Text),
+ include('offset'),
+ (hd+r'{2}', Number.Hex),
+ (r'(\s{2,3})(\>)(.{1,16})(\<)$', bygroups(Text, Punctuation, String, Punctuation)),
+ (r'\s', Text),
+ (r'^\*', Punctuation),
+ ],
+ 'nonpiped-strings': [
+ (r'\n', Text),
+ include('offset'),
+ (r'('+hd+r'{2})(\-)('+hd+r'{2})', bygroups(Number.Hex, Punctuation, Number.Hex)),
+ (hd+r'{2}', Number.Hex),
+ (r'(\s{19,})(.{1,20}?)$', bygroups(Text, String)),
+ (r'(\s{2,3})(.{1,20})$', bygroups(Text, String)),
+ (r'\s', Text),
+ (r'^\*', Punctuation),
+ ],
+ }
diff --git a/pygments/lexers/idl.py b/pygments/lexers/idl.py
index a1ab1ad0..d745bcfd 100644
--- a/pygments/lexers/idl.py
+++ b/pygments/lexers/idl.py
@@ -12,7 +12,7 @@
import re
from pygments.lexer import RegexLexer, words
-from pygments.token import Text, Comment, Operator, Keyword, Name, Number
+from pygments.token import Text, Comment, Operator, Keyword, Name, Number, String
__all__ = ['IDLLexer']
@@ -256,7 +256,14 @@ class IDLLexer(RegexLexer):
(r'\+\+|--|->|\+|-|##|#|\*|/|<|>|&&|\^|~|\|\|\?|:', Operator),
(r'\b(mod=|lt=|le=|eq=|ne=|ge=|gt=|not=|and=|or=|xor=)', Operator),
(r'\b(mod|lt|le|eq|ne|ge|gt|not|and|or|xor)\b', Operator),
- (r'\b[0-9](L|B|S|UL|ULL|LL)?\b', Number),
+ (r'"[^\"]*"', String.Double),
+ (r"'[^\']*'", String.Single),
+ (r'\b[\+\-]?([0-9]*\.[0-9]+|[0-9]+\.[0-9]*)(D|E)?([\+\-]?[0-9]+)?\b', Number.Float),
+ (r'\b\'[\+\-]?[0-9A-F]+\'X(U?(S?|L{1,2})|B)\b', Number.Hex),
+ (r'\b\'[\+\-]?[0-7]+\'O(U?(S?|L{1,2})|B)\b', Number.Oct),
+ (r'\b[\+\-]?[0-9]+U?L{1,2}\b', Number.Integer.Long),
+ (r'\b[\+\-]?[0-9]+U?S?\b', Number.Integer),
+ (r'\b[\+\-]?[0-9]+B\b', Number),
(r'.', Text),
]
}
diff --git a/pygments/lexers/int_fiction.py b/pygments/lexers/int_fiction.py
index 25c472b1..724f9b27 100644
--- a/pygments/lexers/int_fiction.py
+++ b/pygments/lexers/int_fiction.py
@@ -285,6 +285,7 @@ class Inform6Lexer(RegexLexer):
include('_whitespace'),
(r';', Punctuation, '#pop'),
(r'\*', Punctuation),
+ (r'"', String.Double, 'plain-string'),
(_name, Name.Variable)
],
# Array
diff --git a/pygments/lexers/j.py b/pygments/lexers/j.py
new file mode 100644
index 00000000..20176d0d
--- /dev/null
+++ b/pygments/lexers/j.py
@@ -0,0 +1,144 @@
+# -*- coding: utf-8 -*-
+"""
+ pygments.lexers.j
+ ~~~~~~~~~~~~~~~~~
+
+ Lexer for the J programming language.
+
+"""
+
+from pygments.lexer import RegexLexer, words, include
+from pygments.token import Comment, Keyword, Name, Number, Operator, Punctuation, \
+ String, Text
+
+__all__ = ['JLexer']
+
+
+class JLexer(RegexLexer):
+ """
+ For `J <http://jsoftware.com/>`_ source code.
+
+ .. versionadded:: 2.1
+ """
+
+ name = 'J'
+ aliases = ['j']
+ filenames = ['*.ijs']
+ mimetypes = ['text/x-j']
+
+ validName = r'\b[a-zA-Z]\w*'
+
+ tokens = {
+ 'root': [
+ # Shebang script
+ (r'#!.*$', Comment.Preproc),
+
+ # Comments
+ (r'NB\..*', Comment.Single),
+ (r'\n+\s*Note', Comment.Multiline, 'comment'),
+ (r'\s*Note.*', Comment.Single),
+
+ # Whitespace
+ (r'\s+', Text),
+
+ # Strings
+ (r"'", String, 'singlequote'),
+
+ # Definitions
+ (r'0\s+:\s*0|noun\s+define\s*$', Name.Entity, 'nounDefinition'),
+ (r'\b(([1-4]|13)\s+:\s*0)|((adverb|conjunction|dyad|monad|verb)\s+define)\b',
+ Name.Function, 'explicitDefinition'),
+
+ # Flow Control
+ (words(('for_', 'goto_', 'label_'), suffix=validName+'\.'), Name.Label),
+ (words((
+ 'assert', 'break', 'case', 'catch', 'catchd',
+ 'catcht', 'continue', 'do', 'else', 'elseif',
+ 'end', 'fcase', 'for', 'if', 'return',
+ 'select', 'throw', 'try', 'while', 'whilst',
+ ), suffix='\.'), Name.Label),
+
+ # Variable Names
+ (validName, Name.Variable),
+
+ # Standard Library
+ (words((
+ 'ARGV', 'CR', 'CRLF', 'DEL', 'Debug',
+ 'EAV', 'EMPTY', 'FF', 'JVERSION', 'LF',
+ 'LF2', 'Note', 'TAB', 'alpha17', 'alpha27',
+ 'apply', 'bind', 'boxopen', 'boxxopen', 'bx',
+ 'clear', 'cutLF', 'cutopen', 'datatype', 'def',
+ 'dfh', 'drop', 'each', 'echo', 'empty',
+ 'erase', 'every', 'evtloop', 'exit', 'expand',
+ 'fetch', 'file2url', 'fixdotdot', 'fliprgb', 'getargs',
+ 'getenv', 'hfd', 'inv', 'inverse', 'iospath',
+ 'isatty', 'isutf8', 'items', 'leaf', 'list',
+ 'nameclass', 'namelist', 'namelist', 'names', 'nc',
+ 'nl', 'on', 'pick', 'pick', 'rows',
+ 'script', 'scriptd', 'sign', 'sminfo', 'smoutput',
+ 'sort', 'split', 'stderr', 'stdin', 'stdout',
+ 'table', 'take', 'timespacex', 'timex', 'tmoutput',
+ 'toCRLF', 'toHOST', 'toJ', 'tolower', 'toupper',
+ 'type', 'ucp', 'ucpcount', 'usleep', 'utf8',
+ 'uucp',
+ )), Name.Function),
+
+ # Copula
+ (r'=[.:]', Operator),
+
+ # Builtins
+ (r'[-=+*#$%@!~`^&";:.,<>{}\[\]\\|/]', Operator),
+
+ # Short Keywords
+ (r'[abCdDeEfHiIjLMoprtT]\.', Keyword.Reserved),
+ (r'[aDiLpqsStux]\:', Keyword.Reserved),
+ (r'(_[0-9])\:', Keyword.Constant),
+
+ # Parens
+ (r'\(', Punctuation, 'parentheses'),
+
+ # Numbers
+ include('numbers'),
+ ],
+
+ 'comment': [
+ (r'[^)]', Comment.Multiline),
+ (r'^\)', Comment.Multiline, '#pop'),
+ (r'[)]', Comment.Multiline),
+ ],
+
+ 'explicitDefinition': [
+ (r'\b[nmuvxy]\b', Name.Decorator),
+ include('root'),
+ (r'[^)]', Name),
+ (r'^\)', Name.Label, '#pop'),
+ (r'[)]', Name),
+ ],
+
+ 'numbers': [
+ (r'\b_{1,2}\b', Number),
+ (r'_?\d+(\.\d+)?(\s*[ejr]\s*)_?\d+(\.?=\d+)?', Number),
+ (r'_?\d+\.(?=\d+)', Number.Float),
+ (r'_?\d+x', Number.Integer.Long),
+ (r'_?\d+', Number.Integer),
+ ],
+
+ 'nounDefinition': [
+ (r'[^)]', String),
+ (r'^\)', Name.Label, '#pop'),
+ (r'[)]', String),
+ ],
+
+ 'parentheses': [
+ (r'\)', Punctuation, '#pop'),
+ # include('nounDefinition'),
+ include('explicitDefinition'),
+ include('root'),
+ ],
+
+ 'singlequote': [
+ (r"[^']", String),
+ (r"''", String),
+ (r"'", String, '#pop'),
+ ],
+ }
diff --git a/pygments/lexers/javascript.py b/pygments/lexers/javascript.py
index 7dcfbb4b..8e2d9797 100644
--- a/pygments/lexers/javascript.py
+++ b/pygments/lexers/javascript.py
@@ -11,7 +11,8 @@
import re
-from pygments.lexer import RegexLexer, include, bygroups, default, using, this
+from pygments.lexer import RegexLexer, include, bygroups, default, using, \
+ this, words, combined
from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
Number, Punctuation, Other
from pygments.util import get_bool_opt, iteritems
@@ -19,7 +20,7 @@ import pygments.unistring as uni
__all__ = ['JavascriptLexer', 'KalLexer', 'LiveScriptLexer', 'DartLexer',
'TypeScriptLexer', 'LassoLexer', 'ObjectiveJLexer',
- 'CoffeeScriptLexer', 'MaskLexer']
+ 'CoffeeScriptLexer', 'MaskLexer', 'EarlGreyLexer']
JS_IDENT_START = ('(?:[$_' + uni.combine('Lu', 'Ll', 'Lt', 'Lm', 'Lo', 'Nl') +
']|\\\\u[a-fA-F0-9]{4})')
@@ -36,9 +37,9 @@ class JavascriptLexer(RegexLexer):
name = 'JavaScript'
aliases = ['js', 'javascript']
- filenames = ['*.js', '*.jsm', ]
+ filenames = ['*.js', '*.jsm']
mimetypes = ['application/javascript', 'application/x-javascript',
- 'text/x-javascript', 'text/javascript', ]
+ 'text/x-javascript', 'text/javascript']
flags = re.DOTALL | re.UNICODE | re.MULTILINE
@@ -64,12 +65,13 @@ class JavascriptLexer(RegexLexer):
(r'^(?=\s|/|<!--)', Text, 'slashstartsregex'),
include('commentsandwhitespace'),
(r'\+\+|--|~|&&|\?|:|\|\||\\(?=\n)|'
- r'(<<|>>>?|==?|!=?|[-<>+*%&|^/])=?', Operator, 'slashstartsregex'),
+ r'(<<|>>>?|=>|==?|!=?|[-<>+*%&|^/])=?', Operator, 'slashstartsregex'),
+ (r'\.\.\.', Punctuation),
(r'[{(\[;,]', Punctuation, 'slashstartsregex'),
(r'[})\].]', Punctuation),
(r'(for|in|while|do|break|return|continue|switch|case|default|if|else|'
r'throw|try|catch|finally|new|delete|typeof|instanceof|void|yield|'
- r'this)\b', Keyword, 'slashstartsregex'),
+ r'this|of)\b', Keyword, 'slashstartsregex'),
(r'(var|let|with|function)\b', Keyword.Declaration, 'slashstartsregex'),
(r'(abstract|boolean|byte|char|class|const|debugger|double|enum|export|'
r'extends|final|float|goto|implements|import|int|interface|long|native|'
@@ -77,17 +79,34 @@ class JavascriptLexer(RegexLexer):
r'transient|volatile)\b', Keyword.Reserved),
(r'(true|false|null|NaN|Infinity|undefined)\b', Keyword.Constant),
(r'(Array|Boolean|Date|Error|Function|Math|netscape|'
- r'Number|Object|Packages|RegExp|String|sun|decodeURI|'
+ r'Number|Object|Packages|RegExp|String|Promise|Proxy|sun|decodeURI|'
r'decodeURIComponent|encodeURI|encodeURIComponent|'
- r'Error|eval|isFinite|isNaN|parseFloat|parseInt|document|this|'
- r'window)\b', Name.Builtin),
+ r'Error|eval|isFinite|isNaN|isSafeInteger|parseFloat|parseInt|'
+ r'document|this|window)\b', Name.Builtin),
(JS_IDENT, Name.Other),
(r'[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?', Number.Float),
+ (r'0b[01]+', Number.Bin),
+ (r'0o[0-7]+', Number.Oct),
(r'0x[0-9a-fA-F]+', Number.Hex),
(r'[0-9]+', Number.Integer),
(r'"(\\\\|\\"|[^"])*"', String.Double),
(r"'(\\\\|\\'|[^'])*'", String.Single),
- ]
+ (r'`', String.Backtick, 'interp'),
+ ],
+ 'interp': [
+ (r'`', String.Backtick, '#pop'),
+ (r'\\\\', String.Backtick),
+ (r'\\`', String.Backtick),
+ (r'\${', String.Interpol, 'interp-inside'),
+ (r'\$', String.Backtick),
+ (r'[^`\\$]+', String.Backtick),
+ ],
+ 'interp-inside': [
+ # TODO: should this include single-line comments and allow nesting strings?
+ (r'}', String.Interpol, '#pop'),
+ include('root'),
+ ],
+ # (\\\\|\\`|[^`])*`', String.Backtick),
}
@@ -161,7 +180,8 @@ class KalLexer(RegexLexer):
(r'(Array|Boolean|Date|Error|Function|Math|netscape|'
r'Number|Object|Packages|RegExp|String|sun|decodeURI|'
r'decodeURIComponent|encodeURI|encodeURIComponent|'
- r'eval|isFinite|isNaN|parseFloat|parseInt|document|window|'
+ r'eval|isFinite|isNaN|isSafeInteger|parseFloat|parseInt|document|'
+ r'window|'
r'print)\b',
Name.Builtin),
(r'[$a-zA-Z_][\w.$]*\s*(:|[+\-*/]?\=)?\b', Name.Variable),
@@ -491,6 +511,8 @@ class TypeScriptLexer(RegexLexer):
(r'[0-9]+', Number.Integer),
(r'"(\\\\|\\"|[^"])*"', String.Double),
(r"'(\\\\|\\'|[^'])*'", String.Single),
+ # Match stuff like: Decorators
+ (r'@\w+', Keyword.Declaration),
]
}
@@ -522,7 +544,7 @@ class LassoLexer(RegexLexer):
tokens = {
'root': [
- (r'^#!.+lasso9\b', Comment.Preproc, 'lasso'),
+ (r'^#![ \S]+lasso9\b', Comment.Preproc, 'lasso'),
(r'\[no_square_brackets\]', Comment.Preproc, 'nosquarebrackets'),
(r'\[noprocess\]', Comment.Preproc, ('delimiters', 'noprocess')),
(r'\[', Comment.Preproc, ('delimiters', 'squarebrackets')),
@@ -541,9 +563,11 @@ class LassoLexer(RegexLexer):
(r'[^[<]+', Other),
],
'nosquarebrackets': [
+ (r'\[noprocess\]', Comment.Preproc, 'noprocess'),
+ (r'\[', Other),
(r'<\?(LassoScript|lasso|=)', Comment.Preproc, 'anglebrackets'),
- (r'<', Other),
- (r'[^<]+', Other),
+ (r'<(!--.*?-->)?', Other),
+ (r'[^[<]+', Other),
],
'noprocess': [
(r'\[/noprocess\]', Comment.Preproc, '#pop'),
@@ -576,7 +600,7 @@ class LassoLexer(RegexLexer):
(r'\d*\.\d+(e[+-]?\d+)?', Number.Float),
(r'0x[\da-f]+', Number.Hex),
(r'\d+', Number.Integer),
- (r'([+-]?)(infinity|NaN)\b', bygroups(Operator, Number)),
+ (r'(infinity|NaN)\b', Number),
(r"'", String.Single, 'singlestring'),
(r'"', String.Double, 'doublestring'),
(r'`[^`]*`', String.Backtick),
@@ -584,16 +608,17 @@ class LassoLexer(RegexLexer):
# names
(r'\$[a-z_][\w.]*', Name.Variable),
(r'#([a-z_][\w.]*|\d+)', Name.Variable.Instance),
- (r"(\.)('[a-z_][\w.]*')",
+ (r"(\.\s*)('[a-z_][\w.]*')",
bygroups(Name.Builtin.Pseudo, Name.Variable.Class)),
(r"(self)(\s*->\s*)('[a-z_][\w.]*')",
bygroups(Name.Builtin.Pseudo, Operator, Name.Variable.Class)),
- (r'(\.\.?)([a-z_][\w.]*(=(?!=))?)',
+ (r'(\.\.?\s*)([a-z_][\w.]*(=(?!=))?)',
bygroups(Name.Builtin.Pseudo, Name.Other.Member)),
(r'(->\\?\s*|&\s*)([a-z_][\w.]*(=(?!=))?)',
bygroups(Operator, Name.Other.Member)),
- (r'(self|inherited)\b', Name.Builtin.Pseudo),
- (r'-[a-z_][\w.]*', Name.Attribute),
+ (r'(?<!->)(self|inherited|currentcapture|givenblock)\b',
+ Name.Builtin.Pseudo),
+ (r'-(?!infinity)[a-z_][\w.]*', Name.Attribute),
(r'::\s*[a-z_][\w.]*', Name.Label),
(r'(error_(code|msg)_\w+|Error_AddError|Error_ColumnRestriction|'
r'Error_DatabaseConnectionUnavailable|Error_DatabaseTimeout|'
@@ -623,7 +648,8 @@ class LassoLexer(RegexLexer):
(r'(true|false|none|minimal|full|all|void)\b', Keyword.Constant),
(r'(local|var|variable|global|data(?=\s))\b', Keyword.Declaration),
(r'(array|date|decimal|duration|integer|map|pair|string|tag|xml|'
- r'null|bytes|list|queue|set|stack|staticarray|tie)\b', Keyword.Type),
+ r'null|boolean|bytes|keyword|list|locale|queue|set|stack|'
+ r'staticarray)\b', Keyword.Type),
(r'([a-z_][\w.]*)(\s+)(in)\b', bygroups(Name, Text, Keyword)),
(r'(let|into)(\s+)([a-z_][\w.]*)', bygroups(Keyword, Text, Name)),
(r'require\b', Keyword, 'requiresection'),
@@ -672,7 +698,7 @@ class LassoLexer(RegexLexer):
(r'\\', String.Double),
],
'escape': [
- (r'\\(U[\da-f]{8}|u[\da-f]{4}|x[\da-f]{1,2}|[0-7]{1,3}|:[^:]+:|'
+ (r'\\(U[\da-f]{8}|u[\da-f]{4}|x[\da-f]{1,2}|[0-7]{1,3}|:[^:\n\r]+:|'
r'[abefnrtv?"\'\\]|$)', String.Escape),
],
'signature': [
@@ -1197,3 +1223,218 @@ class MaskLexer(RegexLexer):
include('string-base')
],
}
+
+
+class EarlGreyLexer(RegexLexer):
+ """
+ For `Earl-Grey`_ source code.
+
+ .. _Earl-Grey: https://breuleux.github.io/earl-grey/
+
+ .. versionadded: 2.1
+ """
+
+ name = 'Earl Grey'
+ aliases = ['earl-grey', 'earlgrey', 'eg']
+ filenames = ['*.eg']
+ mimetypes = ['text/x-earl-grey']
+
+ tokens = {
+ 'root': [
+ (r'\n', Text),
+ include('control'),
+ (r'[^\S\n]+', Text),
+ (r';;.*\n', Comment),
+ (r'[\[\]\{\}\:\(\)\,\;]', Punctuation),
+ (r'\\\n', Text),
+ (r'\\', Text),
+ include('errors'),
+ (words((
+ 'with', 'where', 'when', 'and', 'not', 'or', 'in',
+ 'as', 'of', 'is'),
+ prefix=r'(?<=\s|\[)', suffix=r'(?![\w\$\-])'),
+ Operator.Word),
+ (r'[\*@]?->', Name.Function),
+ (r'[+\-*/~^<>%&|?!@#.]*=', Operator.Word),
+ (r'\.{2,3}', Operator.Word), # Range Operator
+ (r'([+*/~^<>&|?!]+)|([#\-](?=\s))|@@+(?=\s)|=+', Operator),
+ (r'(?<![\w\$\-])(var|let)(?:[^\w\$])', Keyword.Declaration),
+ include('keywords'),
+ include('builtins'),
+ include('assignment'),
+ (r'''(?x)
+ (?:()([a-zA-Z$_](?:[a-zA-Z$0-9_\-]*[a-zA-Z$0-9_])?)|
+ (?<=[\s\{\[\(])(\.)([a-zA-Z$_](?:[a-zA-Z$0-9_\-]*[a-zA-Z$0-9_])?))
+ (?=.*%)''',
+ bygroups(Punctuation, Name.Tag, Punctuation, Name.Class.Start), 'dbs'),
+ (r'[rR]?`', String.Backtick, 'bt'),
+ (r'[rR]?```', String.Backtick, 'tbt'),
+ (r'(?<=[\s\[\{\(,;])\.([a-zA-Z$_](?:[a-zA-Z$0-9_-]*[a-zA-Z$0-9_])?)'
+ r'(?=[\s\]\}\),;])', String.Symbol),
+ include('nested'),
+ (r'(?:[rR]|[rR]\.[gmi]{1,3})?"', String, combined('stringescape', 'dqs')),
+ (r'(?:[rR]|[rR]\.[gmi]{1,3})?\'', String, combined('stringescape', 'sqs')),
+ (r'"""', String, combined('stringescape', 'tdqs')),
+ include('tuple'),
+ include('import_paths'),
+ include('name'),
+ include('numbers'),
+ ],
+ 'dbs': [
+ (r'(\.)([a-zA-Z$_](?:[a-zA-Z$0-9_\-]*[a-zA-Z$0-9_])?)(?=[\[\.\s])',
+ bygroups(Punctuation, Name.Class.DBS)),
+ (r'(\[)([\^#][a-zA-Z$_](?:[a-zA-Z$0-9_\-]*[a-zA-Z$0-9_])?)(\])',
+ bygroups(Punctuation, Name.Entity.DBS, Punctuation)),
+ (r'\s+', Text),
+ (r'%', Operator.DBS, '#pop'),
+ ],
+ 'import_paths': [
+ (r'(?<=[\s:;,])(\.{1,3}(?:[\w\-]*/)*)(\w(?:[\w\-]*\w)*)(?=[\s;,])',
+ bygroups(Text.Whitespace, Text)),
+ ],
+ 'assignment': [
+ (r'(\.)?([a-zA-Z$_](?:[a-zA-Z$0-9_-]*[a-zA-Z$0-9_])?)'
+ r'(?=\s+[+\-*/~^<>%&|?!@#.]*\=\s)',
+ bygroups(Punctuation, Name.Variable))
+ ],
+ 'errors': [
+ (words(('Error', 'TypeError', 'ReferenceError'),
+ prefix=r'(?<![\w\$\-\.])', suffix=r'(?![\w\$\-\.])'),
+ Name.Exception),
+ (r'''(?x)
+ (?<![\w\$])
+ E\.[\w\$](?:[\w\$\-]*[\w\$])?
+ (?:\.[\w\$](?:[\w\$\-]*[\w\$])?)*
+ (?=[\(\{\[\?\!\s])''',
+ Name.Exception),
+ ],
+ 'control': [
+ (r'''(?x)
+ ([a-zA-Z$_](?:[a-zA-Z$0-9_-]*[a-zA-Z$0-9_])?)
+ (?!\n)\s+
+ (?!and|as|each\*|each|in|is|mod|of|or|when|where|with)
+ (?=(?:[+\-*/~^<>%&|?!@#.])?[a-zA-Z$_](?:[a-zA-Z$0-9_-]*[a-zA-Z$0-9_])?)''',
+ Keyword.Control),
+ (r'([a-zA-Z$_](?:[a-zA-Z$0-9_-]*[a-zA-Z$0-9_])?)(?!\n)\s+(?=[\'"\d\{\[\(])',
+ Keyword.Control),
+ (r'''(?x)
+ (?:
+ (?<=[%=])|
+ (?<=[=\-]>)|
+ (?<=with|each|with)|
+ (?<=each\*|where)
+ )(\s+)
+ ([a-zA-Z$_](?:[a-zA-Z$0-9_\-]*[a-zA-Z$0-9_])?)(:)''',
+ bygroups(Text, Keyword.Control, Punctuation)),
+ (r'''(?x)
+ (?<![+\-*/~^<>%&|?!@#.])(\s+)
+ ([a-zA-Z$_](?:[a-zA-Z$0-9_-]*[a-zA-Z$0-9_])?)(:)''',
+ bygroups(Text, Keyword.Control, Punctuation)),
+ ],
+ 'nested': [
+ (r'''(?x)
+ (?<=[a-zA-Z$0-9_\]\}\)])(\.)
+ ([a-zA-Z$_](?:[a-zA-Z$0-9_-]*[a-zA-Z$0-9_])?)
+ (?=\s+with(?:\s|\n))''',
+ bygroups(Punctuation, Name.Function)),
+ (r'''(?x)
+ (?<!\s)(\.)
+ ([a-zA-Z$_](?:[a-zA-Z$0-9_-]*[a-zA-Z$0-9_])?)
+ (?=[\}\]\)\.,;:\s])''',
+ bygroups(Punctuation, Name.Field)),
+ (r'''(?x)
+ (?<=[a-zA-Z$0-9_\]\}\)])(\.)
+ ([a-zA-Z$_](?:[a-zA-Z$0-9_-]*[a-zA-Z$0-9_])?)
+ (?=[\[\{\(:])''',
+ bygroups(Punctuation, Name.Function)),
+ ],
+ 'keywords': [
+ (words((
+ 'each', 'each*', 'mod', 'await', 'break', 'chain',
+ 'continue', 'elif', 'expr-value', 'if', 'match',
+ 'return', 'yield', 'pass', 'else', 'require', 'var',
+ 'let', 'async', 'method', 'gen'),
+ prefix=r'(?<![\w\$\-\.])', suffix=r'(?![\w\$\-\.])'),
+ Keyword.Pseudo),
+ (words(('this', 'self', '@'),
+ prefix=r'(?<![\w\$\-\.])', suffix=r'(?![\w\$\-])'),
+ Keyword.Constant),
+ (words((
+ 'Function', 'Object', 'Array', 'String', 'Number',
+ 'Boolean', 'ErrorFactory', 'ENode', 'Promise'),
+ prefix=r'(?<![\w\$\-\.])', suffix=r'(?![\w\$\-])'),
+ Keyword.Type),
+ ],
+ 'builtins': [
+ (words((
+ 'send', 'object', 'keys', 'items', 'enumerate', 'zip',
+ 'product', 'neighbours', 'predicate', 'equal',
+ 'nequal', 'contains', 'repr', 'clone', 'range',
+ 'getChecker', 'get-checker', 'getProperty', 'get-property',
+ 'getProjector', 'get-projector', 'consume', 'take',
+ 'promisify', 'spawn', 'constructor'),
+ prefix=r'(?<![\w\-#\.])', suffix=r'(?![\w\-\.])'),
+ Name.Builtin),
+ (words((
+ 'true', 'false', 'null', 'undefined'),
+ prefix=r'(?<![\w\$\-\.])', suffix=r'(?![\w\$\-\.])'),
+ Name.Constant),
+ ],
+ 'name': [
+ (r'@([a-zA-Z$_](?:[a-zA-Z$0-9_-]*[a-zA-Z$0-9_])?)', Name.Variable.Instance),
+ (r'([a-zA-Z$_](?:[a-zA-Z$0-9_-]*[a-zA-Z$0-9_])?)(\+\+|\-\-)?',
+ bygroups(Name.Symbol, Operator.Word))
+ ],
+ 'tuple': [
+ (r'#[a-zA-Z_][a-zA-Z_\-0-9]*(?=[\s\{\(,;\n])', Name.Namespace)
+ ],
+ 'interpoling_string': [
+ (r'\}', String.Interpol, '#pop'),
+ include('root')
+ ],
+ 'stringescape': [
+ (r'\\([\\abfnrtv"\']|\n|N\{.*?\}|u[a-fA-F0-9]{4}|'
+ r'U[a-fA-F0-9]{8}|x[a-fA-F0-9]{2}|[0-7]{1,3})', String.Escape)
+ ],
+ 'strings': [
+ (r'[^\\\'"]', String),
+ (r'[\'"\\]', String),
+ (r'\n', String) # All strings are multiline in EG
+ ],
+ 'dqs': [
+ (r'"', String, '#pop'),
+ (r'\\\\|\\"|\\\n', String.Escape),
+ include('strings')
+ ],
+ 'sqs': [
+ (r"'", String, '#pop'),
+ (r"\\\\|\\'|\\\n", String.Escape),
+ (r'\{', String.Interpol, 'interpoling_string'),
+ include('strings')
+ ],
+ 'tdqs': [
+ (r'"""', String, '#pop'),
+ include('strings'),
+ ],
+ 'bt': [
+ (r'`', String.Backtick, '#pop'),
+ (r'(?<!`)\n', String.Backtick),
+ (r'\^=?', String.Escape),
+ (r'.+', String.Backtick),
+ ],
+ 'tbt': [
+ (r'```', String.Backtick, '#pop'),
+ (r'\n', String.Backtick),
+ (r'\^=?', String.Escape),
+ (r'[^\`]+', String.Backtick),
+ ],
+ 'numbers': [
+ (r'\d+\.(?!\.)\d*([eE][+-]?[0-9]+)?', Number.Float),
+ (r'\d+[eE][+-]?[0-9]+', Number.Float),
+ (r'8r[0-7]+', Number.Oct),
+ (r'2r[01]+', Number.Bin),
+ (r'16r[a-fA-F0-9]+', Number.Hex),
+ (r'([3-79]|[1-2][0-9]|3[0-6])r[a-zA-Z\d]+(\.[a-zA-Z\d]+)?', Number.Radix),
+ (r'\d+', Number.Integer)
+ ],
+ }
diff --git a/pygments/lexers/julia.py b/pygments/lexers/julia.py
index 1304b395..cf7c7d61 100644
--- a/pygments/lexers/julia.py
+++ b/pygments/lexers/julia.py
@@ -14,7 +14,7 @@ import re
from pygments.lexer import Lexer, RegexLexer, bygroups, combined, do_insertions
from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
Number, Punctuation, Generic
-from pygments.util import shebang_matches
+from pygments.util import shebang_matches, unirange
__all__ = ['JuliaLexer', 'JuliaConsoleLexer']
@@ -91,7 +91,8 @@ class JuliaLexer(RegexLexer):
# names
(r'@[\w.]+', Name.Decorator),
- (u'[a-zA-Z_\u00A1-\U0010FFFF][a-zA-Z_0-9\u00A1-\U0010FFFF]*!*', Name),
+ (u'(?:[a-zA-Z_\u00A1-\uffff]|%s)(?:[a-zA-Z_0-9\u00A1-\uffff]|%s)*!*' %
+ ((unirange(0x10000, 0x10ffff),)*2), Name),
# numbers
(r'(\d+(_\d+)+\.\d*|\d*\.\d+(_\d+)+)([eEf][+-]?[0-9]+)?', Number.Float),
diff --git a/pygments/lexers/jvm.py b/pygments/lexers/jvm.py
index 4d3c9159..14647616 100644
--- a/pygments/lexers/jvm.py
+++ b/pygments/lexers/jvm.py
@@ -252,7 +252,6 @@ class ScalaLexer(RegexLexer):
'root': [
# method names
(r'(class|trait|object)(\s+)', bygroups(Keyword, Text), 'class'),
- (u"'%s" % idrest, Text.Symbol),
(r'[^\S\n]+', Text),
(r'//.*?\n', Comment.Single),
(r'/\*', Comment.Multiline, 'comment'),
@@ -271,6 +270,7 @@ class ScalaLexer(RegexLexer):
(r'""".*?"""(?!")', String),
(r'"(\\\\|\\"|[^"])*"', String),
(r"'\\.'|'[^\\]'|'\\u[0-9a-fA-F]{4}'", String.Char),
+ (u"'%s" % idrest, Text.Symbol),
(r'[fs]"""', String, 'interptriplestring'), # interpolated strings
(r'[fs]"', String, 'interpstring'), # interpolated strings
(r'raw"(\\\\|\\"|[^"])*"', String), # raw strings
@@ -990,7 +990,7 @@ class CeylonLexer(RegexLexer):
class KotlinLexer(RegexLexer):
"""
- For `Kotlin <http://kotlin.jetbrains.org/>`_
+ For `Kotlin <http://kotlinlang.org/>`_
source code.
.. versionadded:: 1.5
@@ -1025,15 +1025,17 @@ class KotlinLexer(RegexLexer):
(r"[0-9](\.[0-9]*)?([eE][+-][0-9]+)?[flFL]?|"
r"0[xX][0-9a-fA-F]+[Ll]?", Number),
(r'(class)(\s+)(object)', bygroups(Keyword, Text, Keyword)),
- (r'(class|trait|object)(\s+)', bygroups(Keyword, Text), 'class'),
+ (r'(class|interface|object)(\s+)', bygroups(Keyword, Text), 'class'),
(r'(package|import)(\s+)', bygroups(Keyword, Text), 'package'),
(r'(val|var)(\s+)', bygroups(Keyword, Text), 'property'),
(r'(fun)(\s+)', bygroups(Keyword, Text), 'function'),
- (r'(abstract|annotation|as|break|by|catch|class|continue|do|else|'
- r'enum|false|final|finally|for|fun|get|if|import|in|inner|'
- r'internal|is|null|object|open|out|override|package|private|'
- r'protected|public|reified|return|set|super|this|throw|trait|'
- r'true|try|type|val|var|vararg|when|where|while|This)\b', Keyword),
+ (r'(abstract|annotation|as|break|by|catch|class|companion|const|'
+ r'constructor|continue|crossinline|data|do|dynamic|else|enum|'
+ r'external|false|final|finally|for|fun|get|if|import|in|infix|'
+ r'inline|inner|interface|internal|is|lateinit|noinline|null|'
+ r'object|open|operator|out|override|package|private|protected|'
+ r'public|reified|return|sealed|set|super|tailrec|this|throw|'
+ r'true|try|val|var|vararg|when|where|while)\b', Keyword),
(kt_id, Name),
],
'package': [
diff --git a/pygments/lexers/lisp.py b/pygments/lexers/lisp.py
index 729916e3..bd59d2b6 100644
--- a/pygments/lexers/lisp.py
+++ b/pygments/lexers/lisp.py
@@ -17,9 +17,9 @@ from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
from pygments.lexers.python import PythonLexer
-__all__ = ['SchemeLexer', 'CommonLispLexer',
- 'HyLexer', 'RacketLexer',
- 'NewLispLexer', 'EmacsLispLexer', ]
+__all__ = ['SchemeLexer', 'CommonLispLexer', 'HyLexer', 'RacketLexer',
+ 'NewLispLexer', 'EmacsLispLexer', 'ShenLexer', 'CPSALexer']
+
class SchemeLexer(RegexLexer):
"""
@@ -269,8 +269,8 @@ class CommonLispLexer(RegexLexer):
# decimal numbers
(r'[-+]?\d+\.?' + terminated, Number.Integer),
(r'[-+]?\d+/\d+' + terminated, Number),
- (r'[-+]?(\d*\.\d+([defls][-+]?\d+)?|\d+(\.\d*)?[defls][-+]?\d+)'
- + terminated, Number.Float),
+ (r'[-+]?(\d*\.\d+([defls][-+]?\d+)?|\d+(\.\d*)?[defls][-+]?\d+)' +
+ terminated, Number.Float),
# sharpsign strings and characters
(r"#\\." + terminated, String.Char),
@@ -1550,7 +1550,8 @@ class EmacsLispLexer(RegexLexer):
'with-syntax-table', 'with-temp-buffer', 'with-temp-file',
'with-temp-message', 'with-timeout', 'with-tramp-connection-property',
'with-tramp-file-property', 'with-tramp-progress-reporter',
- 'with-wrapper-hook', 'load-time-value', 'locally', 'macrolet', 'progv', 'return-from'
+ 'with-wrapper-hook', 'load-time-value', 'locally', 'macrolet', 'progv',
+ 'return-from',
))
special_forms = set((
@@ -2066,8 +2067,8 @@ class EmacsLispLexer(RegexLexer):
# decimal numbers
(r'[-+]?\d+\.?' + terminated, Number.Integer),
(r'[-+]?\d+/\d+' + terminated, Number),
- (r'[-+]?(\d*\.\d+([defls][-+]?\d+)?|\d+(\.\d*)?[defls][-+]?\d+)'
- + terminated, Number.Float),
+ (r'[-+]?(\d*\.\d+([defls][-+]?\d+)?|\d+(\.\d*)?[defls][-+]?\d+)' +
+ terminated, Number.Float),
# vectors
(r'\[|\]', Punctuation),
@@ -2121,3 +2122,244 @@ class EmacsLispLexer(RegexLexer):
(r'"', String, '#pop'),
],
}
+
+
+class ShenLexer(RegexLexer):
+ """
+ Lexer for `Shen <http://shenlanguage.org/>`_ source code.
+
+ .. versionadded:: 2.1
+ """
+ name = 'Shen'
+ aliases = ['shen']
+ filenames = ['*.shen']
+ mimetypes = ['text/x-shen', 'application/x-shen']
+
+ DECLARATIONS = re.findall(r'\S+', """
+ datatype define defmacro defprolog defcc synonyms declare package
+ type function
+ """)
+
+ SPECIAL_FORMS = re.findall(r'\S+', """
+ lambda get let if cases cond put time freeze value load $
+ protect or and not do output prolog? trap-error error
+ make-string /. set @p @s @v
+ """)
+
+ BUILTINS = re.findall(r'\S+', """
+ == = * + - / < > >= <= <-address <-vector abort absvector
+ absvector? address-> adjoin append arity assoc bind boolean?
+ bound? call cd close cn compile concat cons cons? cut destroy
+ difference element? empty? enable-type-theory error-to-string
+ eval eval-kl exception explode external fail fail-if file
+ findall fix fst fwhen gensym get-time hash hd hdstr hdv head
+ identical implementation in include include-all-but inferences
+ input input+ integer? intern intersection is kill language
+ length limit lineread loaded macro macroexpand map mapcan
+ maxinferences mode n->string nl nth null number? occurrences
+ occurs-check open os out port porters pos pr preclude
+ preclude-all-but print profile profile-results ps quit read
+ read+ read-byte read-file read-file-as-bytelist
+ read-file-as-string read-from-string release remove return
+ reverse run save set simple-error snd specialise spy step
+ stinput stoutput str string->n string->symbol string? subst
+ symbol? systemf tail tc tc? thaw tl tlstr tlv track tuple?
+ undefmacro unify unify! union unprofile unspecialise untrack
+ variable? vector vector-> vector? verified version warn when
+ write-byte write-to-file y-or-n?
+ """)
+
+ BUILTINS_ANYWHERE = re.findall(r'\S+', """
+ where skip >> _ ! <e> <!>
+ """)
+
+ MAPPINGS = dict((s, Keyword) for s in DECLARATIONS)
+ MAPPINGS.update((s, Name.Builtin) for s in BUILTINS)
+ MAPPINGS.update((s, Keyword) for s in SPECIAL_FORMS)
+
+ valid_symbol_chars = r'[\w!$%*+,<=>?/.\'@&#:_-]'
+ valid_name = '%s+' % valid_symbol_chars
+ symbol_name = r'[a-z!$%%*+,<=>?/.\'@&#_-]%s*' % valid_symbol_chars
+ variable = r'[A-Z]%s*' % valid_symbol_chars
+
+ tokens = {
+ 'string': [
+ (r'"', String, '#pop'),
+ (r'c#\d{1,3};', String.Escape),
+ (r'~[ARS%]', String.Interpol),
+ (r'(?s).', String),
+ ],
+
+ 'root': [
+ (r'(?s)\\\*.*?\*\\', Comment.Multiline), # \* ... *\
+ (r'\\\\.*', Comment.Single), # \\ ...
+ (r'\s+', Text),
+ (r'_{5,}', Punctuation),
+ (r'={5,}', Punctuation),
+ (r'(;|:=|\||--?>|<--?)', Punctuation),
+ (r'(:-|:|\{|\})', Literal),
+ (r'[+-]*\d*\.\d+(e[+-]?\d+)?', Number.Float),
+ (r'[+-]*\d+', Number.Integer),
+ (r'"', String, 'string'),
+ (variable, Name.Variable),
+ (r'(true|false|<>|\[\])', Keyword.Pseudo),
+ (symbol_name, Literal),
+ (r'(\[|\]|\(|\))', Punctuation),
+ ],
+ }
+
+ def get_tokens_unprocessed(self, text):
+ tokens = RegexLexer.get_tokens_unprocessed(self, text)
+ tokens = self._process_symbols(tokens)
+ tokens = self._process_declarations(tokens)
+ return tokens
+
+ def _relevant(self, token):
+ return token not in (Text, Comment.Single, Comment.Multiline)
+
+ def _process_declarations(self, tokens):
+ opening_paren = False
+ for index, token, value in tokens:
+ yield index, token, value
+ if self._relevant(token):
+ if opening_paren and token == Keyword and value in self.DECLARATIONS:
+ declaration = value
+ for index, token, value in \
+ self._process_declaration(declaration, tokens):
+ yield index, token, value
+ opening_paren = value == '(' and token == Punctuation
+
+ def _process_symbols(self, tokens):
+ opening_paren = False
+ for index, token, value in tokens:
+ if opening_paren and token in (Literal, Name.Variable):
+ token = self.MAPPINGS.get(value, Name.Function)
+ elif token == Literal and value in self.BUILTINS_ANYWHERE:
+ token = Name.Builtin
+ opening_paren = value == '(' and token == Punctuation
+ yield index, token, value
+
+ def _process_declaration(self, declaration, tokens):
+ for index, token, value in tokens:
+ if self._relevant(token):
+ break
+ yield index, token, value
+
+ if declaration == 'datatype':
+ prev_was_colon = False
+ token = Keyword.Type if token == Literal else token
+ yield index, token, value
+ for index, token, value in tokens:
+ if prev_was_colon and token == Literal:
+ token = Keyword.Type
+ yield index, token, value
+ if self._relevant(token):
+ prev_was_colon = token == Literal and value == ':'
+ elif declaration == 'package':
+ token = Name.Namespace if token == Literal else token
+ yield index, token, value
+ elif declaration == 'define':
+ token = Name.Function if token == Literal else token
+ yield index, token, value
+ for index, token, value in tokens:
+ if self._relevant(token):
+ break
+ yield index, token, value
+ if value == '{' and token == Literal:
+ yield index, Punctuation, value
+ for index, token, value in self._process_signature(tokens):
+ yield index, token, value
+ else:
+ yield index, token, value
+ else:
+ token = Name.Function if token == Literal else token
+ yield index, token, value
+
+ raise StopIteration
+
+ def _process_signature(self, tokens):
+ for index, token, value in tokens:
+ if token == Literal and value == '}':
+ yield index, Punctuation, value
+ raise StopIteration
+ elif token in (Literal, Name.Function):
+ token = Name.Variable if value.istitle() else Keyword.Type
+ yield index, token, value
+
+
+class CPSALexer(SchemeLexer):
+ """
+ A CPSA lexer based on the CPSA language as of version 2.2.12
+
+ .. versionadded:: 2.1
+ """
+ name = 'CPSA'
+ aliases = ['cpsa']
+ filenames = ['*.cpsa']
+ mimetypes = []
+
+ # list of known keywords and builtins taken form vim 6.4 scheme.vim
+ # syntax file.
+ _keywords = (
+ 'herald', 'vars', 'defmacro', 'include', 'defprotocol', 'defrole',
+ 'defskeleton', 'defstrand', 'deflistener', 'non-orig', 'uniq-orig',
+ 'pen-non-orig', 'precedes', 'trace', 'send', 'recv', 'name', 'text',
+ 'skey', 'akey', 'data', 'mesg',
+ )
+ _builtins = (
+ 'cat', 'enc', 'hash', 'privk', 'pubk', 'invk', 'ltk', 'gen', 'exp',
+ )
+
+ # valid names for identifiers
+ # well, names can only not consist fully of numbers
+ # but this should be good enough for now
+ valid_name = r'[a-zA-Z0-9!$%&*+,/:<=>?@^_~|-]+'
+
+ tokens = {
+ 'root': [
+ # the comments - always starting with semicolon
+ # and going to the end of the line
+ (r';.*$', Comment.Single),
+
+ # whitespaces - usually not relevant
+ (r'\s+', Text),
+
+ # numbers
+ (r'-?\d+\.\d+', Number.Float),
+ (r'-?\d+', Number.Integer),
+ # support for uncommon kinds of numbers -
+ # have to figure out what the characters mean
+ # (r'(#e|#i|#b|#o|#d|#x)[\d.]+', Number),
+
+ # strings, symbols and characters
+ (r'"(\\\\|\\"|[^"])*"', String),
+ (r"'" + valid_name, String.Symbol),
+ (r"#\\([()/'\"._!§$%& ?=+-]{1}|[a-zA-Z0-9]+)", String.Char),
+
+ # constants
+ (r'(#t|#f)', Name.Constant),
+
+ # special operators
+ (r"('|#|`|,@|,|\.)", Operator),
+
+ # highlight the keywords
+ (words(_keywords, suffix=r'\b'), Keyword),
+
+ # first variable in a quoted string like
+ # '(this is syntactic sugar)
+ (r"(?<='\()" + valid_name, Name.Variable),
+ (r"(?<=#\()" + valid_name, Name.Variable),
+
+ # highlight the builtins
+ (words(_builtins, prefix=r'(?<=\()', suffix=r'\b'), Name.Builtin),
+
+ # the remaining functions
+ (r'(?<=\()' + valid_name, Name.Function),
+ # find the remaining variables
+ (valid_name, Name.Variable),
+
+ # the famous parentheses!
+ (r'(\(|\))', Punctuation),
+ (r'(\[|\])', Punctuation),
+ ],
+ }
diff --git a/pygments/lexers/make.py b/pygments/lexers/make.py
index 473b1aff..f5eac127 100644
--- a/pygments/lexers/make.py
+++ b/pygments/lexers/make.py
@@ -173,6 +173,7 @@ class CMakeLexer(RegexLexer):
(r'\(', Punctuation, '#push'),
(r'\)', Punctuation, '#pop'),
(r'(\$\{)(.+?)(\})', bygroups(Operator, Name.Variable, Operator)),
+ (r'(\$ENV\{)(.+?)(\})', bygroups(Operator, Name.Variable, Operator)),
(r'(\$<)(.+?)(>)', bygroups(Operator, Name.Variable, Operator)),
(r'(?s)".*?"', String.Double),
(r'\\\S+', String),
diff --git a/pygments/lexers/modeling.py b/pygments/lexers/modeling.py
index ec99543f..a6b0cb77 100644
--- a/pygments/lexers/modeling.py
+++ b/pygments/lexers/modeling.py
@@ -284,8 +284,8 @@ class StanLexer(RegexLexer):
"""Pygments Lexer for Stan models.
The Stan modeling language is specified in the *Stan Modeling Language
- User's Guide and Reference Manual, v2.7.0*,
- `pdf <https://github.com/stan-dev/stan/releases/download/v2.7.0/stan-reference-2.7.0.pdf>`__.
+ User's Guide and Reference Manual, v2.8.0*,
+ `pdf <https://github.com/stan-dev/stan/releases/download/v2.8.8/stan-reference-2.8.0.pdf>`__.
.. versionadded:: 1.6
"""
@@ -332,6 +332,8 @@ class StanLexer(RegexLexer):
# Special names ending in __, like lp__
(r'[A-Za-z]\w*__\b', Name.Builtin.Pseudo),
(r'(%s)\b' % r'|'.join(_stan_builtins.RESERVED), Keyword.Reserved),
+ # user-defined functions
+ (r'[A-Za-z]\w*(?=\s*\()]', Name.Function),
# Regular variable names
(r'[A-Za-z]\w*\b', Name),
# Real Literals
diff --git a/pygments/lexers/modula2.py b/pygments/lexers/modula2.py
index d32bb5bb..a5fcbf78 100644
--- a/pygments/lexers/modula2.py
+++ b/pygments/lexers/modula2.py
@@ -77,20 +77,20 @@ class Modula2Lexer(RegexLexer):
A dialect option may be embedded in a source file in form of a dialect
tag, a specially formatted comment that specifies a dialect option.
- Dialect Tag EBNF:
+ Dialect Tag EBNF::
- dialectTag :
- OpeningCommentDelim Prefix dialectOption ClosingCommentDelim ;
+ dialectTag :
+ OpeningCommentDelim Prefix dialectOption ClosingCommentDelim ;
- dialectOption :
- 'm2pim' | 'm2iso' | 'm2r10' | 'objm2' |
- 'm2iso+aglet' | 'm2pim+gm2' | 'm2iso+p1' | 'm2iso+xds' ;
+ dialectOption :
+ 'm2pim' | 'm2iso' | 'm2r10' | 'objm2' |
+ 'm2iso+aglet' | 'm2pim+gm2' | 'm2iso+p1' | 'm2iso+xds' ;
- Prefix : '!' ;
+ Prefix : '!' ;
- OpeningCommentDelim : '(*' ;
+ OpeningCommentDelim : '(*' ;
- ClosingCommentDelim : '*)' ;
+ ClosingCommentDelim : '*)' ;
No whitespace is permitted between the tokens of a dialect tag.
@@ -103,9 +103,9 @@ class Modula2Lexer(RegexLexer):
Examples:
- `(*!m2r10*) DEFINITION MODULE Foobar; ...`
+ ``(*!m2r10*) DEFINITION MODULE Foobar; ...``
Use Modula2 R10 dialect to render this source file.
- `(*!m2pim+gm2*) DEFINITION MODULE Bazbam; ...`
+ ``(*!m2pim+gm2*) DEFINITION MODULE Bazbam; ...``
Use PIM dialect with GNU extensions to render this source file.
@@ -128,7 +128,7 @@ class Modula2Lexer(RegexLexer):
Example:
- `$ pygmentize -O full,style=algol -f latex -o /path/to/output /path/to/input`
+ ``$ pygmentize -O full,style=algol -f latex -o /path/to/output /path/to/input``
Render input file in Algol publication mode to LaTeX output.
@@ -151,7 +151,7 @@ class Modula2Lexer(RegexLexer):
Example:
- `$ pygmentize -O full,dialect=m2r10,treat_stdlib_adts_as_builtins=Off ...`
+ ``$ pygmentize -O full,dialect=m2r10,treat_stdlib_adts_as_builtins=Off ...``
Render standard library ADTs as ordinary library types.
.. versionadded:: 1.3
@@ -203,14 +203,14 @@ class Modula2Lexer(RegexLexer):
'plain_number_literals': [
#
# Base-10, real number with exponent
- (r'[0-9]+(\'[0-9]+)*' # integral part \
- r'\.[0-9]+(\'[0-9]+)*' # fractional part \
- r'[eE][+-]?[0-9]+(\'[0-9]+)*', # exponent \
+ (r'[0-9]+(\'[0-9]+)*' # integral part
+ r'\.[0-9]+(\'[0-9]+)*' # fractional part
+ r'[eE][+-]?[0-9]+(\'[0-9]+)*', # exponent
Number.Float),
#
# Base-10, real number without exponent
- (r'[0-9]+(\'[0-9]+)*' # integral part \
- r'\.[0-9]+(\'[0-9]+)*', # fractional part \
+ (r'[0-9]+(\'[0-9]+)*' # integral part
+ r'\.[0-9]+(\'[0-9]+)*', # fractional part
Number.Float),
#
# Base-10, whole number
@@ -235,52 +235,52 @@ class Modula2Lexer(RegexLexer):
# Dot Product Operator
(r'\*\.', Operator),
# Array Concatenation Operator
- (r'\+>', Operator), # M2R10 + ObjM2
+ (r'\+>', Operator), # M2R10 + ObjM2
# Inequality Operator
- (r'<>', Operator), # ISO + PIM
+ (r'<>', Operator), # ISO + PIM
# Less-Or-Equal, Subset
(r'<=', Operator),
# Greater-Or-Equal, Superset
(r'>=', Operator),
# Identity Operator
- (r'==', Operator), # M2R10 + ObjM2
+ (r'==', Operator), # M2R10 + ObjM2
# Type Conversion Operator
- (r'::', Operator), # M2R10 + ObjM2
+ (r'::', Operator), # M2R10 + ObjM2
# Assignment Symbol
(r':=', Operator),
# Postfix Increment Mutator
- (r'\+\+', Operator), # M2R10 + ObjM2
+ (r'\+\+', Operator), # M2R10 + ObjM2
# Postfix Decrement Mutator
- (r'--', Operator), # M2R10 + ObjM2
+ (r'--', Operator), # M2R10 + ObjM2
],
'unigraph_operators': [
# Arithmetic Operators
(r'[+-]', Operator),
(r'[*/]', Operator),
# ISO 80000-2 compliant Set Difference Operator
- (r'\\', Operator), # M2R10 + ObjM2
+ (r'\\', Operator), # M2R10 + ObjM2
# Relational Operators
(r'[=#<>]', Operator),
# Dereferencing Operator
(r'\^', Operator),
# Dereferencing Operator Synonym
- (r'@', Operator), # ISO
+ (r'@', Operator), # ISO
# Logical AND Operator Synonym
- (r'&', Operator), # PIM + ISO
+ (r'&', Operator), # PIM + ISO
# Logical NOT Operator Synonym
- (r'~', Operator), # PIM + ISO
+ (r'~', Operator), # PIM + ISO
# Smalltalk Message Prefix
- (r'`', Operator), # ObjM2
+ (r'`', Operator), # ObjM2
],
'digraph_punctuation': [
# Range Constructor
(r'\.\.', Punctuation),
# Opening Chevron Bracket
- (r'<<', Punctuation), # M2R10 + ISO
+ (r'<<', Punctuation), # M2R10 + ISO
# Closing Chevron Bracket
- (r'>>', Punctuation), # M2R10 + ISO
+ (r'>>', Punctuation), # M2R10 + ISO
# Blueprint Punctuation
- (r'->', Punctuation), # M2R10 + ISO
+ (r'->', Punctuation), # M2R10 + ISO
# Distinguish |# and # in M2 R10
(r'\|#', Punctuation),
# Distinguish ## and # in M2 R10
@@ -292,23 +292,23 @@ class Modula2Lexer(RegexLexer):
# Common Punctuation
(r'[\(\)\[\]{},.:;\|]', Punctuation),
# Case Label Separator Synonym
- (r'!', Punctuation), # ISO
+ (r'!', Punctuation), # ISO
# Blueprint Punctuation
- (r'\?', Punctuation), # M2R10 + ObjM2
+ (r'\?', Punctuation), # M2R10 + ObjM2
],
'comments': [
# Single Line Comment
- (r'^//.*?\n', Comment.Single), # M2R10 + ObjM2
+ (r'^//.*?\n', Comment.Single), # M2R10 + ObjM2
# Block Comment
(r'\(\*([^$].*?)\*\)', Comment.Multiline),
# Template Block Comment
- (r'/\*(.*?)\*/', Comment.Multiline), # M2R10 + ObjM2
+ (r'/\*(.*?)\*/', Comment.Multiline), # M2R10 + ObjM2
],
'pragmas': [
# ISO Style Pragmas
- (r'<\*.*?\*>', Comment.Preproc), # ISO, M2R10 + ObjM2
+ (r'<\*.*?\*>', Comment.Preproc), # ISO, M2R10 + ObjM2
# Pascal Style Pragmas
- (r'\(\*\$.*?\*\)', Comment.Preproc), # PIM
+ (r'\(\*\$.*?\*\)', Comment.Preproc), # PIM
],
'root': [
include('whitespace'),
@@ -316,8 +316,8 @@ class Modula2Lexer(RegexLexer):
include('pragmas'),
include('comments'),
include('identifiers'),
- include('suffixed_number_literals'), # PIM + ISO
- include('prefixed_number_literals'), # M2R10 + ObjM2
+ include('suffixed_number_literals'), # PIM + ISO
+ include('prefixed_number_literals'), # M2R10 + ObjM2
include('plain_number_literals'),
include('string_literals'),
include('digraph_punctuation'),
@@ -634,7 +634,7 @@ class Modula2Lexer(RegexLexer):
'CloseOutput', 'ReadString', 'ReadInt', 'ReadCard', 'ReadWrd',
'WriteInt', 'WriteCard', 'WriteOct', 'WriteHex', 'WriteWrd',
'ReadReal', 'WriteReal', 'WriteFixPt', 'WriteRealOct', 'sqrt', 'exp',
- 'ln', 'sin', 'cos', 'arctan', 'entier','ALLOCATE', 'DEALLOCATE',
+ 'ln', 'sin', 'cos', 'arctan', 'entier', 'ALLOCATE', 'DEALLOCATE',
)
# PIM Modula-2 Standard Library Variables Dataset
@@ -707,7 +707,7 @@ class Modula2Lexer(RegexLexer):
'LongRealIO', 'BCDIO', 'LongBCDIO', 'CardMath', 'LongCardMath',
'IntMath', 'LongIntMath', 'RealMath', 'LongRealMath', 'BCDMath',
'LongBCDMath', 'FileIO', 'FileSystem', 'Storage', 'IOSupport',
- )
+ )
# Modula-2 R10 Standard Library Types Dataset
m2r10_stdlib_type_identifiers = (
@@ -733,7 +733,6 @@ class Modula2Lexer(RegexLexer):
# D i a l e c t s
-
# Dialect modes
dialects = (
'unknown',
@@ -746,39 +745,39 @@ class Modula2Lexer(RegexLexer):
# Lexemes to Mark as Errors Database
lexemes_to_reject_db = {
# Lexemes to reject for unknown dialect
- 'unknown' : (
+ 'unknown': (
# LEAVE THIS EMPTY
),
# Lexemes to reject for PIM Modula-2
- 'm2pim' : (
+ 'm2pim': (
pim_lexemes_to_reject,
),
# Lexemes to reject for ISO Modula-2
- 'm2iso' : (
+ 'm2iso': (
iso_lexemes_to_reject,
),
# Lexemes to reject for Modula-2 R10
- 'm2r10' : (
+ 'm2r10': (
m2r10_lexemes_to_reject,
),
# Lexemes to reject for Objective Modula-2
- 'objm2' : (
+ 'objm2': (
objm2_lexemes_to_reject,
),
# Lexemes to reject for Aglet Modula-2
- 'm2iso+aglet' : (
+ 'm2iso+aglet': (
iso_lexemes_to_reject,
),
# Lexemes to reject for GNU Modula-2
- 'm2pim+gm2' : (
+ 'm2pim+gm2': (
pim_lexemes_to_reject,
),
# Lexemes to reject for p1 Modula-2
- 'm2iso+p1' : (
+ 'm2iso+p1': (
iso_lexemes_to_reject,
),
# Lexemes to reject for XDS Modula-2
- 'm2iso+xds' : (
+ 'm2iso+xds': (
iso_lexemes_to_reject,
),
}
@@ -786,7 +785,7 @@ class Modula2Lexer(RegexLexer):
# Reserved Words Database
reserved_words_db = {
# Reserved words for unknown dialect
- 'unknown' : (
+ 'unknown': (
common_reserved_words,
pim_additional_reserved_words,
iso_additional_reserved_words,
@@ -794,53 +793,53 @@ class Modula2Lexer(RegexLexer):
),
# Reserved words for PIM Modula-2
- 'm2pim' : (
+ 'm2pim': (
common_reserved_words,
pim_additional_reserved_words,
),
# Reserved words for Modula-2 R10
- 'm2iso' : (
+ 'm2iso': (
common_reserved_words,
iso_additional_reserved_words,
),
# Reserved words for ISO Modula-2
- 'm2r10' : (
+ 'm2r10': (
common_reserved_words,
m2r10_additional_reserved_words,
),
# Reserved words for Objective Modula-2
- 'objm2' : (
+ 'objm2': (
common_reserved_words,
m2r10_additional_reserved_words,
objm2_additional_reserved_words,
),
# Reserved words for Aglet Modula-2 Extensions
- 'm2iso+aglet' : (
+ 'm2iso+aglet': (
common_reserved_words,
iso_additional_reserved_words,
aglet_additional_reserved_words,
),
# Reserved words for GNU Modula-2 Extensions
- 'm2pim+gm2' : (
+ 'm2pim+gm2': (
common_reserved_words,
pim_additional_reserved_words,
gm2_additional_reserved_words,
),
# Reserved words for p1 Modula-2 Extensions
- 'm2iso+p1' : (
+ 'm2iso+p1': (
common_reserved_words,
iso_additional_reserved_words,
p1_additional_reserved_words,
),
# Reserved words for XDS Modula-2 Extensions
- 'm2iso+xds' : (
+ 'm2iso+xds': (
common_reserved_words,
iso_additional_reserved_words,
xds_additional_reserved_words,
@@ -850,7 +849,7 @@ class Modula2Lexer(RegexLexer):
# Builtins Database
builtins_db = {
# Builtins for unknown dialect
- 'unknown' : (
+ 'unknown': (
common_builtins,
pim_additional_builtins,
iso_additional_builtins,
@@ -858,53 +857,53 @@ class Modula2Lexer(RegexLexer):
),
# Builtins for PIM Modula-2
- 'm2pim' : (
+ 'm2pim': (
common_builtins,
pim_additional_builtins,
),
# Builtins for ISO Modula-2
- 'm2iso' : (
+ 'm2iso': (
common_builtins,
iso_additional_builtins,
),
# Builtins for ISO Modula-2
- 'm2r10' : (
+ 'm2r10': (
common_builtins,
m2r10_additional_builtins,
),
# Builtins for Objective Modula-2
- 'objm2' : (
+ 'objm2': (
common_builtins,
m2r10_additional_builtins,
objm2_additional_builtins,
),
# Builtins for Aglet Modula-2 Extensions
- 'm2iso+aglet' : (
+ 'm2iso+aglet': (
common_builtins,
iso_additional_builtins,
aglet_additional_builtins,
),
# Builtins for GNU Modula-2 Extensions
- 'm2pim+gm2' : (
+ 'm2pim+gm2': (
common_builtins,
pim_additional_builtins,
gm2_additional_builtins,
),
# Builtins for p1 Modula-2 Extensions
- 'm2iso+p1' : (
+ 'm2iso+p1': (
common_builtins,
iso_additional_builtins,
p1_additional_builtins,
),
# Builtins for XDS Modula-2 Extensions
- 'm2iso+xds' : (
+ 'm2iso+xds': (
common_builtins,
iso_additional_builtins,
xds_additional_builtins,
@@ -914,7 +913,7 @@ class Modula2Lexer(RegexLexer):
# Pseudo-Module Builtins Database
pseudo_builtins_db = {
# Builtins for unknown dialect
- 'unknown' : (
+ 'unknown': (
common_pseudo_builtins,
pim_additional_pseudo_builtins,
iso_additional_pseudo_builtins,
@@ -922,53 +921,53 @@ class Modula2Lexer(RegexLexer):
),
# Builtins for PIM Modula-2
- 'm2pim' : (
+ 'm2pim': (
common_pseudo_builtins,
pim_additional_pseudo_builtins,
),
# Builtins for ISO Modula-2
- 'm2iso' : (
+ 'm2iso': (
common_pseudo_builtins,
iso_additional_pseudo_builtins,
),
# Builtins for ISO Modula-2
- 'm2r10' : (
+ 'm2r10': (
common_pseudo_builtins,
m2r10_additional_pseudo_builtins,
),
# Builtins for Objective Modula-2
- 'objm2' : (
+ 'objm2': (
common_pseudo_builtins,
m2r10_additional_pseudo_builtins,
objm2_additional_pseudo_builtins,
),
# Builtins for Aglet Modula-2 Extensions
- 'm2iso+aglet' : (
+ 'm2iso+aglet': (
common_pseudo_builtins,
iso_additional_pseudo_builtins,
aglet_additional_pseudo_builtins,
),
# Builtins for GNU Modula-2 Extensions
- 'm2pim+gm2' : (
+ 'm2pim+gm2': (
common_pseudo_builtins,
pim_additional_pseudo_builtins,
gm2_additional_pseudo_builtins,
),
# Builtins for p1 Modula-2 Extensions
- 'm2iso+p1' : (
+ 'm2iso+p1': (
common_pseudo_builtins,
iso_additional_pseudo_builtins,
p1_additional_pseudo_builtins,
),
# Builtins for XDS Modula-2 Extensions
- 'm2iso+xds' : (
+ 'm2iso+xds': (
common_pseudo_builtins,
iso_additional_pseudo_builtins,
xds_additional_pseudo_builtins,
@@ -978,46 +977,46 @@ class Modula2Lexer(RegexLexer):
# Standard Library ADTs Database
stdlib_adts_db = {
# Empty entry for unknown dialect
- 'unknown' : (
+ 'unknown': (
# LEAVE THIS EMPTY
),
# Standard Library ADTs for PIM Modula-2
- 'm2pim' : (
+ 'm2pim': (
# No first class library types
),
# Standard Library ADTs for ISO Modula-2
- 'm2iso' : (
+ 'm2iso': (
# No first class library types
),
# Standard Library ADTs for Modula-2 R10
- 'm2r10' : (
+ 'm2r10': (
m2r10_stdlib_adt_identifiers,
),
# Standard Library ADTs for Objective Modula-2
- 'objm2' : (
+ 'objm2': (
m2r10_stdlib_adt_identifiers,
),
# Standard Library ADTs for Aglet Modula-2
- 'm2iso+aglet' : (
+ 'm2iso+aglet': (
# No first class library types
),
# Standard Library ADTs for GNU Modula-2
- 'm2pim+gm2' : (
+ 'm2pim+gm2': (
# No first class library types
),
# Standard Library ADTs for p1 Modula-2
- 'm2iso+p1' : (
+ 'm2iso+p1': (
# No first class library types
),
# Standard Library ADTs for XDS Modula-2
- 'm2iso+xds' : (
+ 'm2iso+xds': (
# No first class library types
),
}
@@ -1025,49 +1024,49 @@ class Modula2Lexer(RegexLexer):
# Standard Library Modules Database
stdlib_modules_db = {
# Empty entry for unknown dialect
- 'unknown' : (
+ 'unknown': (
# LEAVE THIS EMPTY
),
# Standard Library Modules for PIM Modula-2
- 'm2pim' : (
+ 'm2pim': (
pim_stdlib_module_identifiers,
),
# Standard Library Modules for ISO Modula-2
- 'm2iso' : (
+ 'm2iso': (
iso_stdlib_module_identifiers,
),
# Standard Library Modules for Modula-2 R10
- 'm2r10' : (
+ 'm2r10': (
m2r10_stdlib_blueprint_identifiers,
m2r10_stdlib_module_identifiers,
m2r10_stdlib_adt_identifiers,
),
# Standard Library Modules for Objective Modula-2
- 'objm2' : (
+ 'objm2': (
m2r10_stdlib_blueprint_identifiers,
m2r10_stdlib_module_identifiers,
),
# Standard Library Modules for Aglet Modula-2
- 'm2iso+aglet' : (
+ 'm2iso+aglet': (
iso_stdlib_module_identifiers,
),
# Standard Library Modules for GNU Modula-2
- 'm2pim+gm2' : (
+ 'm2pim+gm2': (
pim_stdlib_module_identifiers,
),
# Standard Library Modules for p1 Modula-2
- 'm2iso+p1' : (
+ 'm2iso+p1': (
iso_stdlib_module_identifiers,
),
# Standard Library Modules for XDS Modula-2
- 'm2iso+xds' : (
+ 'm2iso+xds': (
iso_stdlib_module_identifiers,
),
}
@@ -1075,46 +1074,46 @@ class Modula2Lexer(RegexLexer):
# Standard Library Types Database
stdlib_types_db = {
# Empty entry for unknown dialect
- 'unknown' : (
+ 'unknown': (
# LEAVE THIS EMPTY
),
# Standard Library Types for PIM Modula-2
- 'm2pim' : (
+ 'm2pim': (
pim_stdlib_type_identifiers,
),
# Standard Library Types for ISO Modula-2
- 'm2iso' : (
+ 'm2iso': (
iso_stdlib_type_identifiers,
),
# Standard Library Types for Modula-2 R10
- 'm2r10' : (
+ 'm2r10': (
m2r10_stdlib_type_identifiers,
),
# Standard Library Types for Objective Modula-2
- 'objm2' : (
+ 'objm2': (
m2r10_stdlib_type_identifiers,
),
# Standard Library Types for Aglet Modula-2
- 'm2iso+aglet' : (
+ 'm2iso+aglet': (
iso_stdlib_type_identifiers,
),
# Standard Library Types for GNU Modula-2
- 'm2pim+gm2' : (
+ 'm2pim+gm2': (
pim_stdlib_type_identifiers,
),
# Standard Library Types for p1 Modula-2
- 'm2iso+p1' : (
+ 'm2iso+p1': (
iso_stdlib_type_identifiers,
),
# Standard Library Types for XDS Modula-2
- 'm2iso+xds' : (
+ 'm2iso+xds': (
iso_stdlib_type_identifiers,
),
}
@@ -1122,46 +1121,46 @@ class Modula2Lexer(RegexLexer):
# Standard Library Procedures Database
stdlib_procedures_db = {
# Empty entry for unknown dialect
- 'unknown' : (
+ 'unknown': (
# LEAVE THIS EMPTY
),
# Standard Library Procedures for PIM Modula-2
- 'm2pim' : (
+ 'm2pim': (
pim_stdlib_proc_identifiers,
),
# Standard Library Procedures for ISO Modula-2
- 'm2iso' : (
+ 'm2iso': (
iso_stdlib_proc_identifiers,
),
# Standard Library Procedures for Modula-2 R10
- 'm2r10' : (
+ 'm2r10': (
m2r10_stdlib_proc_identifiers,
),
# Standard Library Procedures for Objective Modula-2
- 'objm2' : (
+ 'objm2': (
m2r10_stdlib_proc_identifiers,
),
# Standard Library Procedures for Aglet Modula-2
- 'm2iso+aglet' : (
+ 'm2iso+aglet': (
iso_stdlib_proc_identifiers,
),
# Standard Library Procedures for GNU Modula-2
- 'm2pim+gm2' : (
+ 'm2pim+gm2': (
pim_stdlib_proc_identifiers,
),
# Standard Library Procedures for p1 Modula-2
- 'm2iso+p1' : (
+ 'm2iso+p1': (
iso_stdlib_proc_identifiers,
),
# Standard Library Procedures for XDS Modula-2
- 'm2iso+xds' : (
+ 'm2iso+xds': (
iso_stdlib_proc_identifiers,
),
}
@@ -1169,46 +1168,46 @@ class Modula2Lexer(RegexLexer):
# Standard Library Variables Database
stdlib_variables_db = {
# Empty entry for unknown dialect
- 'unknown' : (
+ 'unknown': (
# LEAVE THIS EMPTY
),
# Standard Library Variables for PIM Modula-2
- 'm2pim' : (
+ 'm2pim': (
pim_stdlib_var_identifiers,
),
# Standard Library Variables for ISO Modula-2
- 'm2iso' : (
+ 'm2iso': (
iso_stdlib_var_identifiers,
),
# Standard Library Variables for Modula-2 R10
- 'm2r10' : (
+ 'm2r10': (
m2r10_stdlib_var_identifiers,
),
# Standard Library Variables for Objective Modula-2
- 'objm2' : (
+ 'objm2': (
m2r10_stdlib_var_identifiers,
),
# Standard Library Variables for Aglet Modula-2
- 'm2iso+aglet' : (
+ 'm2iso+aglet': (
iso_stdlib_var_identifiers,
),
# Standard Library Variables for GNU Modula-2
- 'm2pim+gm2' : (
+ 'm2pim+gm2': (
pim_stdlib_var_identifiers,
),
# Standard Library Variables for p1 Modula-2
- 'm2iso+p1' : (
+ 'm2iso+p1': (
iso_stdlib_var_identifiers,
),
# Standard Library Variables for XDS Modula-2
- 'm2iso+xds' : (
+ 'm2iso+xds': (
iso_stdlib_var_identifiers,
),
}
@@ -1216,46 +1215,46 @@ class Modula2Lexer(RegexLexer):
# Standard Library Constants Database
stdlib_constants_db = {
# Empty entry for unknown dialect
- 'unknown' : (
+ 'unknown': (
# LEAVE THIS EMPTY
),
# Standard Library Constants for PIM Modula-2
- 'm2pim' : (
+ 'm2pim': (
pim_stdlib_const_identifiers,
),
# Standard Library Constants for ISO Modula-2
- 'm2iso' : (
+ 'm2iso': (
iso_stdlib_const_identifiers,
),
# Standard Library Constants for Modula-2 R10
- 'm2r10' : (
+ 'm2r10': (
m2r10_stdlib_const_identifiers,
),
# Standard Library Constants for Objective Modula-2
- 'objm2' : (
+ 'objm2': (
m2r10_stdlib_const_identifiers,
),
# Standard Library Constants for Aglet Modula-2
- 'm2iso+aglet' : (
+ 'm2iso+aglet': (
iso_stdlib_const_identifiers,
),
# Standard Library Constants for GNU Modula-2
- 'm2pim+gm2' : (
+ 'm2pim+gm2': (
pim_stdlib_const_identifiers,
),
# Standard Library Constants for p1 Modula-2
- 'm2iso+p1' : (
+ 'm2iso+p1': (
iso_stdlib_const_identifiers,
),
# Standard Library Constants for XDS Modula-2
- 'm2iso+xds' : (
+ 'm2iso+xds': (
iso_stdlib_const_identifiers,
),
}
@@ -1265,10 +1264,6 @@ class Modula2Lexer(RegexLexer):
# initialise a lexer instance
def __init__(self, **options):
#
- # Alias for unknown dialect
- global UNKNOWN
- UNKNOWN = self.dialects[0]
- #
# check dialect options
#
dialects = get_list_opt(options, 'dialect', [])
@@ -1281,8 +1276,8 @@ class Modula2Lexer(RegexLexer):
#
# Fallback Mode (DEFAULT)
else:
- # no valid dialect option
- self.set_dialect(UNKNOWN)
+ # no valid dialect option
+ self.set_dialect('unknown')
#
self.dialect_set_by_tag = False
#
@@ -1298,8 +1293,8 @@ class Modula2Lexer(RegexLexer):
#
# Check option flags
#
- self.treat_stdlib_adts_as_builtins = \
- get_bool_opt(options, 'treat_stdlib_adts_as_builtins', True)
+ self.treat_stdlib_adts_as_builtins = get_bool_opt(
+ options, 'treat_stdlib_adts_as_builtins', True)
#
# call superclass initialiser
RegexLexer.__init__(self, **options)
@@ -1307,12 +1302,12 @@ class Modula2Lexer(RegexLexer):
# Set lexer to a specified dialect
def set_dialect(self, dialect_id):
#
- #if __debug__:
+ # if __debug__:
# print 'entered set_dialect with arg: ', dialect_id
#
# check dialect name against known dialects
if dialect_id not in self.dialects:
- dialect = UNKNOWN # default
+ dialect = 'unknown' # default
else:
dialect = dialect_id
#
@@ -1389,7 +1384,7 @@ class Modula2Lexer(RegexLexer):
self.variables = variables_set
self.constants = constants_set
#
- #if __debug__:
+ # if __debug__:
# print 'exiting set_dialect'
# print ' self.dialect: ', self.dialect
# print ' self.lexemes_to_reject: ', self.lexemes_to_reject
@@ -1409,7 +1404,7 @@ class Modula2Lexer(RegexLexer):
# matching name is returned, otherwise dialect id 'unknown' is returned
def get_dialect_from_dialect_tag(self, dialect_tag):
#
- #if __debug__:
+ # if __debug__:
# print 'entered get_dialect_from_dialect_tag with arg: ', dialect_tag
#
# constants
@@ -1422,37 +1417,37 @@ class Modula2Lexer(RegexLexer):
#
# check comment string for dialect indicator
if len(dialect_tag) > (left_tag_delim_len + right_tag_delim_len) \
- and dialect_tag.startswith(left_tag_delim) \
- and dialect_tag.endswith(right_tag_delim):
+ and dialect_tag.startswith(left_tag_delim) \
+ and dialect_tag.endswith(right_tag_delim):
#
- #if __debug__:
+ # if __debug__:
# print 'dialect tag found'
#
# extract dialect indicator
indicator = dialect_tag[indicator_start:indicator_end]
#
- #if __debug__:
+ # if __debug__:
# print 'extracted: ', indicator
#
# check against known dialects
for index in range(1, len(self.dialects)):
#
- #if __debug__:
+ # if __debug__:
# print 'dialects[', index, ']: ', self.dialects[index]
#
if indicator == self.dialects[index]:
#
- #if __debug__:
+ # if __debug__:
# print 'matching dialect found'
#
# indicator matches known dialect
return indicator
else:
# indicator does not match any dialect
- return UNKNOWN # default
+ return 'unknown' # default
else:
# invalid indicator string
- return UNKNOWN # default
+ return 'unknown' # default
# intercept the token stream, modify token attributes and return them
def get_tokens_unprocessed(self, text):
@@ -1461,7 +1456,7 @@ class Modula2Lexer(RegexLexer):
# check for dialect tag if dialect has not been set by tag
if not self.dialect_set_by_tag and token == Comment.Special:
indicated_dialect = self.get_dialect_from_dialect_tag(value)
- if indicated_dialect != UNKNOWN:
+ if indicated_dialect != 'unknown':
# token is a dialect indicator
# reset reserved words and builtins
self.set_dialect(indicated_dialect)
@@ -1510,7 +1505,7 @@ class Modula2Lexer(RegexLexer):
elif token in Number:
#
# mark prefix number literals as error for PIM and ISO dialects
- if self.dialect not in (UNKNOWN, 'm2r10', 'objm2'):
+ if self.dialect not in ('unknown', 'm2r10', 'objm2'):
if "'" in value or value[0:2] in ('0b', '0x', '0u'):
token = Error
#
@@ -1529,7 +1524,7 @@ class Modula2Lexer(RegexLexer):
#
# mark single line comment as error for PIM and ISO dialects
if token is Comment.Single:
- if self.dialect not in [UNKNOWN, 'm2r10', 'objm2']:
+ if self.dialect not in ('unknown', 'm2r10', 'objm2'):
token = Error
#
if token is Comment.Preproc:
@@ -1539,11 +1534,11 @@ class Modula2Lexer(RegexLexer):
token = Error
# mark PIM pragma as comment for other dialects
elif value.startswith('(*$') and \
- self.dialect != UNKNOWN and \
- not self.dialect.startswith('m2pim'):
+ self.dialect != 'unknown' and \
+ not self.dialect.startswith('m2pim'):
token = Comment.Multiline
#
- else: # token is neither Name nor Comment
+ else: # token is neither Name nor Comment
#
# mark lexemes matching the dialect's error token set as errors
if value in self.lexemes_to_reject:
diff --git a/pygments/lexers/oberon.py b/pygments/lexers/oberon.py
new file mode 100644
index 00000000..db18259d
--- /dev/null
+++ b/pygments/lexers/oberon.py
@@ -0,0 +1,105 @@
+# -*- coding: utf-8 -*-
+"""
+ pygments.lexers.oberon
+ ~~~~~~~~~~~~~~~~~~~~~~
+
+ Lexers for Oberon family languages.
+
+ :copyright: Copyright 2006-2015 by the Pygments team, see AUTHORS.
+ :license: BSD, see LICENSE for details.
+"""
+
+import re
+
+from pygments.lexer import RegexLexer, include, words
+from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
+ Number, Punctuation
+
+__all__ = ['ComponentPascalLexer']
+
+
+class ComponentPascalLexer(RegexLexer):
+ """
+ For `Component Pascal <http://www.oberon.ch/pdf/CP-Lang.pdf>`_ source code.
+
+ .. versionadded:: 2.1
+ """
+ name = 'Component Pascal'
+ aliases = ['componentpascal', 'cp']
+ filenames = ['*.cp', '*.cps']
+ mimetypes = ['text/x-component-pascal']
+
+ flags = re.MULTILINE | re.DOTALL
+
+ tokens = {
+ 'root': [
+ include('whitespace'),
+ include('comments'),
+ include('punctuation'),
+ include('numliterals'),
+ include('strings'),
+ include('operators'),
+ include('builtins'),
+ include('identifiers'),
+ ],
+ 'whitespace': [
+ (r'\n+', Text), # blank lines
+ (r'\s+', Text), # whitespace
+ ],
+ 'comments': [
+ (r'\(\*([^\$].*?)\*\)', Comment.Multiline),
+ # TODO: nested comments (* (* ... *) ... (* ... *) *) not supported!
+ ],
+ 'punctuation': [
+ (r'[\(\)\[\]\{\},.:;\|]', Punctuation),
+ ],
+ 'numliterals': [
+ (r'[0-9A-F]+X\b', Number.Hex), # char code
+ (r'[0-9A-F]+[HL]\b', Number.Hex), # hexadecimal number
+ (r'[0-9]+\.[0-9]+E[+-][0-9]+', Number.Float), # real number
+ (r'[0-9]+\.[0-9]+', Number.Float), # real number
+ (r'[0-9]+', Number.Integer), # decimal whole number
+ ],
+ 'strings': [
+ (r"'[^\n']*'", String), # single quoted string
+ (r'"[^\n"]*"', String), # double quoted string
+ ],
+ 'operators': [
+ # Arithmetic Operators
+ (r'[+-]', Operator),
+ (r'[*/]', Operator),
+ # Relational Operators
+ (r'[=#<>]', Operator),
+ # Dereferencing Operator
+ (r'\^', Operator),
+ # Logical AND Operator
+ (r'&', Operator),
+ # Logical NOT Operator
+ (r'~', Operator),
+ # Assignment Symbol
+ (r':=', Operator),
+ # Range Constructor
+ (r'\.\.', Operator),
+ (r'\$', Operator),
+ ],
+ 'identifiers': [
+ (r'([a-zA-Z_\$][\w\$]*)', Name),
+ ],
+ 'builtins': [
+ (words((
+ 'ANYPTR', 'ANYREC', 'BOOLEAN', 'BYTE', 'CHAR', 'INTEGER', 'LONGINT',
+ 'REAL', 'SET', 'SHORTCHAR', 'SHORTINT', 'SHORTREAL'
+ ), suffix=r'\b'), Keyword.Type),
+ (words((
+ 'ABS', 'ABSTRACT', 'ARRAY', 'ASH', 'ASSERT', 'BEGIN', 'BITS', 'BY',
+ 'CAP', 'CASE', 'CHR', 'CLOSE', 'CONST', 'DEC', 'DIV', 'DO', 'ELSE',
+ 'ELSIF', 'EMPTY', 'END', 'ENTIER', 'EXCL', 'EXIT', 'EXTENSIBLE', 'FOR',
+ 'HALT', 'IF', 'IMPORT', 'IN', 'INC', 'INCL', 'IS', 'LEN', 'LIMITED',
+ 'LONG', 'LOOP', 'MAX', 'MIN', 'MOD', 'MODULE', 'NEW', 'ODD', 'OF',
+ 'OR', 'ORD', 'OUT', 'POINTER', 'PROCEDURE', 'RECORD', 'REPEAT', 'RETURN',
+ 'SHORT', 'SHORTCHAR', 'SHORTINT', 'SIZE', 'THEN', 'TYPE', 'TO', 'UNTIL',
+ 'VAR', 'WHILE', 'WITH'
+ ), suffix=r'\b'), Keyword.Reserved),
+ (r'(TRUE|FALSE|NIL|INF)\b', Keyword.Constant),
+ ]
+ }
diff --git a/pygments/lexers/parasail.py b/pygments/lexers/parasail.py
new file mode 100644
index 00000000..878f7d26
--- /dev/null
+++ b/pygments/lexers/parasail.py
@@ -0,0 +1,79 @@
+# -*- coding: utf-8 -*-
+"""
+ pygments.lexers.parasail
+ ~~~~~~~~~~~~~~~~~~~~~~~~
+
+ Lexer for ParaSail.
+
+ :copyright: Copyright 2006-2015 by the Pygments team, see AUTHORS.
+ :license: BSD, see LICENSE for details.
+"""
+
+import re
+
+from pygments.lexer import RegexLexer, include
+from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
+ Number, Punctuation, Literal
+
+__all__ = ['ParaSailLexer']
+
+
+class ParaSailLexer(RegexLexer):
+ """
+ For `ParaSail <http://www.parasail-lang.org>`_ source code.
+
+ .. versionadded:: 2.1
+ """
+
+ name = 'ParaSail'
+ aliases = ['parasail']
+ filenames = ['*.psi', '*.psl']
+ mimetypes = ['text/x-parasail']
+
+ flags = re.MULTILINE
+
+ tokens = {
+ 'root': [
+ (r'[^\S\n]+', Text),
+ (r'//.*?\n', Comment.Single),
+ (r'\b(and|or|xor)=', Operator.Word),
+ (r'\b(and(\s+then)?|or(\s+else)?|xor|rem|mod|'
+ r'(is|not)\s+null)\b',
+ Operator.Word),
+ # Keywords
+ (r'\b(abs|abstract|all|block|class|concurrent|const|continue|'
+ r'each|end|exit|extends|exports|forward|func|global|implements|'
+ r'import|in|interface|is|lambda|locked|new|not|null|of|op|'
+ r'optional|private|queued|ref|return|reverse|separate|some|'
+ r'type|until|var|with|'
+ # Control flow
+ r'if|then|else|elsif|case|for|while|loop)\b',
+ Keyword.Reserved),
+ (r'(abstract\s+)?(interface|class|op|func|type)',
+ Keyword.Declaration),
+ # Literals
+ (r'"[^"]*"', String),
+ (r'\\[\'ntrf"0]', String.Escape),
+ (r'#[a-zA-Z]\w*', Literal), # Enumeration
+ include('numbers'),
+ (r"'[^']'", String.Char),
+ (r'[a-zA-Z]\w*', Name),
+ # Operators and Punctuation
+ (r'(<==|==>|<=>|\*\*=|<\|=|<<=|>>=|==|!=|=\?|<=|>=|'
+ r'\*\*|<<|>>|=>|:=|\+=|-=|\*=|\||\|=|/=|\+|-|\*|/|'
+ r'\.\.|<\.\.|\.\.<|<\.\.<)',
+ Operator),
+ (r'(<|>|\[|\]|\(|\)|\||:|;|,|.|\{|\}|->)',
+ Punctuation),
+ (r'\n+', Text),
+ ],
+ 'numbers': [
+ (r'\d[0-9_]*#[0-9a-fA-F][0-9a-fA-F_]*#', Number.Hex), # any base
+ (r'0[xX][0-9a-fA-F][0-9a-fA-F_]*', Number.Hex), # C-like hex
+ (r'0[bB][01][01_]*', Number.Bin), # C-like bin
+ (r'\d[0-9_]*\.\d[0-9_]*[eE][+-]\d[0-9_]*', # float exp
+ Number.Float),
+ (r'\d[0-9_]*\.\d[0-9_]*', Number.Float), # float
+ (r'\d[0-9_]*', Number.Integer), # integer
+ ],
+ }
diff --git a/pygments/lexers/pascal.py b/pygments/lexers/pascal.py
index d3ce6a3a..ce991a77 100644
--- a/pygments/lexers/pascal.py
+++ b/pygments/lexers/pascal.py
@@ -18,6 +18,7 @@ from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
Number, Punctuation, Error
from pygments.scanner import Scanner
+# compatibility import
from pygments.lexers.modula2 import Modula2Lexer
__all__ = ['DelphiLexer', 'AdaLexer']
@@ -536,11 +537,13 @@ class AdaLexer(RegexLexer):
Comment.Preproc)),
(r'(true|false|null)\b', Keyword.Constant),
(words((
- 'Address', 'Byte', 'Boolean', 'Character', 'Controlled', 'Count', 'Cursor',
- 'Duration', 'File_Mode', 'File_Type', 'Float', 'Generator', 'Integer', 'Long_Float',
- 'Long_Integer', 'Long_Long_Float', 'Long_Long_Integer', 'Natural', 'Positive',
- 'Reference_Type', 'Short_Float', 'Short_Integer', 'Short_Short_Float',
- 'Short_Short_Integer', 'String', 'Wide_Character', 'Wide_String'), suffix=r'\b'),
+ 'Address', 'Byte', 'Boolean', 'Character', 'Controlled', 'Count',
+ 'Cursor', 'Duration', 'File_Mode', 'File_Type', 'Float', 'Generator',
+ 'Integer', 'Long_Float', 'Long_Integer', 'Long_Long_Float',
+ 'Long_Long_Integer', 'Natural', 'Positive', 'Reference_Type',
+ 'Short_Float', 'Short_Integer', 'Short_Short_Float',
+ 'Short_Short_Integer', 'String', 'Wide_Character', 'Wide_String'),
+ suffix=r'\b'),
Keyword.Type),
(r'(and(\s+then)?|in|mod|not|or(\s+else)|rem)\b', Operator.Word),
(r'generic|private', Keyword.Declaration),
diff --git a/pygments/lexers/praat.py b/pygments/lexers/praat.py
new file mode 100644
index 00000000..776c38b8
--- /dev/null
+++ b/pygments/lexers/praat.py
@@ -0,0 +1,295 @@
+# -*- coding: utf-8 -*-
+"""
+ pygments.lexers.praat
+ ~~~~~~~~~~~~~~~~~~~~~
+
+ Lexer for Praat
+
+ :copyright: Copyright 2006-2015 by the Pygments team, see AUTHORS.
+ :license: BSD, see LICENSE for details.
+"""
+
+from pygments.lexer import RegexLexer, words, bygroups, include
+from pygments.token import Name, Text, Comment, Keyword, String, Punctuation, Number, \
+ Operator
+
+__all__ = ['PraatLexer']
+
+
+class PraatLexer(RegexLexer):
+ """
+ For `Praat <http://www.praat.org>`_ scripts.
+
+ .. versionadded:: 2.1
+ """
+
+ name = 'Praat'
+ aliases = ['praat']
+ filenames = ['*.praat', '*.proc', '*.psc']
+
+ keywords = [
+ 'if', 'then', 'else', 'elsif', 'elif', 'endif', 'fi', 'for', 'from', 'to',
+ 'endfor', 'endproc', 'while', 'endwhile', 'repeat', 'until', 'select', 'plus',
+ 'minus', 'demo', 'assert', 'stopwatch', 'nocheck', 'nowarn', 'noprogress',
+ 'editor', 'endeditor', 'clearinfo',
+ ]
+
+ functions_string = [
+ 'backslashTrigraphsToUnicode', 'chooseDirectory', 'chooseReadFile',
+ 'chooseWriteFile', 'date', 'demoKey', 'do', 'environment', 'extractLine',
+ 'extractWord', 'fixed', 'info', 'left', 'mid', 'percent', 'readFile', 'replace',
+ 'replace_regex', 'right', 'selected', 'string', 'unicodeToBackslashTrigraphs',
+ ]
+
+ functions_numeric = [
+ 'abs', 'appendFile', 'appendFileLine', 'appendInfo', 'appendInfoLine', 'arccos',
+ 'arccosh', 'arcsin', 'arcsinh', 'arctan', 'arctan2', 'arctanh', 'barkToHertz',
+ 'beginPause', 'beginSendPraat', 'besselI', 'besselK', 'beta', 'beta2',
+ 'binomialP', 'binomialQ', 'boolean', 'ceiling', 'chiSquareP', 'chiSquareQ',
+ 'choice', 'comment', 'cos', 'cosh', 'createDirectory', 'deleteFile',
+ 'demoClicked', 'demoClickedIn', 'demoCommandKeyPressed',
+ 'demoExtraControlKeyPressed', 'demoInput', 'demoKeyPressed',
+ 'demoOptionKeyPressed', 'demoShiftKeyPressed', 'demoShow', 'demoWaitForInput',
+ 'demoWindowTitle', 'demoX', 'demoY', 'differenceLimensToPhon', 'do', 'editor',
+ 'endPause', 'endSendPraat', 'endsWith', 'erb', 'erbToHertz', 'erf', 'erfc',
+ 'exitScript', 'exp', 'extractNumber', 'fileReadable', 'fisherP', 'fisherQ',
+ 'floor', 'gaussP', 'gaussQ', 'hertzToBark', 'hertzToErb', 'hertzToMel',
+ 'hertzToSemitones', 'imax', 'imin', 'incompleteBeta', 'incompleteGammaP', 'index',
+ 'index_regex', 'invBinomialP', 'invBinomialQ', 'invChiSquareQ', 'invFisherQ',
+ 'invGaussQ', 'invSigmoid', 'invStudentQ', 'length', 'ln', 'lnBeta', 'lnGamma',
+ 'log10', 'log2', 'max', 'melToHertz', 'min', 'minusObject', 'natural', 'number',
+ 'numberOfColumns', 'numberOfRows', 'numberOfSelected', 'objectsAreIdentical',
+ 'option', 'optionMenu', 'pauseScript', 'phonToDifferenceLimens', 'plusObject',
+ 'positive', 'randomBinomial', 'randomGauss', 'randomInteger', 'randomPoisson',
+ 'randomUniform', 'real', 'readFile', 'removeObject', 'rindex', 'rindex_regex',
+ 'round', 'runScript', 'runSystem', 'runSystem_nocheck', 'selectObject',
+ 'selected', 'semitonesToHertz', 'sentencetext', 'sigmoid', 'sin', 'sinc',
+ 'sincpi', 'sinh', 'soundPressureToPhon', 'sqrt', 'startsWith', 'studentP',
+ 'studentQ', 'tan', 'tanh', 'variableExists', 'word', 'writeFile', 'writeFileLine',
+ 'writeInfo', 'writeInfoLine',
+ ]
+
+ functions_array = [
+ 'linear', 'randomGauss', 'randomInteger', 'randomUniform', 'zero',
+ ]
+
+ objects = [
+ 'Activation', 'AffineTransform', 'AmplitudeTier', 'Art', 'Artword',
+ 'Autosegment', 'BarkFilter', 'BarkSpectrogram', 'CCA', 'Categories',
+ 'Cepstrogram', 'Cepstrum', 'Cepstrumc', 'ChebyshevSeries', 'ClassificationTable',
+ 'Cochleagram', 'Collection', 'ComplexSpectrogram', 'Configuration', 'Confusion',
+ 'ContingencyTable', 'Corpus', 'Correlation', 'Covariance',
+ 'CrossCorrelationTable', 'CrossCorrelationTables', 'DTW', 'DataModeler',
+ 'Diagonalizer', 'Discriminant', 'Dissimilarity', 'Distance', 'Distributions',
+ 'DurationTier', 'EEG', 'ERP', 'ERPTier', 'EditCostsTable', 'EditDistanceTable',
+ 'Eigen', 'Excitation', 'Excitations', 'ExperimentMFC', 'FFNet', 'FeatureWeights',
+ 'FileInMemory', 'FilesInMemory', 'Formant', 'FormantFilter', 'FormantGrid',
+ 'FormantModeler', 'FormantPoint', 'FormantTier', 'GaussianMixture', 'HMM',
+ 'HMM_Observation', 'HMM_ObservationSequence', 'HMM_State', 'HMM_StateSequence',
+ 'Harmonicity', 'ISpline', 'Index', 'Intensity', 'IntensityTier', 'IntervalTier',
+ 'KNN', 'KlattGrid', 'KlattTable', 'LFCC', 'LPC', 'Label', 'LegendreSeries',
+ 'LinearRegression', 'LogisticRegression', 'LongSound', 'Ltas', 'MFCC', 'MSpline',
+ 'ManPages', 'Manipulation', 'Matrix', 'MelFilter', 'MelSpectrogram',
+ 'MixingMatrix', 'Movie', 'Network', 'OTGrammar', 'OTHistory', 'OTMulti', 'PCA',
+ 'PairDistribution', 'ParamCurve', 'Pattern', 'Permutation', 'Photo', 'Pitch',
+ 'PitchModeler', 'PitchTier', 'PointProcess', 'Polygon', 'Polynomial',
+ 'PowerCepstrogram', 'PowerCepstrum', 'Procrustes', 'RealPoint', 'RealTier',
+ 'ResultsMFC', 'Roots', 'SPINET', 'SSCP', 'SVD', 'Salience', 'ScalarProduct',
+ 'Similarity', 'SimpleString', 'SortedSetOfString', 'Sound', 'Speaker',
+ 'Spectrogram', 'Spectrum', 'SpectrumTier', 'SpeechSynthesizer', 'SpellingChecker',
+ 'Strings', 'StringsIndex', 'Table', 'TableOfReal', 'TextGrid', 'TextInterval',
+ 'TextPoint', 'TextTier', 'Tier', 'Transition', 'VocalTract', 'VocalTractTier',
+ 'Weight', 'WordList',
+ ]
+
+ variables_numeric = [
+ 'macintosh', 'windows', 'unix', 'praatVersion', 'pi', 'e', 'undefined',
+ ]
+
+ variables_string = [
+ 'praatVersion', 'tab', 'shellDirectory', 'homeDirectory',
+ 'preferencesDirectory', 'newline', 'temporaryDirectory',
+ 'defaultDirectory',
+ ]
+
+ tokens = {
+ 'root': [
+ (r'(\s+)(#.*?$)', bygroups(Text, Comment.Single)),
+ (r'^#.*?$', Comment.Single),
+ (r';[^\n]*', Comment.Single),
+ (r'\s+', Text),
+
+ (r'\bprocedure\b', Keyword, 'procedure_definition'),
+ (r'\bcall\b', Keyword, 'procedure_call'),
+ (r'@', Name.Function, 'procedure_call'),
+
+ include('function_call'),
+
+ (words(keywords, suffix=r'\b'), Keyword),
+
+ (r'(\bform\b)(\s+)([^\n]+)',
+ bygroups(Keyword, Text, String), 'old_form'),
+
+ (r'(print(?:line|tab)?|echo|exit|asserterror|pause|send(?:praat|socket)|'
+ r'include|execute|system(?:_nocheck)?)(\s+)',
+ bygroups(Keyword, Text), 'string_unquoted'),
+
+ (r'(goto|label)(\s+)(\w+)', bygroups(Keyword, Text, Name.Label)),
+
+ include('variable_name'),
+ include('number'),
+
+ (r'"', String, 'string'),
+
+ (words((objects), suffix=r'(?=\s+\S+\n)'), Name.Class, 'string_unquoted'),
+
+ (r'\b[A-Z]', Keyword, 'command'),
+ (r'(\.{3}|[)(,])', Punctuation),
+ ],
+ 'command': [
+ (r'( ?[\w()-]+ ?)', Keyword),
+ (r"'(?=.*')", String.Interpol, 'string_interpolated'),
+ (r'\.{3}', Keyword, ('#pop', 'old_arguments')),
+ (r':', Keyword, ('#pop', 'comma_list')),
+ (r'[\s\n]', Text, '#pop'),
+ ],
+ 'procedure_call': [
+ (r'\s+', Text),
+ (r'([\w.]+)(:|\s*\()',
+ bygroups(Name.Function, Text), '#pop'),
+ (r'([\w.]+)', Name.Function, ('#pop', 'old_arguments')),
+ ],
+ 'procedure_definition': [
+ (r'\s', Text),
+ (r'([\w.]+)(\s*?[(:])',
+ bygroups(Name.Function, Text), '#pop'),
+ (r'([\w.]+)([^\n]*)',
+ bygroups(Name.Function, Text), '#pop'),
+ ],
+ 'function_call': [
+ (words(functions_string, suffix=r'\$(?=\s*[:(])'), Name.Function, 'function'),
+ (words(functions_array, suffix=r'#(?=\s*[:(])'), Name.Function, 'function'),
+ (words(functions_numeric, suffix=r'(?=\s*[:(])'), Name.Function, 'function'),
+ ],
+ 'function': [
+ (r'\s+', Text),
+ (r':', Punctuation, ('#pop', 'comma_list')),
+ (r'\s*\(', Punctuation, ('#pop', 'comma_list')),
+ ],
+ 'comma_list': [
+ (r'(\s*\n\s*)(\.{3})', bygroups(Text, Punctuation)),
+
+ (r'(\s*[])\n])', Text, '#pop'),
+
+ (r'\s+', Text),
+ (r'"', String, 'string'),
+ (r'\b(if|then|else|fi|endif)\b', Keyword),
+
+ include('function_call'),
+ include('variable_name'),
+ include('operator'),
+ include('number'),
+
+ (r',', Punctuation),
+ ],
+ 'old_arguments': [
+ (r'\n', Text, '#pop'),
+
+ include('variable_name'),
+ include('operator'),
+ include('number'),
+
+ (r'"', String, 'string'),
+ (r'[^\n]', Text),
+ ],
+ 'number': [
+ (r'\b\d+(\.\d*)?([eE][-+]?\d+)?%?', Number),
+ ],
+ 'object_attributes': [
+ (r'\.?(n(col|row)|[xy]min|[xy]max|[nd][xy])\b', Name.Builtin, '#pop'),
+ (r'(\.?(?:col|row)\$)(\[)',
+ bygroups(Name.Builtin, Text), 'variable_name'),
+ (r'(\$?)(\[)',
+ bygroups(Name.Builtin, Text), ('#pop', 'comma_list')),
+ ],
+ 'variable_name': [
+ include('operator'),
+ include('number'),
+
+ (words(variables_string, suffix=r'\$'), Name.Variable.Global),
+ (words(variables_numeric, suffix=r'\b'), Name.Variable.Global),
+
+ (r'\bObject_\w+', Name.Builtin, 'object_attributes'),
+ (words(objects, prefix=r'\b', suffix=r'_\w+'),
+ Name.Builtin, 'object_attributes'),
+
+ (r"\b(Object_)(')",
+ bygroups(Name.Builtin, String.Interpol),
+ ('object_attributes', 'string_interpolated')),
+ (words(objects, prefix=r'\b', suffix=r"(_)(')"),
+ bygroups(Name.Builtin, Name.Builtin, String.Interpol),
+ ('object_attributes', 'string_interpolated')),
+
+ (r'\.?_?[a-z][a-zA-Z0-9_.]*(\$|#)?', Text),
+ (r'[\[\]]', Punctuation, 'comma_list'),
+ (r"'(?=.*')", String.Interpol, 'string_interpolated'),
+ ],
+ 'operator': [
+ (r'([+\/*<>=!-]=?|[&*|][&*|]?|\^|<>)', Operator),
+ (r'\b(and|or|not|div|mod)\b', Operator.Word),
+ ],
+ 'string_interpolated': [
+ (r'\.?[_a-z][a-zA-Z0-9_.]*[\$#]?(?:\[[a-zA-Z0-9,]+\])?(:[0-9]+)?',
+ String.Interpol),
+ (r"'", String.Interpol, '#pop'),
+ ],
+ 'string_unquoted': [
+ (r'(\n\s*)(\.{3})', bygroups(Text, Punctuation)),
+
+ (r'\n', Text, '#pop'),
+ (r'\s', Text),
+ (r"'(?=.*')", String.Interpol, 'string_interpolated'),
+ (r"'", String),
+ (r"[^'\n]+", String),
+ ],
+ 'string': [
+ (r'(\n\s*)(\.{3})', bygroups(Text, Punctuation)),
+
+ (r'"', String, '#pop'),
+ (r"'(?=.*')", String.Interpol, 'string_interpolated'),
+ (r"'", String),
+ (r'[^\'"\n]+', String),
+ ],
+ 'old_form': [
+ (r'\s+', Text),
+
+ (r'(optionmenu|choice)([ \t]+\S+:[ \t]+)',
+ bygroups(Keyword, Text), 'number'),
+
+ (r'(option|button)([ \t]+)',
+ bygroups(Keyword, Text), 'number'),
+
+ (r'(option|button)([ \t]+)',
+ bygroups(Keyword, Text), 'string_unquoted'),
+
+ (r'(sentence|text)([ \t]+\S+)',
+ bygroups(Keyword, Text), 'string_unquoted'),
+
+ (r'(word)([ \t]+\S+[ \t]*)(\S+)?([ \t]+.*)?',
+ bygroups(Keyword, Text, String, Text)),
+
+ (r'(boolean)(\s+\S+\s*)(0|1|"?(?:yes|no)"?)',
+ bygroups(Keyword, Text, Name.Variable)),
+
+ # Ideally processing of the number would happend in the 'number'
+ # but that doesn't seem to work
+ (r'(real|natural|positive|integer)([ \t]+\S+[ \t]*)([+-]?)(\d+(?:\.\d*)?'
+ r'(?:[eE][-+]?\d+)?%?)',
+ bygroups(Keyword, Text, Operator, Number)),
+
+ (r'(comment)(\s+)',
+ bygroups(Keyword, Text), 'string_unquoted'),
+
+ (r'\bendform\b', Keyword, '#pop'),
+ ]
+ }
diff --git a/pygments/lexers/prolog.py b/pygments/lexers/prolog.py
index 2b1c7634..7d32d7f6 100644
--- a/pygments/lexers/prolog.py
+++ b/pygments/lexers/prolog.py
@@ -155,11 +155,11 @@ class LogtalkLexer(RegexLexer):
# Term creation and decomposition
(r'(functor|arg|copy_term|numbervars|term_variables)(?=[(])', Keyword),
# Evaluable functors
- (r'(rem|m(ax|in|od)|abs|sign)(?=[(])', Keyword),
+ (r'(div|rem|m(ax|in|od)|abs|sign)(?=[(])', Keyword),
(r'float(_(integer|fractional)_part)?(?=[(])', Keyword),
- (r'(floor|truncate|round|ceiling)(?=[(])', Keyword),
+ (r'(floor|t(an|runcate)|round|ceiling)(?=[(])', Keyword),
# Other arithmetic functors
- (r'(cos|a(cos|sin|tan)|exp|log|s(in|qrt))(?=[(])', Keyword),
+ (r'(cos|a(cos|sin|tan|tan2)|exp|log|s(in|qrt)|xor)(?=[(])', Keyword),
# Term testing
(r'(var|atom(ic)?|integer|float|c(allable|ompound)|n(onvar|umber)|'
r'ground|acyclic_term)(?=[(])', Keyword),
@@ -212,7 +212,7 @@ class LogtalkLexer(RegexLexer):
(r'(==|\\==|@=<|@<|@>=|@>)', Operator),
# Evaluable functors
(r'(//|[-+*/])', Operator),
- (r'\b(e|pi|mod|rem)\b', Operator),
+ (r'\b(e|pi|div|mod|rem)\b', Operator),
# Other arithemtic functors
(r'\b\*\*\b', Operator),
# DCG rules
diff --git a/pygments/lexers/python.py b/pygments/lexers/python.py
index ea97b855..dee8e6c7 100644
--- a/pygments/lexers/python.py
+++ b/pygments/lexers/python.py
@@ -35,6 +35,19 @@ class PythonLexer(RegexLexer):
filenames = ['*.py', '*.pyw', '*.sc', 'SConstruct', 'SConscript', '*.tac', '*.sage']
mimetypes = ['text/x-python', 'application/x-python']
+ def innerstring_rules(ttype):
+ return [
+ # the old style '%s' % (...) string formatting
+ (r'%(\(\w+\))?[-#0 +]*([0-9]+|[*])?(\.([0-9]+|[*]))?'
+ '[hlL]?[diouxXeEfFgGcrs%]', String.Interpol),
+ # backslashes, quotes and formatting signs must be parsed one at a time
+ (r'[^\\\'"%\n]+', ttype),
+ (r'[\'"\\]', ttype),
+ # unhandled string formatting sign
+ (r'%', ttype),
+ # newlines are an error (use "nl" state)
+ ]
+
tokens = {
'root': [
(r'\n', Text),
@@ -57,14 +70,14 @@ class PythonLexer(RegexLexer):
'import'),
include('builtins'),
include('backtick'),
- ('(?:[rR]|[uU][rR]|[rR][uU])"""', String, 'tdqs'),
- ("(?:[rR]|[uU][rR]|[rR][uU])'''", String, 'tsqs'),
- ('(?:[rR]|[uU][rR]|[rR][uU])"', String, 'dqs'),
- ("(?:[rR]|[uU][rR]|[rR][uU])'", String, 'sqs'),
- ('[uU]?"""', String, combined('stringescape', 'tdqs')),
- ("[uU]?'''", String, combined('stringescape', 'tsqs')),
- ('[uU]?"', String, combined('stringescape', 'dqs')),
- ("[uU]?'", String, combined('stringescape', 'sqs')),
+ ('(?:[rR]|[uU][rR]|[rR][uU])"""', String.Double, 'tdqs'),
+ ("(?:[rR]|[uU][rR]|[rR][uU])'''", String.Single, 'tsqs'),
+ ('(?:[rR]|[uU][rR]|[rR][uU])"', String.Double, 'dqs'),
+ ("(?:[rR]|[uU][rR]|[rR][uU])'", String.Single, 'sqs'),
+ ('[uU]?"""', String.Double, combined('stringescape', 'tdqs')),
+ ("[uU]?'''", String.Single, combined('stringescape', 'tsqs')),
+ ('[uU]?"', String.Double, combined('stringescape', 'dqs')),
+ ("[uU]?'", String.Single, combined('stringescape', 'sqs')),
include('name'),
include('numbers'),
],
@@ -155,39 +168,27 @@ class PythonLexer(RegexLexer):
(r'\\([\\abfnrtv"\']|\n|N\{.*?\}|u[a-fA-F0-9]{4}|'
r'U[a-fA-F0-9]{8}|x[a-fA-F0-9]{2}|[0-7]{1,3})', String.Escape)
],
- 'strings': [
- # the old style '%s' % (...) string formatting
- (r'%(\(\w+\))?[-#0 +]*([0-9]+|[*])?(\.([0-9]+|[*]))?'
- '[hlL]?[diouxXeEfFgGcrs%]', String.Interpol),
- # backslashes, quotes and formatting signs must be parsed one at a time
- (r'[^\\\'"%\n]+', String),
- (r'[\'"\\]', String),
- # unhandled string formatting sign
- (r'%', String)
- # newlines are an error (use "nl" state)
- ],
- 'nl': [
- (r'\n', String)
- ],
+ 'strings-single': innerstring_rules(String.Single),
+ 'strings-double': innerstring_rules(String.Double),
'dqs': [
- (r'"', String, '#pop'),
+ (r'"', String.Double, '#pop'),
(r'\\\\|\\"|\\\n', String.Escape), # included here for raw strings
- include('strings')
+ include('strings-double')
],
'sqs': [
- (r"'", String, '#pop'),
+ (r"'", String.Single, '#pop'),
(r"\\\\|\\'|\\\n", String.Escape), # included here for raw strings
- include('strings')
+ include('strings-single')
],
'tdqs': [
- (r'"""', String, '#pop'),
- include('strings'),
- include('nl')
+ (r'"""', String.Double, '#pop'),
+ include('strings-double'),
+ (r'\n', String.Double)
],
'tsqs': [
- (r"'''", String, '#pop'),
- include('strings'),
- include('nl')
+ (r"'''", String.Single, '#pop'),
+ include('strings-single'),
+ (r'\n', String.Single)
],
}
@@ -418,8 +419,10 @@ class PythonTracebackLexer(RegexLexer):
tokens = {
'root': [
- (r'^Traceback \(most recent call last\):\n',
- Generic.Traceback, 'intb'),
+ # Cover both (most recent call last) and (innermost last)
+ # The optional ^C allows us to catch keyboard interrupt signals.
+ (r'^(\^C)?(Traceback.*\n)',
+ bygroups(Text, Generic.Traceback), 'intb'),
# SyntaxError starts with this.
(r'^(?= File "[^"]+", line \d+)', Generic.Traceback, 'intb'),
(r'^.*\n', Other),
@@ -549,7 +552,7 @@ class CythonLexer(RegexLexer):
'min', 'next', 'object', 'oct', 'open', 'ord', 'pow', 'property',
'range', 'raw_input', 'reduce', 'reload', 'repr', 'reversed',
'round', 'set', 'setattr', 'slice', 'sorted', 'staticmethod',
- 'str', 'sum', 'super', 'tuple', 'type', 'unichr', 'unicode',
+ 'str', 'sum', 'super', 'tuple', 'type', 'unichr', 'unicode', 'unsigned',
'vars', 'xrange', 'zip'), prefix=r'(?<!\.)', suffix=r'\b'),
Name.Builtin),
(r'(?<!\.)(self|None|Ellipsis|NotImplemented|False|True|NULL'
@@ -557,13 +560,14 @@ class CythonLexer(RegexLexer):
(words((
'ArithmeticError', 'AssertionError', 'AttributeError',
'BaseException', 'DeprecationWarning', 'EOFError', 'EnvironmentError',
- 'Exception', 'FloatingPointError', 'FutureWarning', 'GeneratorExit', 'IOError',
- 'ImportError', 'ImportWarning', 'IndentationError', 'IndexError', 'KeyError',
- 'KeyboardInterrupt', 'LookupError', 'MemoryError', 'NameError',
- 'NotImplemented', 'NotImplementedError', 'OSError', 'OverflowError',
- 'OverflowWarning', 'PendingDeprecationWarning', 'ReferenceError',
- 'RuntimeError', 'RuntimeWarning', 'StandardError', 'StopIteration',
- 'SyntaxError', 'SyntaxWarning', 'SystemError', 'SystemExit', 'TabError',
+ 'Exception', 'FloatingPointError', 'FutureWarning', 'GeneratorExit',
+ 'IOError', 'ImportError', 'ImportWarning', 'IndentationError',
+ 'IndexError', 'KeyError', 'KeyboardInterrupt', 'LookupError',
+ 'MemoryError', 'NameError', 'NotImplemented', 'NotImplementedError',
+ 'OSError', 'OverflowError', 'OverflowWarning',
+ 'PendingDeprecationWarning', 'ReferenceError', 'RuntimeError',
+ 'RuntimeWarning', 'StandardError', 'StopIteration', 'SyntaxError',
+ 'SyntaxWarning', 'SystemError', 'SystemExit', 'TabError',
'TypeError', 'UnboundLocalError', 'UnicodeDecodeError',
'UnicodeEncodeError', 'UnicodeError', 'UnicodeTranslateError',
'UnicodeWarning', 'UserWarning', 'ValueError', 'Warning',
diff --git a/pygments/lexers/qvt.py b/pygments/lexers/qvt.py
new file mode 100644
index 00000000..5bc61310
--- /dev/null
+++ b/pygments/lexers/qvt.py
@@ -0,0 +1,150 @@
+# -*- coding: utf-8 -*-
+"""
+ pygments.lexers.qvt
+ ~~~~~~~~~~~~~~~~~~~
+
+ Lexer for QVT Operational language.
+
+ :copyright: Copyright 2006-2015 by the Pygments team, see AUTHORS.
+ :license: BSD, see LICENSE for details.
+"""
+
+from pygments.lexer import RegexLexer, bygroups, include, combined
+from pygments.token import Text, Comment, Operator, Keyword, Punctuation, \
+ Name, String, Number
+
+__all__ = ['QVToLexer']
+
+
+class QVToLexer(RegexLexer):
+ """
+ For the `QVT Operational Mapping language <http://www.omg.org/spec/QVT/1.1/>`_.
+
+ Reference for implementing this: «Meta Object Facility (MOF) 2.0
+ Query/View/Transformation Specification», Version 1.1 - January 2011
+ (http://www.omg.org/spec/QVT/1.1/), see §8.4, «Concrete Syntax» in
+ particular.
+
+ Notable tokens assignments:
+
+ - Name.Class is assigned to the identifier following any of the following
+ keywords: metamodel, class, exception, primitive, enum, transformation
+ or library
+
+ - Name.Function is assigned to the names of mappings and queries
+
+ - Name.Builtin.Pseudo is assigned to the pre-defined variables 'this',
+ 'self' and 'result'.
+ """
+ # With obvious borrowings & inspiration from the Java, Python and C lexers
+
+ name = 'QVTO'
+ aliases = ['qvto', 'qvt']
+ filenames = ['*.qvto']
+
+ tokens = {
+ 'root': [
+ (r'\n', Text),
+ (r'[^\S\n]+', Text),
+ (r'(--|//)(\s*)(directive:)?(.*)$',
+ bygroups(Comment, Comment, Comment.Preproc, Comment)),
+ # Uncomment the following if you want to distinguish between
+ # '/*' and '/**', à la javadoc
+ #(r'/[*]{2}(.|\n)*?[*]/', Comment.Multiline),
+ (r'/[*](.|\n)*?[*]/', Comment.Multiline),
+ (r'\\\n', Text),
+ (r'(and|not|or|xor|##?)\b', Operator.Word),
+ (r'([:]{1-2}=|[-+]=)\b', Operator.Word),
+ (r'(@|<<|>>)\b', Keyword), # stereotypes
+ (r'!=|<>|=|==|!->|->|>=|<=|[.]{3}|[+/*%=<>&|.~]', Operator),
+ (r'[]{}:(),;[]', Punctuation),
+ (r'(true|false|unlimited|null)\b', Keyword.Constant),
+ (r'(this|self|result)\b', Name.Builtin.Pseudo),
+ (r'(var)\b', Keyword.Declaration),
+ (r'(from|import)\b', Keyword.Namespace, 'fromimport'),
+ (r'(metamodel|class|exception|primitive|enum|transformation|library)(\s+)([a-zA-Z0-9_]+)',
+ bygroups(Keyword.Word, Text, Name.Class)),
+ (r'(exception)(\s+)([a-zA-Z0-9_]+)', bygroups(Keyword.Word, Text, Name.Exception)),
+ (r'(main)\b', Name.Function),
+ (r'(mapping|helper|query)(\s+)', bygroups(Keyword.Declaration, Text), 'operation'),
+ (r'(assert)(\s+)\b', bygroups(Keyword, Text), 'assert'),
+ (r'(Bag|Collection|Dict|OrderedSet|Sequence|Set|Tuple|List)\b',
+ Keyword.Type),
+ include('keywords'),
+ ('"', String, combined('stringescape', 'dqs')),
+ ("'", String, combined('stringescape', 'sqs')),
+ include('name'),
+ include('numbers'),
+ # (r'([a-zA-Z_][a-zA-Z0-9_]*)(::)([a-zA-Z_][a-zA-Z0-9_]*)',
+ # bygroups(Text, Text, Text)),
+ ],
+
+ 'fromimport': [
+ (r'(?:[ \t]|\\\n)+', Text),
+ (r'[a-zA-Z_][a-zA-Z0-9_.]*', Name.Namespace),
+ (r'', Text, '#pop'),
+ ],
+
+ 'operation': [
+ (r'::', Text),
+ (r'(.*::)([a-zA-Z_][a-zA-Z0-9_]*)[ \t]*(\()', bygroups(Text,Name.Function, Text), '#pop')
+ ],
+
+ 'assert': [
+ (r'(warning|error|fatal)\b', Keyword, '#pop'),
+ (r'', Text, '#pop') # all else: go back
+ ],
+
+ 'keywords': [
+ (r'(abstract|access|any|assert|'
+ r'blackbox|break|case|collect|collectNested|'
+ r'collectOne|collectselect|collectselectOne|composes|'
+ r'compute|configuration|constructor|continue|datatype|'
+ r'default|derived|disjuncts|do|elif|else|end|'
+ r'endif|except|exists|extends|'
+ r'forAll|forEach|forOne|from|if|'
+ r'implies|in|inherits|init|inout|'
+ r'intermediate|invresolve|invresolveIn|invresolveone|'
+ r'invresolveoneIn|isUnique|iterate|late|let|'
+ r'literal|log|map|merges|'
+ r'modeltype|new|object|one|'
+ r'ordered|out|package|population|'
+ r'property|raise|readonly|references|refines|'
+ r'reject|resolve|resolveIn|resolveone|resolveoneIn|'
+ r'return|select|selectOne|sortedBy|static|switch|'
+ r'tag|then|try|typedef|'
+ r'unlimited|uses|when|where|while|with|'
+ r'xcollect|xmap|xselect)\b', Keyword),
+ ],
+
+ # There is no need to distinguish between String.Single and
+ # String.Double: 'strings' is factorised for 'dqs' and 'sqs'
+ 'strings': [
+ (r'[^\\\'"\n]+', String),
+ # quotes, percents and backslashes must be parsed one at a time
+ (r'[\'"\\]', String),
+ ],
+ 'stringescape': [
+ (r'\\([\\btnfr"\']|u[0-3][0-7]{2}|u[0-7]{1,2})', String.Escape)
+ ],
+ 'dqs': [ # double-quoted string
+ (r'"', String, '#pop'),
+ (r'\\\\|\\"', String.Escape),
+ include('strings')
+ ],
+ 'sqs': [ # single-quoted string
+ (r"'", String, '#pop'),
+ (r"\\\\|\\'", String.Escape),
+ include('strings')
+ ],
+ 'name': [
+ ('[a-zA-Z_][a-zA-Z0-9_]*', Name),
+ ],
+ # numbers: excerpt taken from the python lexer
+ 'numbers': [
+ (r'(\d+\.\d*|\d*\.\d+)([eE][+-]?[0-9]+)?', Number.Float),
+ (r'\d+[eE][+-]?[0-9]+', Number.Float),
+ (r'\d+', Number.Integer)
+ ],
+ }
+
diff --git a/pygments/lexers/rdf.py b/pygments/lexers/rdf.py
index fb14629a..cb634ee0 100644
--- a/pygments/lexers/rdf.py
+++ b/pygments/lexers/rdf.py
@@ -12,10 +12,10 @@
import re
from pygments.lexer import RegexLexer, bygroups, default
-from pygments.token import Keyword, Punctuation, String, Number, Operator, \
+from pygments.token import Keyword, Punctuation, String, Number, Operator, Generic, \
Whitespace, Name, Literal, Comment, Text
-__all__ = ['SparqlLexer']
+__all__ = ['SparqlLexer', 'TurtleLexer']
class SparqlLexer(RegexLexer):
@@ -29,39 +29,193 @@ class SparqlLexer(RegexLexer):
filenames = ['*.rq', '*.sparql']
mimetypes = ['application/sparql-query']
- flags = re.IGNORECASE
+ # terminal productions ::
+
+ PN_CHARS_BASE = (u'(?:[a-zA-Z'
+ u'\u00c0-\u00d6'
+ u'\u00d8-\u00f6'
+ u'\u00f8-\u02ff'
+ u'\u0370-\u037d'
+ u'\u037f-\u1fff'
+ u'\u200c-\u200d'
+ u'\u2070-\u218f'
+ u'\u2c00-\u2fef'
+ u'\u3001-\ud7ff'
+ u'\uf900-\ufdcf'
+ u'\ufdf0-\ufffd]|'
+ u'[^\u0000-\uffff]|'
+ u'[\ud800-\udbff][\udc00-\udfff])')
+
+ PN_CHARS_U = '(?:' + PN_CHARS_BASE + '|_)'
+
+ PN_CHARS = ('(?:' + PN_CHARS_U + r'|[\-0-9' +
+ u'\u00b7' +
+ u'\u0300-\u036f' +
+ u'\u203f-\u2040])')
+
+ HEX = '[0-9A-Fa-f]'
+
+ PN_LOCAL_ESC_CHARS = r'[ _~.\-!$&""()*+,;=/?#@%]'
+
+ IRIREF = r'<(?:[^<>"{}|^`\\\x00-\x20])*>'
+
+ BLANK_NODE_LABEL = '_:(?:' + PN_CHARS_U + '|[0-9])(?:(?:' + PN_CHARS + '|\.)*' + \
+ PN_CHARS + ')?'
+
+ PN_PREFIX = PN_CHARS_BASE + '(?:(?:' + PN_CHARS + '|\.)*' + PN_CHARS + ')?'
+
+ VARNAME = '(?:' + PN_CHARS_U + '|[0-9])(?:' + PN_CHARS_U + \
+ u'|[0-9\u00b7\u0300-\u036f\u203f-\u2040])*'
+
+ PERCENT = '%' + HEX + HEX
+
+ PN_LOCAL_ESC = r'\\' + PN_LOCAL_ESC_CHARS
+
+ PLX = '(?:' + PERCENT + ')|(?:' + PN_LOCAL_ESC + ')'
+
+ PN_LOCAL = ('(?:(?:' + PN_CHARS_U + '|[:0-9])|' + PLX + ')' +
+ '(?:(?:(?:' + PN_CHARS + '|[.:])|' + PLX + ')*(?:(?:' +
+ PN_CHARS + '|:)|' + PLX + '))?')
+
+ EXPONENT = r'[eE][+-]?\d+'
+
+ # Lexer token definitions ::
tokens = {
'root': [
- (r'\s+', Whitespace),
- (r'(select|construct|describe|ask|where|filter|group\s+by|minus|'
- r'distinct|reduced|from named|from|order\s+by|limit|'
+ (r'\s+', Text),
+ # keywords ::
+ (r'((?i)select|construct|describe|ask|where|filter|group\s+by|minus|'
+ r'distinct|reduced|from\s+named|from|order\s+by|desc|asc|limit|'
r'offset|bindings|load|clear|drop|create|add|move|copy|'
r'insert\s+data|delete\s+data|delete\s+where|delete|insert|'
- r'using named|using|graph|default|named|all|optional|service|'
- r'silent|bind|union|not in|in|as|a)', Keyword),
- (r'(prefix|base)(\s+)([a-z][\w-]*)(\s*)(\:)',
- bygroups(Keyword, Whitespace, Name.Namespace, Whitespace,
- Punctuation)),
- (r'\?[a-z_]\w*', Name.Variable),
- (r'<[^>]+>', Name.Label),
- (r'([a-z][\w-]*)(\:)([a-z][\w-]*)',
+ r'using\s+named|using|graph|default|named|all|optional|service|'
+ r'silent|bind|union|not\s+in|in|as|having|to|prefix|base)\b', Keyword),
+ (r'(a)\b', Keyword),
+ # IRIs ::
+ ('(' + IRIREF + ')', Name.Label),
+ # blank nodes ::
+ ('(' + BLANK_NODE_LABEL + ')', Name.Label),
+ # # variables ::
+ ('[?$]' + VARNAME, Name.Variable),
+ # prefixed names ::
+ (r'(' + PN_PREFIX + ')?(\:)(' + PN_LOCAL + ')?',
bygroups(Name.Namespace, Punctuation, Name.Tag)),
- (r'(str|lang|langmatches|datatype|bound|iri|uri|bnode|rand|abs|'
+ # function names ::
+ (r'((?i)str|lang|langmatches|datatype|bound|iri|uri|bnode|rand|abs|'
r'ceil|floor|round|concat|strlen|ucase|lcase|encode_for_uri|'
r'contains|strstarts|strends|strbefore|strafter|year|month|day|'
r'hours|minutes|seconds|timezone|tz|now|md5|sha1|sha256|sha384|'
r'sha512|coalesce|if|strlang|strdt|sameterm|isiri|isuri|isblank|'
- r'isliteral|isnumeric|regex|substr|replace|exists|not exists|'
+ r'isliteral|isnumeric|regex|substr|replace|exists|not\s+exists|'
r'count|sum|min|max|avg|sample|group_concat|separator)\b',
Name.Function),
- (r'(true|false)', Literal),
+ # boolean literals ::
+ (r'(true|false)', Keyword.Constant),
+ # double literals ::
+ (r'[+\-]?(\d+\.\d*' + EXPONENT + '|\.?\d+' + EXPONENT + ')', Number.Float),
+ # decimal literals ::
+ (r'[+\-]?(\d+\.\d*|\.\d+)', Number.Float),
+ # integer literals ::
+ (r'[+\-]?\d+', Number.Integer),
+ # operators ::
+ (r'(\|\||&&|=|\*|\-|\+|/|!=|<=|>=|!|<|>)', Operator),
+ # punctuation characters ::
+ (r'[(){}.;,:^\[\]]', Punctuation),
+ # line comments ::
+ (r'#[^\n]*', Comment),
+ # strings ::
+ (r'"""', String, 'triple-double-quoted-string'),
+ (r'"', String, 'single-double-quoted-string'),
+ (r"'''", String, 'triple-single-quoted-string'),
+ (r"'", String, 'single-single-quoted-string'),
+ ],
+ 'triple-double-quoted-string': [
+ (r'"""', String, 'end-of-string'),
+ (r'[^\\]+', String),
+ (r'\\', String, 'string-escape'),
+ ],
+ 'single-double-quoted-string': [
+ (r'"', String, 'end-of-string'),
+ (r'[^"\\\n]+', String),
+ (r'\\', String, 'string-escape'),
+ ],
+ 'triple-single-quoted-string': [
+ (r"'''", String, 'end-of-string'),
+ (r'[^\\]+', String),
+ (r'\\', String.Escape, 'string-escape'),
+ ],
+ 'single-single-quoted-string': [
+ (r"'", String, 'end-of-string'),
+ (r"[^'\\\n]+", String),
+ (r'\\', String, 'string-escape'),
+ ],
+ 'string-escape': [
+ (r'u' + HEX + '{4}', String.Escape, '#pop'),
+ (r'U' + HEX + '{8}', String.Escape, '#pop'),
+ (r'.', String.Escape, '#pop'),
+ ],
+ 'end-of-string': [
+ (r'(@)([a-zA-Z]+(?:-[a-zA-Z0-9]+)*)',
+ bygroups(Operator, Name.Function), '#pop:2'),
+ (r'\^\^', Operator, '#pop:2'),
+ default('#pop:2'),
+ ],
+ }
+
+
+class TurtleLexer(RegexLexer):
+ """
+ Lexer for `Turtle <http://www.w3.org/TR/turtle/>`_ data language.
+
+ .. versionadded:: 2.1
+ """
+ name = 'Turtle'
+ aliases = ['turtle']
+ filenames = ['*.ttl']
+ mimetypes = ['text/turtle', 'application/x-turtle']
+
+ flags = re.IGNORECASE
+
+ patterns = {
+ 'PNAME_NS': r'((?:[a-zA-Z][\w-]*)?\:)', # Simplified character range
+ 'IRIREF': r'(<[^<>"{}|^`\\\x00-\x20]*>)'
+ }
+
+ # PNAME_NS PN_LOCAL (with simplified character range)
+ patterns['PrefixedName'] = r'%(PNAME_NS)s([a-z][\w-]*)' % patterns
+
+ tokens = {
+ 'root': [
+ (r'\s+', Whitespace),
+
+ # Base / prefix
+ (r'(@base|BASE)(\s+)%(IRIREF)s(\s*)(\.?)' % patterns,
+ bygroups(Keyword, Whitespace, Name.Variable, Whitespace,
+ Punctuation)),
+ (r'(@prefix|PREFIX)(\s+)%(PNAME_NS)s(\s+)%(IRIREF)s(\s*)(\.?)' % patterns,
+ bygroups(Keyword, Whitespace, Name.Namespace, Whitespace,
+ Name.Variable, Whitespace, Punctuation)),
+
+ # The shorthand predicate 'a'
+ (r'(?<=\s)a(?=\s)', Keyword.Type),
+
+ # IRIREF
+ (r'%(IRIREF)s' % patterns, Name.Variable),
+
+ # PrefixedName
+ (r'%(PrefixedName)s' % patterns,
+ bygroups(Name.Namespace, Name.Tag)),
+
+ # Comment
+ (r'#[^\n]+', Comment),
+
+ (r'\b(true|false)\b', Literal),
(r'[+\-]?\d*\.\d+', Number.Float),
(r'[+\-]?\d*(:?\.\d+)?E[+\-]?\d+', Number.Float),
(r'[+\-]?\d+', Number.Integer),
- (r'(\|\||&&|=|\*|\-|\+|/)', Operator),
- (r'[(){}.;,:^]', Punctuation),
- (r'#[^\n]+', Comment),
+ (r'[\[\](){}.;,:^]', Punctuation),
+
(r'"""', String, 'triple-double-quoted-string'),
(r'"', String, 'single-double-quoted-string'),
(r"'''", String, 'triple-single-quoted-string'),
@@ -91,9 +245,15 @@ class SparqlLexer(RegexLexer):
(r'.', String, '#pop'),
],
'end-of-string': [
- (r'(@)([a-z]+(:?-[a-z0-9]+)*)',
- bygroups(Operator, Name.Function), '#pop:2'),
- (r'\^\^', Operator, '#pop:2'),
+
+ (r'(@)([a-zA-Z]+(:?-[a-zA-Z0-9]+)*)',
+ bygroups(Operator, Generic.Emph), '#pop:2'),
+
+ (r'(\^\^)%(IRIREF)s' % patterns, bygroups(Operator, Generic.Emph), '#pop:2'),
+ (r'(\^\^)%(PrefixedName)s' % patterns,
+ bygroups(Operator, Generic.Emph, Generic.Emph), '#pop:2'),
+
default('#pop:2'),
+
],
}
diff --git a/pygments/lexers/roboconf.py b/pygments/lexers/roboconf.py
new file mode 100644
index 00000000..59755a68
--- /dev/null
+++ b/pygments/lexers/roboconf.py
@@ -0,0 +1,82 @@
+# -*- coding: utf-8 -*-
+"""
+ pygments.lexers.roboconf
+ ~~~~~~~~~~~~~~~~~~~~~~~~
+
+ Lexers for Roboconf DSL.
+
+ :copyright: Copyright 2006-2015 by the Pygments team, see AUTHORS.
+ :license: BSD, see LICENSE for details.
+"""
+
+from pygments.lexer import RegexLexer, words, re
+from pygments.token import Text, Operator, Keyword, Name, Comment
+
+__all__ = ['RoboconfGraphLexer', 'RoboconfInstancesLexer']
+
+
+class RoboconfGraphLexer(RegexLexer):
+ """
+ Lexer for `Roboconf <http://roboconf.net/en/roboconf.html>`_ graph files.
+
+ .. versionadded:: 2.1
+ """
+ name = 'Roboconf Graph'
+ aliases = ['roboconf-graph']
+ filenames = ['*.graph']
+
+ flags = re.IGNORECASE | re.MULTILINE
+ tokens = {
+ 'root': [
+ # Skip white spaces
+ (r'\s+', Text),
+
+ # There is one operator
+ (r'=', Operator),
+
+ # Keywords
+ (words(('facet', 'import'), suffix=r'\s*\b', prefix=r'\b'), Keyword),
+ (words((
+ 'installer', 'extends', 'exports', 'imports', 'facets',
+ 'children'), suffix=r'\s*:?', prefix=r'\b'), Name),
+
+ # Comments
+ (r'#.*\n', Comment),
+
+ # Default
+ (r'[^#]', Text),
+ (r'.*\n', Text)
+ ]
+ }
+
+
+class RoboconfInstancesLexer(RegexLexer):
+ """
+ Lexer for `Roboconf <http://roboconf.net/en/roboconf.html>`_ instances files.
+
+ .. versionadded:: 2.1
+ """
+ name = 'Roboconf Instances'
+ aliases = ['roboconf-instances']
+ filenames = ['*.instances']
+
+ flags = re.IGNORECASE | re.MULTILINE
+ tokens = {
+ 'root': [
+
+ # Skip white spaces
+ (r'\s+', Text),
+
+ # Keywords
+ (words(('instance of', 'import'), suffix=r'\s*\b', prefix=r'\b'), Keyword),
+ (words(('name', 'count'), suffix=r's*:?', prefix=r'\b'), Name),
+ (r'\s*[\w.-]+\s*:', Name),
+
+ # Comments
+ (r'#.*\n', Comment),
+
+ # Default
+ (r'[^#]', Text),
+ (r'.*\n', Text)
+ ]
+ }
diff --git a/pygments/lexers/ruby.py b/pygments/lexers/ruby.py
index 63fed60f..e81d6ecf 100644
--- a/pygments/lexers/ruby.py
+++ b/pygments/lexers/ruby.py
@@ -36,7 +36,7 @@ class RubyLexer(ExtendedRegexLexer):
name = 'Ruby'
aliases = ['rb', 'ruby', 'duby']
filenames = ['*.rb', '*.rbw', 'Rakefile', '*.rake', '*.gemspec',
- '*.rbx', '*.duby']
+ '*.rbx', '*.duby', 'Gemfile']
mimetypes = ['text/x-ruby', 'application/x-ruby']
flags = re.DOTALL | re.MULTILINE
diff --git a/pygments/lexers/rust.py b/pygments/lexers/rust.py
index d8939678..5d1162b8 100644
--- a/pygments/lexers/rust.py
+++ b/pygments/lexers/rust.py
@@ -23,7 +23,7 @@ class RustLexer(RegexLexer):
.. versionadded:: 1.6
"""
name = 'Rust'
- filenames = ['*.rs']
+ filenames = ['*.rs', '*.rs.in']
aliases = ['rust']
mimetypes = ['text/rust']
diff --git a/pygments/lexers/scripting.py b/pygments/lexers/scripting.py
index 473ea7eb..4dd9594b 100644
--- a/pygments/lexers/scripting.py
+++ b/pygments/lexers/scripting.py
@@ -14,11 +14,12 @@ import re
from pygments.lexer import RegexLexer, include, bygroups, default, combined, \
words
from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
- Number, Punctuation, Error, Whitespace
+ Number, Punctuation, Error, Whitespace, Other
from pygments.util import get_bool_opt, get_list_opt, iteritems
__all__ = ['LuaLexer', 'MoonScriptLexer', 'ChaiscriptLexer', 'LSLLexer',
- 'AppleScriptLexer', 'RexxLexer', 'MOOCodeLexer', 'HybrisLexer']
+ 'AppleScriptLexer', 'RexxLexer', 'MOOCodeLexer', 'HybrisLexer',
+ 'EasytrieveLexer', 'JclLexer']
class LuaLexer(RegexLexer):
@@ -877,25 +878,29 @@ class HybrisLexer(RegexLexer):
bygroups(Keyword.Namespace, Text), 'import'),
(words((
'gc_collect', 'gc_mm_items', 'gc_mm_usage', 'gc_collect_threshold',
- 'urlencode', 'urldecode', 'base64encode', 'base64decode', 'sha1', 'crc32', 'sha2',
- 'md5', 'md5_file', 'acos', 'asin', 'atan', 'atan2', 'ceil', 'cos', 'cosh', 'exp',
- 'fabs', 'floor', 'fmod', 'log', 'log10', 'pow', 'sin', 'sinh', 'sqrt', 'tan', 'tanh',
- 'isint', 'isfloat', 'ischar', 'isstring', 'isarray', 'ismap', 'isalias', 'typeof',
- 'sizeof', 'toint', 'tostring', 'fromxml', 'toxml', 'binary', 'pack', 'load', 'eval',
- 'var_names', 'var_values', 'user_functions', 'dyn_functions', 'methods', 'call',
- 'call_method', 'mknod', 'mkfifo', 'mount', 'umount2', 'umount', 'ticks', 'usleep',
- 'sleep', 'time', 'strtime', 'strdate', 'dllopen', 'dlllink', 'dllcall', 'dllcall_argv',
- 'dllclose', 'env', 'exec', 'fork', 'getpid', 'wait', 'popen', 'pclose', 'exit', 'kill',
- 'pthread_create', 'pthread_create_argv', 'pthread_exit', 'pthread_join', 'pthread_kill',
- 'smtp_send', 'http_get', 'http_post', 'http_download', 'socket', 'bind', 'listen',
- 'accept', 'getsockname', 'getpeername', 'settimeout', 'connect', 'server', 'recv',
- 'send', 'close', 'print', 'println', 'printf', 'input', 'readline', 'serial_open',
- 'serial_fcntl', 'serial_get_attr', 'serial_get_ispeed', 'serial_get_ospeed',
- 'serial_set_attr', 'serial_set_ispeed', 'serial_set_ospeed', 'serial_write',
- 'serial_read', 'serial_close', 'xml_load', 'xml_parse', 'fopen', 'fseek', 'ftell',
- 'fsize', 'fread', 'fwrite', 'fgets', 'fclose', 'file', 'readdir', 'pcre_replace', 'size',
- 'pop', 'unmap', 'has', 'keys', 'values', 'length', 'find', 'substr', 'replace', 'split',
- 'trim', 'remove', 'contains', 'join'), suffix=r'\b'),
+ 'urlencode', 'urldecode', 'base64encode', 'base64decode', 'sha1', 'crc32',
+ 'sha2', 'md5', 'md5_file', 'acos', 'asin', 'atan', 'atan2', 'ceil', 'cos',
+ 'cosh', 'exp', 'fabs', 'floor', 'fmod', 'log', 'log10', 'pow', 'sin',
+ 'sinh', 'sqrt', 'tan', 'tanh', 'isint', 'isfloat', 'ischar', 'isstring',
+ 'isarray', 'ismap', 'isalias', 'typeof', 'sizeof', 'toint', 'tostring',
+ 'fromxml', 'toxml', 'binary', 'pack', 'load', 'eval', 'var_names',
+ 'var_values', 'user_functions', 'dyn_functions', 'methods', 'call',
+ 'call_method', 'mknod', 'mkfifo', 'mount', 'umount2', 'umount', 'ticks',
+ 'usleep', 'sleep', 'time', 'strtime', 'strdate', 'dllopen', 'dlllink',
+ 'dllcall', 'dllcall_argv', 'dllclose', 'env', 'exec', 'fork', 'getpid',
+ 'wait', 'popen', 'pclose', 'exit', 'kill', 'pthread_create',
+ 'pthread_create_argv', 'pthread_exit', 'pthread_join', 'pthread_kill',
+ 'smtp_send', 'http_get', 'http_post', 'http_download', 'socket', 'bind',
+ 'listen', 'accept', 'getsockname', 'getpeername', 'settimeout', 'connect',
+ 'server', 'recv', 'send', 'close', 'print', 'println', 'printf', 'input',
+ 'readline', 'serial_open', 'serial_fcntl', 'serial_get_attr',
+ 'serial_get_ispeed', 'serial_get_ospeed', 'serial_set_attr',
+ 'serial_set_ispeed', 'serial_set_ospeed', 'serial_write', 'serial_read',
+ 'serial_close', 'xml_load', 'xml_parse', 'fopen', 'fseek', 'ftell',
+ 'fsize', 'fread', 'fwrite', 'fgets', 'fclose', 'file', 'readdir',
+ 'pcre_replace', 'size', 'pop', 'unmap', 'has', 'keys', 'values',
+ 'length', 'find', 'substr', 'replace', 'split', 'trim', 'remove',
+ 'contains', 'join'), suffix=r'\b'),
Name.Builtin),
(words((
'MethodReference', 'Runner', 'Dll', 'Thread', 'Pipe', 'Process',
@@ -921,3 +926,278 @@ class HybrisLexer(RegexLexer):
(r'[\w.]+\*?', Name.Namespace, '#pop')
],
}
+
+
+class EasytrieveLexer(RegexLexer):
+ """
+ Easytrieve Plus is a programming language for extracting, filtering and
+ converting sequential data. Furthermore it can layout data for reports.
+ It is mainly used on mainframe platforms and can access several of the
+ mainframe's native file formats. It is somewhat comparable to awk.
+
+ .. versionadded:: 2.1
+ """
+ name = 'Easytrieve'
+ aliases = ['easytrieve']
+ filenames = ['*.ezt', '*.mac']
+ mimetypes = ['text/x-easytrieve']
+ flags = 0
+
+ # Note: We cannot use r'\b' at the start and end of keywords because
+ # Easytrieve Plus delimiter characters are:
+ #
+ # * space ( )
+ # * apostrophe (')
+ # * period (.)
+ # * comma (,)
+ # * paranthesis ( and )
+ # * colon (:)
+ #
+ # Additionally words end once a '*' appears, indicatins a comment.
+ _DELIMITERS = r' \'.,():\n'
+ _DELIMITERS_OR_COMENT = _DELIMITERS + '*'
+ _DELIMITER_PATTERN = '[' + _DELIMITERS + ']'
+ _DELIMITER_PATTERN_CAPTURE = '(' + _DELIMITER_PATTERN + ')'
+ _NON_DELIMITER_OR_COMMENT_PATTERN = '[^' + _DELIMITERS_OR_COMENT + ']'
+ _OPERATORS_PATTERN = u'[.+\\-/=\\[\\](){}<>;,&%¬]'
+ _KEYWORDS = [
+ 'AFTER-BREAK', 'AFTER-LINE', 'AFTER-SCREEN', 'AIM', 'AND', 'ATTR',
+ 'BEFORE', 'BEFORE-BREAK', 'BEFORE-LINE', 'BEFORE-SCREEN', 'BUSHU',
+ 'BY', 'CALL', 'CASE', 'CHECKPOINT', 'CHKP', 'CHKP-STATUS', 'CLEAR',
+ 'CLOSE', 'COL', 'COLOR', 'COMMIT', 'CONTROL', 'COPY', 'CURSOR', 'D',
+ 'DECLARE', 'DEFAULT', 'DEFINE', 'DELETE', 'DENWA', 'DISPLAY', 'DLI',
+ 'DO', 'DUPLICATE', 'E', 'ELSE', 'ELSE-IF', 'END', 'END-CASE',
+ 'END-DO', 'END-IF', 'END-PROC', 'ENDPAGE', 'ENDTABLE', 'ENTER', 'EOF',
+ 'EQ', 'ERROR', 'EXIT', 'EXTERNAL', 'EZLIB', 'F1', 'F10', 'F11', 'F12',
+ 'F13', 'F14', 'F15', 'F16', 'F17', 'F18', 'F19', 'F2', 'F20', 'F21',
+ 'F22', 'F23', 'F24', 'F25', 'F26', 'F27', 'F28', 'F29', 'F3', 'F30',
+ 'F31', 'F32', 'F33', 'F34', 'F35', 'F36', 'F4', 'F5', 'F6', 'F7',
+ 'F8', 'F9', 'FETCH', 'FILE-STATUS', 'FILL', 'FINAL', 'FIRST',
+ 'FIRST-DUP', 'FOR', 'GE', 'GET', 'GO', 'GOTO', 'GQ', 'GR', 'GT',
+ 'HEADING', 'HEX', 'HIGH-VALUES', 'IDD', 'IDMS', 'IF', 'IN', 'INSERT',
+ 'JUSTIFY', 'KANJI-DATE', 'KANJI-DATE-LONG', 'KANJI-TIME', 'KEY',
+ 'KEY-PRESSED', 'KOKUGO', 'KUN', 'LAST-DUP', 'LE', 'LEVEL', 'LIKE',
+ 'LINE', 'LINE-COUNT', 'LINE-NUMBER', 'LINK', 'LIST', 'LOW-VALUES',
+ 'LQ', 'LS', 'LT', 'MACRO', 'MASK', 'MATCHED', 'MEND', 'MESSAGE',
+ 'MOVE', 'MSTART', 'NE', 'NEWPAGE', 'NOMASK', 'NOPRINT', 'NOT',
+ 'NOTE', 'NOVERIFY', 'NQ', 'NULL', 'OF', 'OR', 'OTHERWISE', 'PA1',
+ 'PA2', 'PA3', 'PAGE-COUNT', 'PAGE-NUMBER', 'PARM-REGISTER',
+ 'PATH-ID', 'PATTERN', 'PERFORM', 'POINT', 'POS', 'PRIMARY', 'PRINT',
+ 'PROCEDURE', 'PROGRAM', 'PUT', 'READ', 'RECORD', 'RECORD-COUNT',
+ 'RECORD-LENGTH', 'REFRESH', 'RELEASE', 'RENUM', 'REPEAT', 'REPORT',
+ 'REPORT-INPUT', 'RESHOW', 'RESTART', 'RETRIEVE', 'RETURN-CODE',
+ 'ROLLBACK', 'ROW', 'S', 'SCREEN', 'SEARCH', 'SECONDARY', 'SELECT',
+ 'SEQUENCE', 'SIZE', 'SKIP', 'SOKAKU', 'SORT', 'SQL', 'STOP', 'SUM',
+ 'SYSDATE', 'SYSDATE-LONG', 'SYSIN', 'SYSIPT', 'SYSLST', 'SYSPRINT',
+ 'SYSSNAP', 'SYSTIME', 'TALLY', 'TERM-COLUMNS', 'TERM-NAME',
+ 'TERM-ROWS', 'TERMINATION', 'TITLE', 'TO', 'TRANSFER', 'TRC',
+ 'UNIQUE', 'UNTIL', 'UPDATE', 'UPPERCASE', 'USER', 'USERID', 'VALUE',
+ 'VERIFY', 'W', 'WHEN', 'WHILE', 'WORK', 'WRITE', 'X', 'XDM', 'XRST'
+ ]
+
+ tokens = {
+ 'root': [
+ (r'\*.*\n', Comment.Single),
+ (r'\n+', Whitespace),
+ # Macro argument
+ (r'&' + _NON_DELIMITER_OR_COMMENT_PATTERN + r'+\.', Name.Variable,
+ 'after_macro_argument'),
+ # Macro call
+ (r'%' + _NON_DELIMITER_OR_COMMENT_PATTERN + r'+', Name.Variable),
+ (r'(FILE|MACRO|REPORT)(\s+)',
+ bygroups(Keyword.Declaration, Whitespace), 'after_declaration'),
+ (r'(JOB|PARM)' + r'(' + _DELIMITER_PATTERN + r')',
+ bygroups(Keyword.Declaration, Operator)),
+ (words(_KEYWORDS, suffix=_DELIMITER_PATTERN_CAPTURE),
+ bygroups(Keyword.Reserved, Operator)),
+ (_OPERATORS_PATTERN, Operator),
+ # Procedure declaration
+ (r'(' + _NON_DELIMITER_OR_COMMENT_PATTERN + r'+)(\s*)(\.?)(\s*)(PROC)(\s*\n)',
+ bygroups(Name.Function, Whitespace, Operator, Whitespace,
+ Keyword.Declaration, Whitespace)),
+ (r'[0-9]+\.[0-9]*', Number.Float),
+ (r'[0-9]+', Number.Integer),
+ (r"'(''|[^'])*'", String),
+ (r'\s+', Whitespace),
+ # Everything else just belongs to a name
+ (_NON_DELIMITER_OR_COMMENT_PATTERN + r'+', Name)
+ ],
+ 'after_declaration': [
+ (_NON_DELIMITER_OR_COMMENT_PATTERN + r'+', Name.Function),
+ ('', Whitespace, '#pop')
+ ],
+ 'after_macro_argument': [
+ (r'\*.*\n', Comment.Single, '#pop'),
+ (r'\s+', Whitespace, '#pop'),
+ (_OPERATORS_PATTERN, Operator, '#pop'),
+ (r"'(''|[^'])*'", String, '#pop'),
+ # Everything else just belongs to a name
+ (_NON_DELIMITER_OR_COMMENT_PATTERN + r'+', Name)
+ ],
+ }
+ _COMMENT_LINE_REGEX = re.compile(r'^\s*\*')
+ _MACRO_HEADER_REGEX = re.compile(r'^\s*MACRO')
+
+ def analyse_text(text):
+ """
+ Perform a structural analysis for basic Easytrieve constructs.
+ """
+ result = 0.0
+ lines = text.split('\n')
+ hasEndProc = False
+ hasHeaderComment = False
+ hasFile = False
+ hasJob = False
+ hasProc = False
+ hasParm = False
+ hasReport = False
+
+ def isCommentLine(line):
+ return EasytrieveLexer._COMMENT_LINE_REGEX.match(lines[0]) is not None
+
+ def isEmptyLine(line):
+ return not bool(line.strip())
+
+ # Remove possible empty lines and header comments.
+ while lines and (isEmptyLine(lines[0]) or isCommentLine(lines[0])):
+ if not isEmptyLine(lines[0]):
+ hasHeaderComment = True
+ del lines[0]
+
+ if EasytrieveLexer._MACRO_HEADER_REGEX.match(lines[0]):
+ # Looks like an Easytrieve macro.
+ result = 0.4
+ if hasHeaderComment:
+ result += 0.4
+ else:
+ # Scan the source for lines starting with indicators.
+ for line in lines:
+ words = line.split()
+ if (len(words) >= 2):
+ firstWord = words[0]
+ if not hasReport:
+ if not hasJob:
+ if not hasFile:
+ if not hasParm:
+ if firstWord == 'PARM':
+ hasParm = True
+ if firstWord == 'FILE':
+ hasFile = True
+ if firstWord == 'JOB':
+ hasJob = True
+ elif firstWord == 'PROC':
+ hasProc = True
+ elif firstWord == 'END-PROC':
+ hasEndProc = True
+ elif firstWord == 'REPORT':
+ hasReport = True
+
+ # Weight the findings.
+ if hasJob and (hasProc == hasEndProc):
+ if hasHeaderComment:
+ result += 0.1
+ if hasParm:
+ if hasProc:
+ # Found PARM, JOB and PROC/END-PROC:
+ # pretty sure this is Easytrieve.
+ result += 0.8
+ else:
+ # Found PARAM and JOB: probably this is Easytrieve
+ result += 0.5
+ else:
+ # Found JOB and possibly other keywords: might be Easytrieve
+ result += 0.11
+ if hasParm:
+ # Note: PARAM is not a proper English word, so this is
+ # regarded a much better indicator for Easytrieve than
+ # the other words.
+ result += 0.2
+ if hasFile:
+ result += 0.01
+ if hasReport:
+ result += 0.01
+ assert 0.0 <= result <= 1.0
+ return result
+
+
+class JclLexer(RegexLexer):
+ """
+ `Job Control Language (JCL) <http://publibz.boulder.ibm.com/cgi-bin/bookmgr_OS390/BOOKS/IEA2B570/CCONTENTS>`_
+ is a scripting language used on mainframe platforms to instruct the system
+ on how to run a batch job or start a subsystem. It is somewhat
+ comparable to MS DOS batch and Unix shell scripts.
+
+ .. versionadded:: 2.1
+ """
+ name = 'JCL'
+ aliases = ['jcl']
+ filenames = ['*.jcl']
+ mimetypes = ['text/x-jcl']
+ flags = re.IGNORECASE
+
+ tokens = {
+ 'root': [
+ (r'//\*.*\n', Comment.Single),
+ (r'//', Keyword.Pseudo, 'statement'),
+ (r'/\*', Keyword.Pseudo, 'jes2_statement'),
+ # TODO: JES3 statement
+ (r'.*\n', Other) # Input text or inline code in any language.
+ ],
+ 'statement': [
+ (r'\s*\n', Whitespace, '#pop'),
+ (r'([a-z][a-z_0-9]*)(\s+)(exec|job)(\s*)',
+ bygroups(Name.Label, Whitespace, Keyword.Reserved, Whitespace),
+ 'option'),
+ (r'[a-z][a-z_0-9]*', Name.Variable, 'statement_command'),
+ (r'\s+', Whitespace, 'statement_command'),
+ ],
+ 'statement_command': [
+ (r'\s+(command|cntl|dd|endctl|endif|else|include|jcllib|'
+ r'output|pend|proc|set|then|xmit)\s+', Keyword.Reserved, 'option'),
+ include('option')
+ ],
+ 'jes2_statement': [
+ (r'\s*\n', Whitespace, '#pop'),
+ (r'\$', Keyword, 'option'),
+ (r'\b(jobparam|message|netacct|notify|output|priority|route|'
+ r'setup|signoff|xeq|xmit)\b', Keyword, 'option'),
+ ],
+ 'option': [
+ # (r'\n', Text, 'root'),
+ (r'\*', Name.Builtin),
+ (r'[\[\](){}<>;,]', Punctuation),
+ (r'[-+*/=&%]', Operator),
+ (r'[a-z_][a-z_0-9]*', Name),
+ (r'[0-9]+\.[0-9]*', Number.Float),
+ (r'\.[0-9]+', Number.Float),
+ (r'[0-9]+', Number.Integer),
+ (r"'", String, 'option_string'),
+ (r'[ \t]+', Whitespace, 'option_comment'),
+ (r'\.', Punctuation),
+ ],
+ 'option_string': [
+ (r"(\n)(//)", bygroups(Text, Keyword.Pseudo)),
+ (r"''", String),
+ (r"[^']", String),
+ (r"'", String, '#pop'),
+ ],
+ 'option_comment': [
+ # (r'\n', Text, 'root'),
+ (r'.+', Comment.Single),
+ ]
+ }
+
+ _JOB_HEADER_PATTERN = re.compile(r'^//[a-z#$@][a-z0-9#$@]{0,7}\s+job(\s+.*)?$',
+ re.IGNORECASE)
+
+ def analyse_text(text):
+ """
+ Recognize JCL job by header.
+ """
+ result = 0.0
+ lines = text.split('\n')
+ if len(lines) > 0:
+ if JclLexer._JOB_HEADER_PATTERN.match(lines[0]):
+ result = 1.0
+ assert 0.0 <= result <= 1.0
+ return result
diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py
index 1e3640bf..dc23d018 100644
--- a/pygments/lexers/shell.py
+++ b/pygments/lexers/shell.py
@@ -11,16 +11,18 @@
import re
-from pygments.lexer import Lexer, RegexLexer, do_insertions, bygroups, include
+from pygments.lexer import Lexer, RegexLexer, do_insertions, bygroups, \
+ include, default, this, using, words
from pygments.token import Punctuation, \
- Text, Comment, Operator, Keyword, Name, String, Number, Generic
+ Text, Comment, Operator, Keyword, Name, String, Number, Generic
from pygments.util import shebang_matches
__all__ = ['BashLexer', 'BashSessionLexer', 'TcshLexer', 'BatchLexer',
- 'PowerShellLexer', 'ShellSessionLexer']
+ 'MSDOSSessionLexer', 'PowerShellLexer',
+ 'PowerShellSessionLexer', 'TcshSessionLexer', 'FishShellLexer']
-line_re = re.compile('.*?\n')
+line_re = re.compile('.*?\n')
class BashLexer(RegexLexer):
@@ -47,7 +49,9 @@ class BashLexer(RegexLexer):
(r'\$\(\(', Keyword, 'math'),
(r'\$\(', Keyword, 'paren'),
(r'\$\{#?', String.Interpol, 'curly'),
- (r'\$(\w+|.)', Name.Variable),
+ (r'\$[a-fA-F_][a-fA-F0-9_]*', Name.Variable), # user variable
+ (r'\$(?:\d+|[#$?!_*@-])', Name.Variable), # builtin
+ (r'\$', Text),
],
'basic': [
(r'\b(if|fi|else|while|do|done|for|then|return|function|case|'
@@ -58,7 +62,7 @@ class BashLexer(RegexLexer):
r'export|false|fc|fg|getopts|hash|help|history|jobs|kill|let|'
r'local|logout|popd|printf|pushd|pwd|read|readonly|set|shift|'
r'shopt|source|suspend|test|time|times|trap|true|type|typeset|'
- r'ulimit|umask|unalias|unset|wait)\s*\b(?!\.)',
+ r'ulimit|umask|unalias|unset|wait)(?=[\s)`])',
Name.Builtin),
(r'\A#!.+\n', Comment.Hashbang),
(r'#.*\n', Comment.Single),
@@ -120,20 +124,14 @@ class BashLexer(RegexLexer):
return 0.2
-class BashSessionLexer(Lexer):
+class ShellSessionBaseLexer(Lexer):
"""
- Lexer for simplistic shell sessions.
+ Base lexer for simplistic shell sessions.
- .. versionadded:: 1.1
+ .. versionadded:: 2.1
"""
-
- name = 'Bash Session'
- aliases = ['console']
- filenames = ['*.sh-session']
- mimetypes = ['application/x-shell-session']
-
def get_tokens_unprocessed(self, text):
- bashlexer = BashLexer(**self.options)
+ innerlexer = self._innerLexerCls(**self.options)
pos = 0
curcode = ''
@@ -141,8 +139,7 @@ class BashSessionLexer(Lexer):
for match in line_re.finditer(text):
line = match.group()
- m = re.match(r'^((?:\(\S+\))?(?:|sh\S*?|\w+\S+[@:]\S+(?:\s+\S+)'
- r'?|\[\S+[@:][^\n]+\].+)[$#%])(.*\n?)' , line)
+ m = re.match(self._ps1rgx, line)
if m:
# To support output lexers (say diff output), the output
# needs to be broken by prompts whenever the output lexer
@@ -153,13 +150,13 @@ class BashSessionLexer(Lexer):
insertions.append((len(curcode),
[(0, Generic.Prompt, m.group(1))]))
curcode += m.group(2)
- elif line.startswith('>'):
+ elif line.startswith(self._ps2):
insertions.append((len(curcode),
- [(0, Generic.Prompt, line[:1])]))
- curcode += line[1:]
+ [(0, Generic.Prompt, line[:len(self._ps2)])]))
+ curcode += line[len(self._ps2):]
else:
if insertions:
- toks = bashlexer.get_tokens_unprocessed(curcode)
+ toks = innerlexer.get_tokens_unprocessed(curcode)
for i, t, v in do_insertions(insertions, toks):
yield pos+i, t, v
yield match.start(), Generic.Output, line
@@ -167,54 +164,27 @@ class BashSessionLexer(Lexer):
curcode = ''
if insertions:
for i, t, v in do_insertions(insertions,
- bashlexer.get_tokens_unprocessed(curcode)):
+ innerlexer.get_tokens_unprocessed(curcode)):
yield pos+i, t, v
-class ShellSessionLexer(Lexer):
+class BashSessionLexer(ShellSessionBaseLexer):
"""
- Lexer for shell sessions that works with different command prompts
+ Lexer for simplistic shell sessions.
- .. versionadded:: 1.6
+ .. versionadded:: 1.1
"""
- name = 'Shell Session'
- aliases = ['shell-session']
- filenames = ['*.shell-session']
- mimetypes = ['application/x-sh-session']
-
- def get_tokens_unprocessed(self, text):
- bashlexer = BashLexer(**self.options)
+ name = 'Bash Session'
+ aliases = ['console', 'shell-session']
+ filenames = ['*.sh-session', '*.shell-session']
+ mimetypes = ['application/x-shell-session', 'application/x-sh-session']
- pos = 0
- curcode = ''
- insertions = []
-
- for match in line_re.finditer(text):
- line = match.group()
- m = re.match(r'^((?:\[?\S+@[^$#%]+\]?\s*)[$#%])(.*\n?)', line)
- if m:
- # To support output lexers (say diff output), the output
- # needs to be broken by prompts whenever the output lexer
- # changes.
- if not insertions:
- pos = match.start()
-
- insertions.append((len(curcode),
- [(0, Generic.Prompt, m.group(1))]))
- curcode += m.group(2)
- else:
- if insertions:
- toks = bashlexer.get_tokens_unprocessed(curcode)
- for i, t, v in do_insertions(insertions, toks):
- yield pos+i, t, v
- yield match.start(), Generic.Output, line
- insertions = []
- curcode = ''
- if insertions:
- for i, t, v in do_insertions(insertions,
- bashlexer.get_tokens_unprocessed(curcode)):
- yield pos+i, t, v
+ _innerLexerCls = BashLexer
+ _ps1rgx = \
+ r'^((?:(?:\[.*?\])|(?:\(\S+\))?(?:| |sh\S*?|\w+\S+[@:]\S+(?:\s+\S+)' \
+ r'?|\[\S+[@:][^\n]+\].+))\s*[$#%])(.*\n?)'
+ _ps2 = '>'
class BatchLexer(RegexLexer):
@@ -230,49 +200,317 @@ class BatchLexer(RegexLexer):
flags = re.MULTILINE | re.IGNORECASE
+ _nl = r'\n\x1a'
+ _punct = r'&<>|'
+ _ws = r'\t\v\f\r ,;=\xa0'
+ _space = r'(?:(?:(?:\^[%s])?[%s])+)' % (_nl, _ws)
+ _keyword_terminator = (r'(?=(?:\^[%s]?)?[%s+./:[\\\]]|[%s%s(])' %
+ (_nl, _ws, _nl, _punct))
+ _token_terminator = r'(?=\^?[%s]|[%s%s])' % (_ws, _punct, _nl)
+ _start_label = r'((?:(?<=^[^:])|^[^:]?)[%s]*)(:)' % _ws
+ _label = r'(?:(?:[^%s%s%s+:^]|\^[%s]?[\w\W])*)' % (_nl, _punct, _ws, _nl)
+ _label_compound = (r'(?:(?:[^%s%s%s+:^)]|\^[%s]?[^)])*)' %
+ (_nl, _punct, _ws, _nl))
+ _number = r'(?:-?(?:0[0-7]+|0x[\da-f]+|\d+)%s)' % _token_terminator
+ _opword = r'(?:equ|geq|gtr|leq|lss|neq)'
+ _string = r'(?:"[^%s"]*"?)' % _nl
+ _variable = (r'(?:(?:%%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|'
+ r'[^%%:%s]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%%%s^]|'
+ r'\^[^%%%s])[^=%s]*=(?:[^%%%s^]|\^[^%%%s])*)?)?%%))|'
+ r'(?:\^?![^!:%s]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:'
+ r'[^!%s^]|\^[^!%s])[^=%s]*=(?:[^!%s^]|\^[^!%s])*)?)?\^?!))' %
+ (_nl, _nl, _nl, _nl, _nl, _nl, _nl, _nl, _nl, _nl, _nl, _nl))
+ _core_token = r'(?:(?:(?:\^[%s]?)?[^%s%s%s])+)' % (_nl, _nl, _punct, _ws)
+ _core_token_compound = r'(?:(?:(?:\^[%s]?)?[^%s%s%s)])+)' % (_nl, _nl,
+ _punct, _ws)
+ _token = r'(?:[%s]+|%s)' % (_punct, _core_token)
+ _token_compound = r'(?:[%s]+|%s)' % (_punct, _core_token_compound)
+ _stoken = (r'(?:[%s]+|(?:%s|%s|%s)+)' %
+ (_punct, _string, _variable, _core_token))
+
+ def _make_begin_state(compound, _core_token=_core_token,
+ _core_token_compound=_core_token_compound,
+ _keyword_terminator=_keyword_terminator,
+ _nl=_nl, _punct=_punct, _string=_string,
+ _space=_space, _start_label=_start_label,
+ _stoken=_stoken, _token_terminator=_token_terminator,
+ _variable=_variable, _ws=_ws):
+ rest = '(?:%s|%s|[^"%%%s%s%s])*' % (_string, _variable, _nl, _punct,
+ ')' if compound else '')
+ rest_of_line = r'(?:(?:[^%s^]|\^[%s]?[\w\W])*)' % (_nl, _nl)
+ rest_of_line_compound = r'(?:(?:[^%s^)]|\^[%s]?[^)])*)' % (_nl, _nl)
+ set_space = r'((?:(?:\^[%s]?)?[^\S\n])*)' % _nl
+ suffix = ''
+ if compound:
+ _keyword_terminator = r'(?:(?=\))|%s)' % _keyword_terminator
+ _token_terminator = r'(?:(?=\))|%s)' % _token_terminator
+ suffix = '/compound'
+ return [
+ ((r'\)', Punctuation, '#pop') if compound else
+ (r'\)((?=\()|%s)%s' % (_token_terminator, rest_of_line),
+ Comment.Single)),
+ (r'(?=%s)' % _start_label, Text, 'follow%s' % suffix),
+ (_space, using(this, state='text')),
+ include('redirect%s' % suffix),
+ (r'[%s]+' % _nl, Text),
+ (r'\(', Punctuation, 'root/compound'),
+ (r'@+', Punctuation),
+ (r'((?:for|if|rem)(?:(?=(?:\^[%s]?)?/)|(?:(?!\^)|'
+ r'(?<=m))(?:(?=\()|%s)))(%s?%s?(?:\^[%s]?)?/(?:\^[%s]?)?\?)' %
+ (_nl, _token_terminator, _space,
+ _core_token_compound if compound else _core_token, _nl, _nl),
+ bygroups(Keyword, using(this, state='text')),
+ 'follow%s' % suffix),
+ (r'(goto%s)(%s(?:\^[%s]?)?/(?:\^[%s]?)?\?%s)' %
+ (_keyword_terminator, rest, _nl, _nl, rest),
+ bygroups(Keyword, using(this, state='text')),
+ 'follow%s' % suffix),
+ (words(('assoc', 'break', 'cd', 'chdir', 'cls', 'color', 'copy',
+ 'date', 'del', 'dir', 'dpath', 'echo', 'endlocal', 'erase',
+ 'exit', 'ftype', 'keys', 'md', 'mkdir', 'mklink', 'move',
+ 'path', 'pause', 'popd', 'prompt', 'pushd', 'rd', 'ren',
+ 'rename', 'rmdir', 'setlocal', 'shift', 'start', 'time',
+ 'title', 'type', 'ver', 'verify', 'vol'),
+ suffix=_keyword_terminator), Keyword, 'follow%s' % suffix),
+ (r'(call)(%s?)(:)' % _space,
+ bygroups(Keyword, using(this, state='text'), Punctuation),
+ 'call%s' % suffix),
+ (r'call%s' % _keyword_terminator, Keyword),
+ (r'(for%s(?!\^))(%s)(/f%s)' %
+ (_token_terminator, _space, _token_terminator),
+ bygroups(Keyword, using(this, state='text'), Keyword),
+ ('for/f', 'for')),
+ (r'(for%s(?!\^))(%s)(/l%s)' %
+ (_token_terminator, _space, _token_terminator),
+ bygroups(Keyword, using(this, state='text'), Keyword),
+ ('for/l', 'for')),
+ (r'for%s(?!\^)' % _token_terminator, Keyword, ('for2', 'for')),
+ (r'(goto%s)(%s?)(:?)' % (_keyword_terminator, _space),
+ bygroups(Keyword, using(this, state='text'), Punctuation),
+ 'label%s' % suffix),
+ (r'(if(?:(?=\()|%s)(?!\^))(%s?)((?:/i%s)?)(%s?)((?:not%s)?)(%s?)' %
+ (_token_terminator, _space, _token_terminator, _space,
+ _token_terminator, _space),
+ bygroups(Keyword, using(this, state='text'), Keyword,
+ using(this, state='text'), Keyword,
+ using(this, state='text')), ('(?', 'if')),
+ (r'rem(((?=\()|%s)%s?%s?.*|%s%s)' %
+ (_token_terminator, _space, _stoken, _keyword_terminator,
+ rest_of_line_compound if compound else rest_of_line),
+ Comment.Single, 'follow%s' % suffix),
+ (r'(set%s)%s(/a)' % (_keyword_terminator, set_space),
+ bygroups(Keyword, using(this, state='text'), Keyword),
+ 'arithmetic%s' % suffix),
+ (r'(set%s)%s((?:/p)?)%s((?:(?:(?:\^[%s]?)?[^"%s%s^=%s]|'
+ r'\^[%s]?[^"=])+)?)((?:(?:\^[%s]?)?=)?)' %
+ (_keyword_terminator, set_space, set_space, _nl, _nl, _punct,
+ ')' if compound else '', _nl, _nl),
+ bygroups(Keyword, using(this, state='text'), Keyword,
+ using(this, state='text'), using(this, state='variable'),
+ Punctuation),
+ 'follow%s' % suffix),
+ default('follow%s' % suffix)
+ ]
+
+ def _make_follow_state(compound, _label=_label,
+ _label_compound=_label_compound, _nl=_nl,
+ _space=_space, _start_label=_start_label,
+ _token=_token, _token_compound=_token_compound,
+ _ws=_ws):
+ suffix = '/compound' if compound else ''
+ state = []
+ if compound:
+ state.append((r'(?=\))', Text, '#pop'))
+ state += [
+ (r'%s([%s]*)(%s)(.*)' %
+ (_start_label, _ws, _label_compound if compound else _label),
+ bygroups(Text, Punctuation, Text, Name.Label, Comment.Single)),
+ include('redirect%s' % suffix),
+ (r'(?=[%s])' % _nl, Text, '#pop'),
+ (r'\|\|?|&&?', Punctuation, '#pop'),
+ include('text')
+ ]
+ return state
+
+ def _make_arithmetic_state(compound, _nl=_nl, _punct=_punct,
+ _string=_string, _variable=_variable, _ws=_ws):
+ op = r'=+\-*/!~'
+ state = []
+ if compound:
+ state.append((r'(?=\))', Text, '#pop'))
+ state += [
+ (r'0[0-7]+', Number.Oct),
+ (r'0x[\da-f]+', Number.Hex),
+ (r'\d+', Number.Integer),
+ (r'[(),]+', Punctuation),
+ (r'([%s]|%%|\^\^)+' % op, Operator),
+ (r'(%s|%s|(\^[%s]?)?[^()%s%%^"%s%s%s]|\^[%s%s]?%s)+' %
+ (_string, _variable, _nl, op, _nl, _punct, _ws, _nl, _ws,
+ r'[^)]' if compound else r'[\w\W]'),
+ using(this, state='variable')),
+ (r'(?=[\x00|&])', Text, '#pop'),
+ include('follow')
+ ]
+ return state
+
+ def _make_call_state(compound, _label=_label,
+ _label_compound=_label_compound):
+ state = []
+ if compound:
+ state.append((r'(?=\))', Text, '#pop'))
+ state.append((r'(:?)(%s)' % (_label_compound if compound else _label),
+ bygroups(Punctuation, Name.Label), '#pop'))
+ return state
+
+ def _make_label_state(compound, _label=_label,
+ _label_compound=_label_compound, _nl=_nl,
+ _punct=_punct, _string=_string, _variable=_variable):
+ state = []
+ if compound:
+ state.append((r'(?=\))', Text, '#pop'))
+ state.append((r'(%s?)((?:%s|%s|\^[%s]?%s|[^"%%^%s%s%s])*)' %
+ (_label_compound if compound else _label, _string,
+ _variable, _nl, r'[^)]' if compound else r'[\w\W]', _nl,
+ _punct, r')' if compound else ''),
+ bygroups(Name.Label, Comment.Single), '#pop'))
+ return state
+
+ def _make_redirect_state(compound,
+ _core_token_compound=_core_token_compound,
+ _nl=_nl, _punct=_punct, _stoken=_stoken,
+ _string=_string, _space=_space,
+ _variable=_variable, _ws=_ws):
+ stoken_compound = (r'(?:[%s]+|(?:%s|%s|%s)+)' %
+ (_punct, _string, _variable, _core_token_compound))
+ return [
+ (r'((?:(?<=[%s%s])\d)?)(>>?&|<&)([%s%s]*)(\d)' %
+ (_nl, _ws, _nl, _ws),
+ bygroups(Number.Integer, Punctuation, Text, Number.Integer)),
+ (r'((?:(?<=[%s%s])(?<!\^[%s])\d)?)(>>?|<)(%s?%s)' %
+ (_nl, _ws, _nl, _space, stoken_compound if compound else _stoken),
+ bygroups(Number.Integer, Punctuation, using(this, state='text')))
+ ]
+
tokens = {
- 'root': [
- # Lines can start with @ to prevent echo
- (r'^\s*@', Punctuation),
- (r'^(\s*)(rem\s.*)$', bygroups(Text, Comment)),
- (r'".*?"', String.Double),
- (r"'.*?'", String.Single),
- # If made more specific, make sure you still allow expansions
- # like %~$VAR:zlt
- (r'%%?[~$:\w]+%?', Name.Variable),
- (r'::.*', Comment), # Technically :: only works at BOL
- (r'\b(set)(\s+)(\w+)', bygroups(Keyword, Text, Name.Variable)),
- (r'\b(call)(\s+)(:\w+)', bygroups(Keyword, Text, Name.Label)),
- (r'\b(goto)(\s+)(\w+)', bygroups(Keyword, Text, Name.Label)),
- (r'\b(set|call|echo|on|off|endlocal|for|do|goto|if|pause|'
- r'setlocal|shift|errorlevel|exist|defined|cmdextversion|'
- r'errorlevel|else|cd|md|del|deltree|cls|choice)\b', Keyword),
- (r'\b(equ|neq|lss|leq|gtr|geq)\b', Operator),
- include('basic'),
- (r'.', Text),
+ 'root': _make_begin_state(False),
+ 'follow': _make_follow_state(False),
+ 'arithmetic': _make_arithmetic_state(False),
+ 'call': _make_call_state(False),
+ 'label': _make_label_state(False),
+ 'redirect': _make_redirect_state(False),
+ 'root/compound': _make_begin_state(True),
+ 'follow/compound': _make_follow_state(True),
+ 'arithmetic/compound': _make_arithmetic_state(True),
+ 'call/compound': _make_call_state(True),
+ 'label/compound': _make_label_state(True),
+ 'redirect/compound': _make_redirect_state(True),
+ 'variable-or-escape': [
+ (_variable, Name.Variable),
+ (r'%%%%|\^[%s]?(\^!|[\w\W])' % _nl, String.Escape)
],
- 'echo': [
- # Escapes only valid within echo args?
- (r'\^\^|\^<|\^>|\^\|', String.Escape),
- (r'\n', Text, '#pop'),
- include('basic'),
- (r'[^\'"^]+', Text),
+ 'string': [
+ (r'"', String.Double, '#pop'),
+ (_variable, Name.Variable),
+ (r'\^!|%%', String.Escape),
+ (r'[^"%%^%s]+|[%%^]' % _nl, String.Double),
+ default('#pop')
],
- 'basic': [
- (r'".*?"', String.Double),
- (r"'.*?'", String.Single),
- (r'`.*?`', String.Backtick),
- (r'-?\d+', Number),
- (r',', Punctuation),
- (r'=', Operator),
- (r'/\S+', Name),
- (r':\w+', Name.Label),
- (r'\w:\w+', Text),
- (r'([<>|])(\s*)(\w+)', bygroups(Punctuation, Text, Name)),
+ 'sqstring': [
+ include('variable-or-escape'),
+ (r'[^%]+|%', String.Single)
+ ],
+ 'bqstring': [
+ include('variable-or-escape'),
+ (r'[^%]+|%', String.Backtick)
+ ],
+ 'text': [
+ (r'"', String.Double, 'string'),
+ include('variable-or-escape'),
+ (r'[^"%%^%s%s%s\d)]+|.' % (_nl, _punct, _ws), Text)
],
+ 'variable': [
+ (r'"', String.Double, 'string'),
+ include('variable-or-escape'),
+ (r'[^"%%^%s]+|.' % _nl, Name.Variable)
+ ],
+ 'for': [
+ (r'(%s)(in)(%s)(\()' % (_space, _space),
+ bygroups(using(this, state='text'), Keyword,
+ using(this, state='text'), Punctuation), '#pop'),
+ include('follow')
+ ],
+ 'for2': [
+ (r'\)', Punctuation),
+ (r'(%s)(do%s)' % (_space, _token_terminator),
+ bygroups(using(this, state='text'), Keyword), '#pop'),
+ (r'[%s]+' % _nl, Text),
+ include('follow')
+ ],
+ 'for/f': [
+ (r'(")((?:%s|[^"])*?")([%s%s]*)(\))' % (_variable, _nl, _ws),
+ bygroups(String.Double, using(this, state='string'), Text,
+ Punctuation)),
+ (r'"', String.Double, ('#pop', 'for2', 'string')),
+ (r"('(?:%s|[\w\W])*?')([%s%s]*)(\))" % (_variable, _nl, _ws),
+ bygroups(using(this, state='sqstring'), Text, Punctuation)),
+ (r'(`(?:%s|[\w\W])*?`)([%s%s]*)(\))' % (_variable, _nl, _ws),
+ bygroups(using(this, state='bqstring'), Text, Punctuation)),
+ include('for2')
+ ],
+ 'for/l': [
+ (r'-?\d+', Number.Integer),
+ include('for2')
+ ],
+ 'if': [
+ (r'((?:cmdextversion|errorlevel)%s)(%s)(\d+)' %
+ (_token_terminator, _space),
+ bygroups(Keyword, using(this, state='text'),
+ Number.Integer), '#pop'),
+ (r'(defined%s)(%s)(%s)' % (_token_terminator, _space, _stoken),
+ bygroups(Keyword, using(this, state='text'),
+ using(this, state='variable')), '#pop'),
+ (r'(exist%s)(%s%s)' % (_token_terminator, _space, _stoken),
+ bygroups(Keyword, using(this, state='text')), '#pop'),
+ (r'(%s%s?)(==)(%s?%s)' % (_stoken, _space, _space, _stoken),
+ bygroups(using(this, state='text'), Operator,
+ using(this, state='text')), '#pop'),
+ (r'(%s%s)(%s)(%s%s)' % (_number, _space, _opword, _space, _number),
+ bygroups(using(this, state='arithmetic'), Operator.Word,
+ using(this, state='arithmetic')), '#pop'),
+ (r'(%s%s)(%s)(%s%s)' % (_stoken, _space, _opword, _space, _stoken),
+ bygroups(using(this, state='text'), Operator.Word,
+ using(this, state='text')), '#pop')
+ ],
+ '(?': [
+ (_space, using(this, state='text')),
+ (r'\(', Punctuation, ('#pop', 'else?', 'root/compound')),
+ default('#pop')
+ ],
+ 'else?': [
+ (_space, using(this, state='text')),
+ (r'else%s' % _token_terminator, Keyword, '#pop'),
+ default('#pop')
+ ]
}
+class MSDOSSessionLexer(ShellSessionBaseLexer):
+ """
+ Lexer for simplistic MSDOS sessions.
+
+ .. versionadded:: 2.1
+ """
+
+ name = 'MSDOS Session'
+ aliases = ['doscon']
+ filenames = []
+ mimetypes = []
+
+ _innerLexerCls = BatchLexer
+ _ps1rgx = r'^([^>]+>)(.*\n?)'
+ _ps2 = 'More? '
+
+
class TcshLexer(RegexLexer):
"""
Lexer for tcsh scripts.
@@ -341,6 +579,23 @@ class TcshLexer(RegexLexer):
}
+class TcshSessionLexer(ShellSessionBaseLexer):
+ """
+ Lexer for Tcsh sessions.
+
+ .. versionadded:: 2.1
+ """
+
+ name = 'Tcsh Session'
+ aliases = ['tcshcon']
+ filenames = []
+ mimetypes = []
+
+ _innerLexerCls = TcshLexer
+ _ps1rgx = r'^([^>]+>)(.*\n?)'
+ _ps2 = '? '
+
+
class PowerShellLexer(RegexLexer):
"""
For Windows PowerShell code.
@@ -349,7 +604,7 @@ class PowerShellLexer(RegexLexer):
"""
name = 'PowerShell'
aliases = ['powershell', 'posh', 'ps1', 'psm1']
- filenames = ['*.ps1','*.psm1']
+ filenames = ['*.ps1', '*.psm1']
mimetypes = ['text/x-powershell']
flags = re.DOTALL | re.IGNORECASE | re.MULTILINE
@@ -436,3 +691,93 @@ class PowerShellLexer(RegexLexer):
(r".", String.Heredoc),
]
}
+
+
+class PowerShellSessionLexer(ShellSessionBaseLexer):
+ """
+ Lexer for simplistic Windows PowerShell sessions.
+
+ .. versionadded:: 2.1
+ """
+
+ name = 'PowerShell Session'
+ aliases = ['ps1con']
+ filenames = []
+ mimetypes = []
+
+ _innerLexerCls = PowerShellLexer
+ _ps1rgx = r'^(PS [^>]+> )(.*\n?)'
+ _ps2 = '>> '
+
+
+class FishShellLexer(RegexLexer):
+ """
+ Lexer for Fish shell scripts.
+
+ .. versionadded:: 2.1
+ """
+
+ name = 'Fish'
+ aliases = ['fish', 'fishshell']
+ filenames = ['*.fish', '*.load']
+ mimetypes = ['application/x-fish']
+
+ tokens = {
+ 'root': [
+ include('basic'),
+ include('data'),
+ include('interp'),
+ ],
+ 'interp': [
+ (r'\$\(\(', Keyword, 'math'),
+ (r'\(', Keyword, 'paren'),
+ (r'\$#?(\w+|.)', Name.Variable),
+ ],
+ 'basic': [
+ (r'\b(begin|end|if|else|while|break|for|in|return|function|block|'
+ r'case|continue|switch|not|and|or|set|echo|exit|pwd|true|false|'
+ r'cd|count|test)(\s*)\b',
+ bygroups(Keyword, Text)),
+ (r'\b(alias|bg|bind|breakpoint|builtin|command|commandline|'
+ r'complete|contains|dirh|dirs|emit|eval|exec|fg|fish|fish_config|'
+ r'fish_indent|fish_pager|fish_prompt|fish_right_prompt|'
+ r'fish_update_completions|fishd|funced|funcsave|functions|help|'
+ r'history|isatty|jobs|math|mimedb|nextd|open|popd|prevd|psub|'
+ r'pushd|random|read|set_color|source|status|trap|type|ulimit|'
+ r'umask|vared|fc|getopts|hash|kill|printf|time|wait)\s*\b(?!\.)',
+ Name.Builtin),
+ (r'#.*\n', Comment),
+ (r'\\[\w\W]', String.Escape),
+ (r'(\b\w+)(\s*)(=)', bygroups(Name.Variable, Text, Operator)),
+ (r'[\[\]()=]', Operator),
+ (r'<<-?\s*(\'?)\\?(\w+)[\w\W]+?\2', String),
+ ],
+ 'data': [
+ (r'(?s)\$?"(\\\\|\\[0-7]+|\\.|[^"\\$])*"', String.Double),
+ (r'"', String.Double, 'string'),
+ (r"(?s)\$'(\\\\|\\[0-7]+|\\.|[^'\\])*'", String.Single),
+ (r"(?s)'.*?'", String.Single),
+ (r';', Punctuation),
+ (r'&|\||\^|<|>', Operator),
+ (r'\s+', Text),
+ (r'\d+(?= |\Z)', Number),
+ (r'[^=\s\[\]{}()$"\'`\\<&|;]+', Text),
+ ],
+ 'string': [
+ (r'"', String.Double, '#pop'),
+ (r'(?s)(\\\\|\\[0-7]+|\\.|[^"\\$])+', String.Double),
+ include('interp'),
+ ],
+ 'paren': [
+ (r'\)', Keyword, '#pop'),
+ include('root'),
+ ],
+ 'math': [
+ (r'\)\)', Keyword, '#pop'),
+ (r'[-+*/%^|&]|\*\*|\|\|', Operator),
+ (r'\d+#\d+', Number),
+ (r'\d+#(?! )', Number),
+ (r'\d+', Number),
+ include('root'),
+ ],
+ }
diff --git a/pygments/lexers/sql.py b/pygments/lexers/sql.py
index f575ed38..646a9f31 100644
--- a/pygments/lexers/sql.py
+++ b/pygments/lexers/sql.py
@@ -489,8 +489,8 @@ class MySqlLexer(RegexLexer):
r'day_hour|day_microsecond|day_minute|day_second|dec|decimal|'
r'declare|default|delayed|delete|desc|describe|deterministic|'
r'distinct|distinctrow|div|double|drop|dual|each|else|elseif|'
- r'enclosed|escaped|exists|exit|explain|fetch|float|float4|float8'
- r'|for|force|foreign|from|fulltext|grant|group|having|'
+ r'enclosed|escaped|exists|exit|explain|fetch|flush|float|float4|'
+ r'float8|for|force|foreign|from|fulltext|grant|group|having|'
r'high_priority|hour_microsecond|hour_minute|hour_second|if|'
r'ignore|in|index|infile|inner|inout|insensitive|insert|int|'
r'int1|int2|int3|int4|int8|integer|interval|into|is|iterate|'
diff --git a/pygments/lexers/supercollider.py b/pygments/lexers/supercollider.py
new file mode 100644
index 00000000..d3e4c460
--- /dev/null
+++ b/pygments/lexers/supercollider.py
@@ -0,0 +1,90 @@
+# -*- coding: utf-8 -*-
+"""
+ pygments.lexers.supercollider
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+ Lexer for SuperCollider
+
+ :copyright: Copyright 2006-2015 by the Pygments team, see AUTHORS.
+ :license: BSD, see LICENSE for details.
+"""
+
+import re
+
+from pygments.lexer import RegexLexer, include, words
+from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
+ Number, Punctuation
+
+__all__ = ['SuperColliderLexer']
+
+
+class SuperColliderLexer(RegexLexer):
+ """
+ For `SuperCollider <http://supercollider.github.io/>`_ source code.
+
+ .. versionadded:: 2.1
+ """
+
+ name = 'SuperCollider'
+ aliases = ['sc', 'supercollider']
+ filenames = ['*.sc', '*.scd']
+ mimetypes = ['application/supercollider', 'text/supercollider', ]
+
+ flags = re.DOTALL | re.MULTILINE
+ tokens = {
+ 'commentsandwhitespace': [
+ (r'\s+', Text),
+ (r'<!--', Comment),
+ (r'//.*?\n', Comment.Single),
+ (r'/\*.*?\*/', Comment.Multiline)
+ ],
+ 'slashstartsregex': [
+ include('commentsandwhitespace'),
+ (r'/(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/'
+ r'([gim]+\b|\B)', String.Regex, '#pop'),
+ (r'(?=/)', Text, ('#pop', 'badregex')),
+ (r'', Text, '#pop')
+ ],
+ 'badregex': [
+ (r'\n', Text, '#pop')
+ ],
+ 'root': [
+ (r'^(?=\s|/|<!--)', Text, 'slashstartsregex'),
+ include('commentsandwhitespace'),
+ (r'\+\+|--|~|&&|\?|:|\|\||\\(?=\n)|'
+ r'(<<|>>>?|==?|!=?|[-<>+*%&|^/])=?', Operator, 'slashstartsregex'),
+ (r'[{(\[;,]', Punctuation, 'slashstartsregex'),
+ (r'[})\].]', Punctuation),
+ (words((
+ 'for', 'in', 'while', 'do', 'break', 'return', 'continue',
+ 'switch', 'case', 'default', 'if', 'else', 'throw', 'try',
+ 'catch', 'finally', 'new', 'delete', 'typeof', 'instanceof',
+ 'void'), suffix=r'\b'),
+ Keyword, 'slashstartsregex'),
+ (words(('var', 'let', 'with', 'function', 'arg'), suffix=r'\b'),
+ Keyword.Declaration, 'slashstartsregex'),
+ (words((
+ '(abstract', 'boolean', 'byte', 'char', 'class', 'const',
+ 'debugger', 'double', 'enum', 'export', 'extends', 'final',
+ 'float', 'goto', 'implements', 'import', 'int', 'interface',
+ 'long', 'native', 'package', 'private', 'protected', 'public',
+ 'short', 'static', 'super', 'synchronized', 'throws',
+ 'transient', 'volatile'), suffix=r'\b'),
+ Keyword.Reserved),
+ (words(('true', 'false', 'nil', 'inf'), suffix=r'\b'), Keyword.Constant),
+ (words((
+ 'Array', 'Boolean', 'Date', 'Error', 'Function', 'Number',
+ 'Object', 'Packages', 'RegExp', 'String', 'Error',
+ 'isFinite', 'isNaN', 'parseFloat', 'parseInt', 'super',
+ 'thisFunctionDef', 'thisFunction', 'thisMethod', 'thisProcess',
+ 'thisThread', 'this'), suffix=r'\b'),
+ Name.Builtin),
+ (r'[$a-zA-Z_][a-zA-Z0-9_]*', Name.Other),
+ (r'\\?[$a-zA-Z_][a-zA-Z0-9_]*', String.Symbol),
+ (r'[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?', Number.Float),
+ (r'0x[0-9a-fA-F]+', Number.Hex),
+ (r'[0-9]+', Number.Integer),
+ (r'"(\\\\|\\"|[^"])*"', String.Double),
+ (r"'(\\\\|\\'|[^'])*'", String.Single),
+ ]
+ }
diff --git a/pygments/lexers/templates.py b/pygments/lexers/templates.py
index bfca0d38..71055a9f 100644
--- a/pygments/lexers/templates.py
+++ b/pygments/lexers/templates.py
@@ -568,10 +568,12 @@ class MasonLexer(RegexLexer):
}
def analyse_text(text):
- rv = 0.0
- if re.search('<&', text) is not None:
- rv = 1.0
- return rv
+ result = 0.0
+ if re.search(r'</%(class|doc|init)%>', text) is not None:
+ result = 1.0
+ elif re.search(r'<&.+&>', text, re.DOTALL) is not None:
+ result = 0.11
+ return result
class MakoLexer(RegexLexer):
diff --git a/pygments/lexers/testing.py b/pygments/lexers/testing.py
index 4a91c5b1..0bdebe74 100644
--- a/pygments/lexers/testing.py
+++ b/pygments/lexers/testing.py
@@ -10,9 +10,9 @@
"""
from pygments.lexer import RegexLexer, include, bygroups
-from pygments.token import Comment, Keyword, Name, String
+from pygments.token import Comment, Keyword, Name, String, Number, Generic, Text
-__all__ = ['GherkinLexer']
+__all__ = ['GherkinLexer', 'TAPLexer']
class GherkinLexer(RegexLexer):
@@ -26,10 +26,10 @@ class GherkinLexer(RegexLexer):
filenames = ['*.feature']
mimetypes = ['text/x-gherkin']
- feature_keywords = u'^(기능|機能|功能|フィーチャ|خاصية|תכונה|Функціонал|Функционалност|Функционал|Фича|Особина|Могућност|Özellik|Właściwość|Tính năng|Trajto|Savybė|Požiadavka|Požadavek|Osobina|Ominaisuus|Omadus|OH HAI|Mogućnost|Mogucnost|Jellemző|Fīča|Funzionalità|Funktionalität|Funkcionalnost|Funkcionalitāte|Funcționalitate|Functionaliteit|Functionalitate|Funcionalitat|Funcionalidade|Fonctionnalité|Fitur|Feature|Egenskap|Egenskab|Crikey|Característica|Arwedd)(:)(.*)$'
+ feature_keywords = u'^(기능|機能|功能|フィーチャ|خاصية|תכונה|Функціонал|Функционалност|Функционал|Фича|Особина|Могућност|Özellik|Właściwość|Tính năng|Trajto|Savybė|Požiadavka|Požadavek|Osobina|Ominaisuus|Omadus|OH HAI|Mogućnost|Mogucnost|Jellemző|Fīča|Funzionalità|Funktionalität|Funkcionalnost|Funkcionalitāte|Funcționalitate|Functionaliteit|Functionalitate|Funcionalitat|Funcionalidade|Fonctionnalité|Fitur|Feature|Egenskap|Egenskab|Crikey|Característica|Arwedd)(:)(.*)$'
feature_element_keywords = u'^(\\s*)(시나리오 개요|시나리오|배경|背景|場景大綱|場景|场景大纲|场景|劇本大綱|劇本|剧本大纲|剧本|テンプレ|シナリオテンプレート|シナリオテンプレ|シナリオアウトライン|シナリオ|سيناريو مخطط|سيناريو|الخلفية|תרחיש|תבנית תרחיש|רקע|Тарих|Сценарій|Сценарио|Сценарий структураси|Сценарий|Структура сценарію|Структура сценарија|Структура сценария|Скица|Рамка на сценарий|Пример|Предыстория|Предистория|Позадина|Передумова|Основа|Концепт|Контекст|Założenia|Wharrimean is|Tình huống|The thing of it is|Tausta|Taust|Tapausaihio|Tapaus|Szenariogrundriss|Szenario|Szablon scenariusza|Stsenaarium|Struktura scenarija|Skica|Skenario konsep|Skenario|Situācija|Senaryo taslağı|Senaryo|Scénář|Scénario|Schema dello scenario|Scenārijs pēc parauga|Scenārijs|Scenár|Scenaro|Scenariusz|Scenariul de şablon|Scenariul de sablon|Scenariu|Scenario Outline|Scenario Amlinellol|Scenario|Scenarijus|Scenarijaus šablonas|Scenarij|Scenarie|Rerefons|Raamstsenaarium|Primer|Pozadí|Pozadina|Pozadie|Plan du scénario|Plan du Scénario|Osnova scénáře|Osnova|Náčrt Scénáře|Náčrt Scenáru|Mate|MISHUN SRSLY|MISHUN|Kịch bản|Konturo de la scenaro|Kontext|Konteksts|Kontekstas|Kontekst|Koncept|Khung tình huống|Khung kịch bản|Háttér|Grundlage|Geçmiş|Forgatókönyv vázlat|Forgatókönyv|Fono|Esquema do Cenário|Esquema do Cenario|Esquema del escenario|Esquema de l\'escenari|Escenario|Escenari|Dis is what went down|Dasar|Contexto|Contexte|Contesto|Condiţii|Conditii|Cenário|Cenario|Cefndir|Bối cảnh|Blokes|Bakgrunn|Bakgrund|Baggrund|Background|B4|Antecedents|Antecedentes|All y\'all|Achtergrond|Abstrakt Scenario|Abstract Scenario)(:)(.*)$'
- examples_keywords = u'^(\\s*)(예|例子|例|サンプル|امثلة|דוגמאות|Сценарији|Примери|Приклади|Мисоллар|Значения|Örnekler|Voorbeelden|Variantai|Tapaukset|Scenarios|Scenariji|Scenarijai|Příklady|Példák|Príklady|Przykłady|Primjeri|Primeri|Piemēri|Pavyzdžiai|Paraugs|Juhtumid|Exemplos|Exemples|Exemplele|Exempel|Examples|Esempi|Enghreifftiau|Ekzemploj|Eksempler|Ejemplos|EXAMPLZ|Dữ liệu|Contoh|Cobber|Beispiele)(:)(.*)$'
- step_keywords = u'^(\\s*)(하지만|조건|먼저|만일|만약|단|그리고|그러면|那麼|那么|而且|當|当|前提|假設|假设|假如|假定|但是|但し|並且|并且|同時|同时|もし|ならば|ただし|しかし|かつ|و |متى |لكن |عندما |ثم |بفرض |اذاً |כאשר |וגם |בהינתן |אזי |אז |אבל |Якщо |Унда |То |Припустимо, що |Припустимо |Онда |Но |Нехай |Лекин |Когато |Када |Кад |К тому же |И |Задато |Задати |Задате |Если |Допустим |Дадено |Ва |Бирок |Аммо |Али |Але |Агар |А |І |Și |És |Zatati |Zakładając |Zadato |Zadate |Zadano |Zadani |Zadan |Youse know when youse got |Youse know like when |Yna |Ya know how |Ya gotta |Y |Wun |Wtedy |When y\'all |When |Wenn |WEN |Và |Ve |Und |Un |Thì |Then y\'all |Then |Tapi |Tak |Tada |Tad |Så |Stel |Soit |Siis |Si |Sed |Se |Quando |Quand |Quan |Pryd |Pokud |Pokiaľ |Però |Pero |Pak |Oraz |Onda |Ond |Oletetaan |Og |Och |O zaman |Når |När |Niin |Nhưng |N |Mutta |Men |Mas |Maka |Majd |Mais |Maar |Ma |Lorsque |Lorsqu\'|Kun |Kuid |Kui |Khi |Keď |Ketika |Když |Kaj |Kai |Kada |Kad |Jeżeli |Ja |Ir |I CAN HAZ |I |Ha |Givun |Givet |Given y\'all |Given |Gitt |Gegeven |Gegeben sei |Fakat |Eğer ki |Etant donné |Et |Então |Entonces |Entao |En |Eeldades |E |Duota |Dun |Donitaĵo |Donat |Donada |Do |Diyelim ki |Dengan |Den youse gotta |De |Dato |Dar |Dann |Dan |Dado |Dacă |Daca |DEN |Când |Cuando |Cho |Cept |Cand |Cal |But y\'all |But |Buh |Biết |Bet |BUT |Atès |Atunci |Atesa |Anrhegedig a |Angenommen |And y\'all |And |An |Ama |Als |Alors |Allora |Ali |Aleshores |Ale |Akkor |Aber |AN |A také |A |\* )'
+ examples_keywords = u'^(\\s*)(예|例子|例|サンプル|امثلة|דוגמאות|Сценарији|Примери|Приклади|Мисоллар|Значения|Örnekler|Voorbeelden|Variantai|Tapaukset|Scenarios|Scenariji|Scenarijai|Příklady|Példák|Príklady|Przykłady|Primjeri|Primeri|Piemēri|Pavyzdžiai|Paraugs|Juhtumid|Exemplos|Exemples|Exemplele|Exempel|Examples|Esempi|Enghreifftiau|Ekzemploj|Eksempler|Ejemplos|EXAMPLZ|Dữ liệu|Contoh|Cobber|Beispiele)(:)(.*)$'
+ step_keywords = u'^(\\s*)(하지만|조건|먼저|만일|만약|단|그리고|그러면|那麼|那么|而且|當|当|前提|假設|假设|假如|假定|但是|但し|並且|并且|同時|同时|もし|ならば|ただし|しかし|かつ|و |متى |لكن |عندما |ثم |بفرض |اذاً |כאשר |וגם |בהינתן |אזי |אז |אבל |Якщо |Унда |То |Припустимо, що |Припустимо |Онда |Но |Нехай |Лекин |Когато |Када |Кад |К тому же |И |Задато |Задати |Задате |Если |Допустим |Дадено |Ва |Бирок |Аммо |Али |Але |Агар |А |І |Și |És |Zatati |Zakładając |Zadato |Zadate |Zadano |Zadani |Zadan |Youse know when youse got |Youse know like when |Yna |Ya know how |Ya gotta |Y |Wun |Wtedy |When y\'all |When |Wenn |WEN |Và |Ve |Und |Un |Thì |Then y\'all |Then |Tapi |Tak |Tada |Tad |Så |Stel |Soit |Siis |Si |Sed |Se |Quando |Quand |Quan |Pryd |Pokud |Pokiaľ |Però |Pero |Pak |Oraz |Onda |Ond |Oletetaan |Og |Och |O zaman |Når |När |Niin |Nhưng |N |Mutta |Men |Mas |Maka |Majd |Mais |Maar |Ma |Lorsque |Lorsqu\'|Kun |Kuid |Kui |Khi |Keď |Ketika |Když |Kaj |Kai |Kada |Kad |Jeżeli |Ja |Ir |I CAN HAZ |I |Ha |Givun |Givet |Given y\'all |Given |Gitt |Gegeven |Gegeben sei |Fakat |Eğer ki |Etant donné |Et |Então |Entonces |Entao |En |Eeldades |E |Duota |Dun |Donitaĵo |Donat |Donada |Do |Diyelim ki |Dengan |Den youse gotta |De |Dato |Dar |Dann |Dan |Dado |Dacă |Daca |DEN |Când |Cuando |Cho |Cept |Cand |Cal |But y\'all |But |Buh |Biết |Bet |BUT |Atès |Atunci |Atesa |Anrhegedig a |Angenommen |And y\'all |And |An |Ama |Als |Alors |Allora |Ali |Aleshores |Ale |Akkor |Aber |AN |A také |A |\* )'
tokens = {
'comments': [
@@ -129,3 +129,79 @@ class GherkinLexer(RegexLexer):
(r'(\s|.)', Name.Function),
]
}
+
+
+class TAPLexer(RegexLexer):
+ """
+ For Test Anything Protocol (TAP) output.
+
+ .. versionadded:: 2.1
+ """
+ name = 'TAP'
+ aliases = ['tap']
+ filenames = ['*.tap']
+
+ tokens = {
+ 'root': [
+ # A TAP version may be specified.
+ (r'^TAP version \d+\n', Name.Namespace),
+
+ # Specify a plan with a plan line.
+ (r'^1..\d+', Keyword.Declaration, 'plan'),
+
+ # A test failure
+ (r'^(not ok)([^\S\n]*)(\d*)',
+ bygroups(Generic.Error, Text, Number.Integer), 'test'),
+
+ # A test success
+ (r'^(ok)([^\S\n]*)(\d*)',
+ bygroups(Keyword.Reserved, Text, Number.Integer), 'test'),
+
+ # Diagnostics start with a hash.
+ (r'^#.*\n', Comment),
+
+ # TAP's version of an abort statement.
+ (r'^Bail out!.*\n', Generic.Error),
+
+ # TAP ignores any unrecognized lines.
+ (r'^.*\n', Text),
+ ],
+ 'plan': [
+ # Consume whitespace (but not newline).
+ (r'[^\S\n]+', Text),
+
+ # A plan may have a directive with it.
+ (r'#', Comment, 'directive'),
+
+ # Or it could just end.
+ (r'\n', Comment, '#pop'),
+
+ # Anything else is wrong.
+ (r'.*\n', Generic.Error, '#pop'),
+ ],
+ 'test': [
+ # Consume whitespace (but not newline).
+ (r'[^\S\n]+', Text),
+
+ # A test may have a directive with it.
+ (r'#', Comment, 'directive'),
+
+ (r'\S+', Text),
+
+ (r'\n', Text, '#pop'),
+ ],
+ 'directive': [
+ # Consume whitespace (but not newline).
+ (r'[^\S\n]+', Comment),
+
+ # Extract todo items.
+ (r'(?i)\bTODO\b', Comment.Preproc),
+
+ # Extract skip items.
+ (r'(?i)\bSKIP\S*', Comment.Preproc),
+
+ (r'\S+', Comment),
+
+ (r'\n', Comment, '#pop:2'),
+ ],
+ }
diff --git a/pygments/lexers/theorem.py b/pygments/lexers/theorem.py
index 47fdc8b6..60a101cc 100644
--- a/pygments/lexers/theorem.py
+++ b/pygments/lexers/theorem.py
@@ -43,7 +43,8 @@ class CoqLexer(RegexLexer):
'Proposition', 'Fact', 'Remark', 'Example', 'Proof', 'Goal', 'Save',
'Qed', 'Defined', 'Hint', 'Resolve', 'Rewrite', 'View', 'Search',
'Show', 'Print', 'Printing', 'All', 'Graph', 'Projections', 'inside',
- 'outside', 'Check',
+ 'outside', 'Check', 'Global', 'Instance', 'Class', 'Existing',
+ 'Universe', 'Polymorphic', 'Monomorphic', 'Context'
)
keywords2 = (
# Gallina
@@ -64,12 +65,16 @@ class CoqLexer(RegexLexer):
'unfold', 'change', 'cutrewrite', 'simpl', 'have', 'suff', 'wlog',
'suffices', 'without', 'loss', 'nat_norm', 'assert', 'cut', 'trivial',
'revert', 'bool_congr', 'nat_congr', 'symmetry', 'transitivity', 'auto',
- 'split', 'left', 'right', 'autorewrite', 'tauto',
+ 'split', 'left', 'right', 'autorewrite', 'tauto', 'setoid_rewrite',
+ 'intuition', 'eauto', 'eapply', 'econstructor', 'etransitivity',
+ 'constructor', 'erewrite', 'red', 'cbv', 'lazy', 'vm_compute',
+ 'native_compute', 'subst',
)
keywords5 = (
# Terminators
'by', 'done', 'exact', 'reflexivity', 'tauto', 'romega', 'omega',
'assumption', 'solve', 'contradiction', 'discriminate',
+ 'congruence',
)
keywords6 = (
# Control
@@ -87,15 +92,13 @@ class CoqLexer(RegexLexer):
'->', r'\.', r'\.\.', ':', '::', ':=', ':>', ';', ';;', '<', '<-',
'<->', '=', '>', '>]', r'>\}', r'\?', r'\?\?', r'\[', r'\[<', r'\[>',
r'\[\|', ']', '_', '`', r'\{', r'\{<', r'\|', r'\|]', r'\}', '~', '=>',
- r'/\\', r'\\/',
+ r'/\\', r'\\/', r'\{\|', r'\|\}',
u'Π', u'λ',
)
operators = r'[!$%&*+\./:<=>?@^|~-]'
- word_operators = ('and', 'asr', 'land', 'lor', 'lsl', 'lxor', 'mod', 'or')
prefix_syms = r'[!?~]'
infix_syms = r'[=<>@^|&+\*/$%-]'
- primitives = ('unit', 'int', 'float', 'bool', 'string', 'char', 'list',
- 'array')
+ primitives = ('unit', 'nat', 'bool', 'string', 'ascii', 'list')
tokens = {
'root': [
@@ -108,11 +111,10 @@ class CoqLexer(RegexLexer):
(words(keywords4, prefix=r'\b', suffix=r'\b'), Keyword),
(words(keywords5, prefix=r'\b', suffix=r'\b'), Keyword.Pseudo),
(words(keywords6, prefix=r'\b', suffix=r'\b'), Keyword.Reserved),
- (r'\b([A-Z][\w\']*)(?=\s*\.)', Name.Namespace, 'dotted'),
- (r'\b([A-Z][\w\']*)', Name.Class),
+ # (r'\b([A-Z][\w\']*)(\.)', Name.Namespace, 'dotted'),
+ (r'\b([A-Z][\w\']*)', Name),
(r'(%s)' % '|'.join(keyopts[::-1]), Operator),
(r'(%s|%s)?%s' % (infix_syms, prefix_syms, operators), Operator),
- (r'\b(%s)\b' % '|'.join(word_operators), Operator.Word),
(r'\b(%s)\b' % '|'.join(primitives), Keyword.Type),
(r"[^\W\d][\w']*", Name),
@@ -130,7 +132,7 @@ class CoqLexer(RegexLexer):
(r'"', String.Double, 'string'),
- (r'[~?][a-z][\w\']*:', Name.Variable),
+ (r'[~?][a-z][\w\']*:', Name),
],
'comment': [
(r'[^(*)]+', Comment),
diff --git a/pygments/lexers/trafficscript.py b/pygments/lexers/trafficscript.py
new file mode 100644
index 00000000..34ca7d5b
--- /dev/null
+++ b/pygments/lexers/trafficscript.py
@@ -0,0 +1,53 @@
+# -*- coding: utf-8 -*-
+"""
+
+ pygments.lexers.trafficscript
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+ Lexer for RiverBed's TrafficScript (RTS) language.
+
+ :copyright: Copyright 2006-2015 by the Pygments team, see AUTHORS.
+ :license: BSD, see LICENSE for details.
+"""
+import re
+
+from pygments.lexer import RegexLexer
+from pygments.token import String, Number, Name, Keyword, Operator, Text, Comment
+
+__all__ = ['RtsLexer']
+
+class RtsLexer(RegexLexer):
+ """
+ For `Riverbed Stingray Traffic Manager <http://www.riverbed.com/stingray>`_
+
+ .. versionadded:: 2.1
+ """
+ name = 'TrafficScript'
+ aliases = ['rts','trafficscript']
+ filenames = ['*.rts']
+
+ tokens = {
+ 'root' : [
+ (r"'(\\\\|\\[^\\]|[^'\\])*'", String),
+ (r'"', String, 'escapable-string'),
+ (r'(0x[0-9a-fA-F]+|\d+)', Number),
+ (r'\d+\.\d+', Number.Float),
+ (r'\$[a-zA-Z](\w|_)*', Name.Variable),
+ (r'(if|else|for(each)?|in|while|do|break|sub|return|import)', Keyword),
+ (r'[a-zA-Z][\w.]*', Name.Function),
+ (r'[-+*/%=,;(){}<>^.!~|&\[\]\?\:]', Operator),
+ (r'(>=|<=|==|!=|'
+ r'&&|\|\||'
+ r'\+=|.=|-=|\*=|/=|%=|<<=|>>=|&=|\|=|\^=|'
+ r'>>|<<|'
+ r'\+\+|--|=>)', Operator),
+ (r'[ \t\r]+', Text),
+ (r'#[^\n]*', Comment),
+ ],
+ 'escapable-string' : [
+ (r'\\[tsn]', String.Escape),
+ (r'[^"]', String),
+ (r'"', String, '#pop'),
+ ],
+
+ }
diff --git a/pygments/lexers/webmisc.py b/pygments/lexers/webmisc.py
index 08b6c969..def11dba 100644
--- a/pygments/lexers/webmisc.py
+++ b/pygments/lexers/webmisc.py
@@ -333,13 +333,14 @@ class XQueryLexer(ExtendedRegexLexer):
(r'(\{)', pushstate_root_callback),
(r'then|else|external|at|div|except', Keyword, 'root'),
(r'order by', Keyword, 'root'),
+ (r'group by', Keyword, 'root'),
(r'is|mod|order\s+by|stable\s+order\s+by', Keyword, 'root'),
(r'and|or', Operator.Word, 'root'),
(r'(eq|ge|gt|le|lt|ne|idiv|intersect|in)(?=\b)',
Operator.Word, 'root'),
(r'return|satisfies|to|union|where|preserve\s+strip',
Keyword, 'root'),
- (r'(>=|>>|>|<=|<<|<|-|\*|!=|\+|\|\||\||:=|=)',
+ (r'(>=|>>|>|<=|<<|<|-|\*|!=|\+|\|\||\||:=|=|!)',
operator_root_callback),
(r'(::|;|\[|//|/|,)',
punctuation_root_callback),
@@ -349,6 +350,8 @@ class XQueryLexer(ExtendedRegexLexer):
bygroups(Keyword, Text, Keyword), 'itemtype'),
(r'(treat)(\s+)(as)\b',
bygroups(Keyword, Text, Keyword), 'itemtype'),
+ (r'(case)(\s+)(' + stringdouble + ')', bygroups(Keyword, Text, String.Double), 'itemtype'),
+ (r'(case)(\s+)(' + stringsingle + ')', bygroups(Keyword, Text, String.Single), 'itemtype'),
(r'(case|as)\b', Keyword, 'itemtype'),
(r'(\))(\s*)(as)',
bygroups(Punctuation, Text, Keyword), 'itemtype'),
@@ -361,6 +364,13 @@ class XQueryLexer(ExtendedRegexLexer):
(r'ascending|descending|default', Keyword, '#push'),
(r'external', Keyword),
(r'collation', Keyword, 'uritooperator'),
+
+ # eXist specific XQUF
+ (r'(into|following|preceding|with)', Keyword, 'root'),
+
+ # support for current context on rhs of Simple Map Operator
+ (r'\.', Operator),
+
# finally catch all string literals and stay in operator state
(stringdouble, String.Double),
(stringsingle, String.Single),
@@ -394,9 +404,21 @@ class XQueryLexer(ExtendedRegexLexer):
(r'preserve|no-preserve', Keyword),
(r',', Punctuation),
],
+ 'annotationname':[
+ (r'\(:', Comment, 'comment'),
+ (qname, Name.Decorator),
+ (r'(\()(' + stringdouble + ')', bygroups(Punctuation, String.Double)),
+ (r'(\()(' + stringsingle + ')', bygroups(Punctuation, String.Single)),
+ (r'(\,)(\s+)(' + stringdouble + ')', bygroups(Punctuation, Text, String.Double)),
+ (r'(\,)(\s+)(' + stringsingle + ')', bygroups(Punctuation, Text, String.Single)),
+ (r'\)', Punctuation),
+ (r'(\s+)(\%)', bygroups(Text, Name.Decorator), 'annotationname'),
+ (r'(\s+)(variable)(\s+)(\$)', bygroups(Text, Keyword.Declaration, Text, Name.Variable), 'varname'),
+ (r'(\s+)(function)(\s+)', bygroups(Text, Keyword.Declaration, Text), 'root')
+ ],
'varname': [
(r'\(:', Comment, 'comment'),
- (qname, Name.Variable, 'operator'),
+ (r'(' + qname + ')(\()?', bygroups(Name, Punctuation), 'operator'),
],
'singletype': [
(r'\(:', Comment, 'comment'),
@@ -406,7 +428,7 @@ class XQueryLexer(ExtendedRegexLexer):
'itemtype': [
include('whitespace'),
(r'\(:', Comment, 'comment'),
- (r'\$', Punctuation, 'varname'),
+ (r'\$', Name.Variable, 'varname'),
(r'(void)(\s*)(\()(\s*)(\))',
bygroups(Keyword, Text, Punctuation, Text, Punctuation), 'operator'),
(r'(element|attribute|schema-element|schema-attribute|comment|text|'
@@ -415,11 +437,11 @@ class XQueryLexer(ExtendedRegexLexer):
# Marklogic specific type?
(r'(processing-instruction)(\s*)(\()',
bygroups(Keyword, Text, Punctuation),
- ('occurrenceindicator', 'kindtestforpi')),
+ ('occurrenceindicator', 'kindtestforpi')),
(r'(item)(\s*)(\()(\s*)(\))(?=[*+?])',
bygroups(Keyword, Text, Punctuation, Text, Punctuation),
'occurrenceindicator'),
- (r'\(\#', Punctuation, 'pragma'),
+ (r'(\(\#)(\s*)', bygroups(Punctuation, Text), 'pragma'),
(r';', Punctuation, '#pop'),
(r'then|else', Keyword, '#pop'),
(r'(at)(\s+)(' + stringdouble + ')',
@@ -437,9 +459,12 @@ class XQueryLexer(ExtendedRegexLexer):
bygroups(Keyword, Text, Keyword), 'singletype'),
(r'(treat)(\s+)(as)', bygroups(Keyword, Text, Keyword)),
(r'(instance)(\s+)(of)', bygroups(Keyword, Text, Keyword)),
+ (r'(case)(\s+)(' + stringdouble + ')', bygroups(Keyword, Text, String.Double), 'itemtype'),
+ (r'(case)(\s+)(' + stringsingle + ')', bygroups(Keyword, Text, String.Single), 'itemtype'),
(r'case|as', Keyword, 'itemtype'),
(r'(\))(\s*)(as)', bygroups(Operator, Text, Keyword), 'itemtype'),
(ncname + r':\*', Keyword.Type, 'operator'),
+ (r'(function)(\()', bygroups(Keyword.Type, Punctuation)),
(qname, Keyword.Type, 'occurrenceindicator'),
],
'kindtest': [
@@ -589,9 +614,9 @@ class XQueryLexer(ExtendedRegexLexer):
(r'(\d+)', Number.Integer, 'operator'),
(r'(\.\.|\.|\))', Punctuation, 'operator'),
(r'(declare)(\s+)(construction)',
- bygroups(Keyword, Text, Keyword), 'operator'),
+ bygroups(Keyword.Declaration, Text, Keyword.Declaration), 'operator'),
(r'(declare)(\s+)(default)(\s+)(order)',
- bygroups(Keyword, Text, Keyword, Text, Keyword), 'operator'),
+ bygroups(Keyword.Declaration, Text, Keyword.Declaration, Text, Keyword.Declaration), 'operator'),
(ncname + ':\*', Name, 'operator'),
('\*:'+ncname, Name.Tag, 'operator'),
('\*', Name.Tag, 'operator'),
@@ -602,26 +627,29 @@ class XQueryLexer(ExtendedRegexLexer):
# NAMESPACE DECL
(r'(declare)(\s+)(default)(\s+)(collation)',
- bygroups(Keyword, Text, Keyword, Text, Keyword)),
+ bygroups(Keyword.Declaration, Text, Keyword.Declaration, Text, Keyword.Declaration)),
(r'(module|declare)(\s+)(namespace)',
- bygroups(Keyword, Text, Keyword), 'namespacedecl'),
+ bygroups(Keyword.Declaration, Text, Keyword.Declaration), 'namespacedecl'),
(r'(declare)(\s+)(base-uri)',
- bygroups(Keyword, Text, Keyword), 'namespacedecl'),
+ bygroups(Keyword.Declaration, Text, Keyword.Declaration), 'namespacedecl'),
# NAMESPACE KEYWORD
(r'(declare)(\s+)(default)(\s+)(element|function)',
- bygroups(Keyword, Text, Keyword, Text, Keyword), 'namespacekeyword'),
+ bygroups(Keyword.Declaration, Text, Keyword.Declaration, Text, Keyword.Declaration), 'namespacekeyword'),
(r'(import)(\s+)(schema|module)',
bygroups(Keyword.Pseudo, Text, Keyword.Pseudo), 'namespacekeyword'),
(r'(declare)(\s+)(copy-namespaces)',
- bygroups(Keyword, Text, Keyword), 'namespacekeyword'),
+ bygroups(Keyword.Declaration, Text, Keyword.Declaration), 'namespacekeyword'),
# VARNAMEs
(r'(for|let|some|every)(\s+)(\$)',
bygroups(Keyword, Text, Name.Variable), 'varname'),
(r'\$', Name.Variable, 'varname'),
(r'(declare)(\s+)(variable)(\s+)(\$)',
- bygroups(Keyword, Text, Keyword, Text, Name.Variable), 'varname'),
+ bygroups(Keyword.Declaration, Text, Keyword.Declaration, Text, Name.Variable), 'varname'),
+
+ # ANNOTATED GLOBAL VARIABLES AND FUNCTIONS
+ (r'(declare)(\s+)(\%)', bygroups(Keyword.Declaration, Text, Name.Decorator), 'annotationname'),
# ITEMTYPE
(r'(\))(\s+)(as)', bygroups(Operator, Text, Keyword), 'itemtype'),
@@ -643,12 +671,13 @@ class XQueryLexer(ExtendedRegexLexer):
(r'(<)', pushstate_operator_starttag_callback),
(r'(declare)(\s+)(boundary-space)',
- bygroups(Keyword, Text, Keyword), 'xmlspace_decl'),
+ bygroups(Keyword.Declaration, Text, Keyword.Declaration), 'xmlspace_decl'),
(r'(validate)(\s+)(lax|strict)',
pushstate_operator_root_validate_withmode),
(r'(validate)(\s*)(\{)', pushstate_operator_root_validate),
(r'(typeswitch)(\s*)(\()', bygroups(Keyword, Text, Punctuation)),
+ (r'(typeswitch)(\s*)(\()', bygroups(Keyword, Text, Punctuation)),
(r'(element|attribute)(\s*)(\{)',
pushstate_operator_root_construct_callback),
@@ -666,7 +695,7 @@ class XQueryLexer(ExtendedRegexLexer):
'operator'),
(r'(declare|define)(\s+)(function)',
- bygroups(Keyword, Text, Keyword)),
+ bygroups(Keyword.Declaration, Text, Keyword.Declaration)),
(r'(\{)', pushstate_operator_root_callback),
@@ -674,17 +703,17 @@ class XQueryLexer(ExtendedRegexLexer):
pushstate_operator_order_callback),
(r'(declare)(\s+)(ordering)',
- bygroups(Keyword, Text, Keyword), 'declareordering'),
+ bygroups(Keyword.Declaration, Text, Keyword.Declaration), 'declareordering'),
(r'(xquery)(\s+)(version)',
bygroups(Keyword.Pseudo, Text, Keyword.Pseudo), 'xqueryversion'),
- (r'(\(#)', Punctuation, 'pragma'),
+ (r'(\(#)(\s*)', bygroups(Punctuation, Text), 'pragma'),
# sometimes return can occur in root state
(r'return', Keyword),
- (r'(declare)(\s+)(option)', bygroups(Keyword, Text, Keyword),
+ (r'(declare)(\s+)(option)', bygroups(Keyword.Declaration, Text, Keyword.Declaration),
'option'),
# URI LITERALS - single and double quoted
@@ -700,11 +729,16 @@ class XQueryLexer(ExtendedRegexLexer):
(r'then|else', Keyword),
- # ML specific
+ # eXist specific XQUF
+ (r'(update)(\s*)(insert|delete|replace|value|rename)', bygroups(Keyword, Text, Keyword)),
+ (r'(into|following|preceding|with)', Keyword),
+
+ # Marklogic specific
(r'(try)(\s*)', bygroups(Keyword, Text), 'root'),
(r'(catch)(\s*)(\()(\$)',
bygroups(Keyword, Text, Punctuation, Name.Variable), 'varname'),
+
(r'(@'+qname+')', Name.Attribute),
(r'(@'+ncname+')', Name.Attribute),
(r'@\*:'+ncname, Name.Attribute),
@@ -715,6 +749,7 @@ class XQueryLexer(ExtendedRegexLexer):
# STANDALONE QNAMES
(qname + r'(?=\s*\{)', Name.Tag, 'qname_braren'),
(qname + r'(?=\s*\([^:])', Name.Function, 'qname_braren'),
+ (r'(' + qname + ')(#)([0-9]+)', bygroups(Name.Function, Keyword.Type, Number.Integer)),
(qname, Name.Tag, 'operator'),
]
}
@@ -731,9 +766,9 @@ class QmlLexer(RegexLexer):
# JavascriptLexer above.
name = 'QML'
- aliases = ['qml']
- filenames = ['*.qml']
- mimetypes = ['application/x-qml']
+ aliases = ['qml', 'qbs']
+ filenames = ['*.qml', '*.qbs']
+ mimetypes = ['application/x-qml', 'application/x-qt.qbs+qml']
# pasted from JavascriptLexer, with some additions
flags = re.DOTALL | re.MULTILINE
diff --git a/pygments/lexers/x10.py b/pygments/lexers/x10.py
new file mode 100644
index 00000000..ea75ab71
--- /dev/null
+++ b/pygments/lexers/x10.py
@@ -0,0 +1,69 @@
+# -*- coding: utf-8 -*-
+"""
+ pygments.lexers.x10
+ ~~~~~~~~~~~~~~~~~~~
+
+ Lexers for the X10 programming language.
+
+ :copyright: Copyright 2006-2015 by the Pygments team, see AUTHORS.
+ :license: BSD, see LICENSE for details.
+"""
+
+import re
+
+from pygments.lexer import RegexLexer
+from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
+ Number, Punctuation, Error
+
+__all__ = ['X10Lexer']
+
+class X10Lexer(RegexLexer):
+ """
+ For the X10 language.
+
+ .. versionadded:: 0.1
+ """
+
+ name = 'X10'
+ aliases = ['x10', 'xten']
+ filenames = ['*.x10']
+ mimetypes = ['text/x-x10']
+
+ keywords = (
+ 'as', 'assert', 'async', 'at', 'athome', 'ateach', 'atomic',
+ 'break', 'case', 'catch', 'class', 'clocked', 'continue',
+ 'def', 'default', 'do', 'else', 'final', 'finally', 'finish',
+ 'for', 'goto', 'haszero', 'here', 'if', 'import', 'in',
+ 'instanceof', 'interface', 'isref', 'new', 'offer',
+ 'operator', 'package', 'return', 'struct', 'switch', 'throw',
+ 'try', 'type', 'val', 'var', 'when', 'while'
+ )
+
+ types = (
+ 'void'
+ )
+
+ values = (
+ 'false', 'null', 'self', 'super', 'this', 'true'
+ )
+
+ modifiers = (
+ 'abstract', 'extends', 'implements', 'native', 'offers',
+ 'private', 'property', 'protected', 'public', 'static',
+ 'throws', 'transient'
+ )
+
+ tokens = {
+ 'root': [
+ (r'[^\S\n]+', Text),
+ (r'//.*?\n', Comment.Single),
+ (r'/\*(.|\n)*?\*/', Comment.Multiline),
+ (r'\b(%s)\b' % '|'.join(keywords), Keyword),
+ (r'\b(%s)\b' % '|'.join(types), Keyword.Type),
+ (r'\b(%s)\b' % '|'.join(values), Keyword.Constant),
+ (r'\b(%s)\b' % '|'.join(modifiers), Keyword.Declaration),
+ (r'"(\\\\|\\"|[^"])*"', String),
+ (r"'\\.'|'[^\\]'|'\\u[0-9a-fA-F]{4}'", String.Char),
+ (r'.', Text)
+ ],
+ }
diff --git a/pygments/sphinxext.py b/pygments/sphinxext.py
index e63d3d35..2dc9810f 100644
--- a/pygments/sphinxext.py
+++ b/pygments/sphinxext.py
@@ -113,6 +113,8 @@ class PygmentsDoc(Directive):
moduledocstrings[module] = moddoc
for module, lexers in sorted(modules.items(), key=lambda x: x[0]):
+ if moduledocstrings[module] is None:
+ raise Exception("Missing docstring for %s" % (module,))
heading = moduledocstrings[module].splitlines()[4].strip().rstrip('.')
out.append(MODULEDOC % (module, heading, '-'*len(heading)))
for data in lexers:
diff --git a/pygments/styles/arduino.py b/pygments/styles/arduino.py
index f6bcd1cd..cb4d17b0 100644
--- a/pygments/styles/arduino.py
+++ b/pygments/styles/arduino.py
@@ -16,7 +16,8 @@ from pygments.token import Keyword, Name, Comment, String, Error, \
class ArduinoStyle(Style):
"""
- The Arduino® language style. This style is designed to highlight the Arduino source code, so exepect the best results with it.
+ The Arduino® language style. This style is designed to highlight the
+ Arduino source code, so exepect the best results with it.
"""
background_color = "#ffffff"
diff --git a/pygments/token.py b/pygments/token.py
index bfdfc114..f31625ed 100644
--- a/pygments/token.py
+++ b/pygments/token.py
@@ -182,6 +182,7 @@ STANDARD_TYPES = {
Comment.Hashbang: 'ch',
Comment.Multiline: 'cm',
Comment.Preproc: 'cp',
+ Comment.PreprocFile: 'cpf',
Comment.Single: 'c1',
Comment.Special: 'cs',
diff --git a/pygments/util.py b/pygments/util.py
index c464e17c..07b662d0 100644
--- a/pygments/util.py
+++ b/pygments/util.py
@@ -122,7 +122,7 @@ def make_analysator(f):
def shebang_matches(text, regex):
- """Check if the given regular expression matches the last part of the
+ r"""Check if the given regular expression matches the last part of the
shebang if one exists.
>>> from pygments.util import shebang_matches
@@ -160,7 +160,7 @@ def shebang_matches(text, regex):
if x and not x.startswith('-')][-1]
except IndexError:
return False
- regex = re.compile('^%s(\.(exe|cmd|bat|bin))?$' % regex, re.IGNORECASE)
+ regex = re.compile(r'^%s(\.(exe|cmd|bat|bin))?$' % regex, re.IGNORECASE)
if regex.search(found) is not None:
return True
return False
@@ -372,7 +372,7 @@ else:
class UnclosingTextIOWrapper(TextIOWrapper):
# Don't close underlying buffer on destruction.
def close(self):
- pass
+ self.flush()
def add_metaclass(metaclass):