eric6/ThirdParty/Pygments/pygments/lexers/stata.py

Tue, 21 Apr 2020 19:47:10 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Tue, 21 Apr 2020 19:47:10 +0200
changeset 7547
21b0534faebc
parent 6942
2602857055c5
child 7701
25f42e208e08
permissions
-rw-r--r--

Pygments: updated Pygments to 2.3.1

5713
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2 """
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
3 pygments.lexers.stata
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 ~~~~~~~~~~~~~~~~~~~~~
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 Lexer for Stata
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7
7547
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
8 :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
5713
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9 :license: BSD, see LICENSE for details.
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
10 """
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11
7547
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
12 import re
5713
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
13 from pygments.lexer import RegexLexer, include, words
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14 from pygments.token import Comment, Keyword, Name, Number, \
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
15 String, Text, Operator
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
16
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17 from pygments.lexers._stata_builtins import builtins_base, builtins_functions
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19 __all__ = ['StataLexer']
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22 class StataLexer(RegexLexer):
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23 """
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24 For `Stata <http://www.stata.com/>`_ do files.
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26 .. versionadded:: 2.2
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27 """
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28 # Syntax based on
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29 # - http://fmwww.bc.edu/RePEc/bocode/s/synlightlist.ado
7547
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
30 # - https://github.com/isagalaev/highlight.js/blob/master/src/languages/stata.js
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
31 # - https://github.com/jpitblado/vim-stata/blob/master/syntax/stata.vim
5713
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33 name = 'Stata'
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34 aliases = ['stata', 'do']
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35 filenames = ['*.do', '*.ado']
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36 mimetypes = ['text/x-stata', 'text/stata', 'application/x-stata']
7547
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
37 flags = re.MULTILINE | re.DOTALL
5713
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39 tokens = {
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40 'root': [
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
41 include('comments'),
7547
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
42 include('strings'),
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
43 include('macros'),
5713
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44 include('numbers'),
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45 include('keywords'),
7547
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
46 include('operators'),
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
47 include('format'),
5713
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
48 (r'.', Text),
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49 ],
7547
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
50 # Comments are a complicated beast in Stata because they can be
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
51 # nested and there are a few corner cases with that. See:
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
52 # - github.com/kylebarron/language-stata/issues/90
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
53 # - statalist.org/forums/forum/general-stata-discussion/general/1448244
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
54 'comments': [
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
55 (r'(^//|(?<=\s)//)(?!/)', Comment.Single, 'comments-double-slash'),
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
56 (r'^\s*\*', Comment.Single, 'comments-star'),
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
57 (r'/\*', Comment.Multiline, 'comments-block'),
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
58 (r'(^///|(?<=\s)///)', Comment.Special, 'comments-triple-slash')
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
59 ],
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
60 'comments-block': [
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
61 (r'/\*', Comment.Multiline, '#push'),
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
62 # this ends and restarts a comment block. but need to catch this so
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
63 # that it doesn\'t start _another_ level of comment blocks
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
64 (r'\*/\*', Comment.Multiline),
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
65 (r'(\*/\s+\*(?!/)[^\n]*)|(\*/)', Comment.Multiline, '#pop'),
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
66 # Match anything else as a character inside the comment
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
67 (r'.', Comment.Multiline),
5713
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
68 ],
7547
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
69 'comments-star': [
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
70 (r'///.*?\n', Comment.Single,
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
71 ('#pop', 'comments-triple-slash')),
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
72 (r'(^//|(?<=\s)//)(?!/)', Comment.Single,
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
73 ('#pop', 'comments-double-slash')),
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
74 (r'/\*', Comment.Multiline, 'comments-block'),
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
75 (r'.(?=\n)', Comment.Single, '#pop'),
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
76 (r'.', Comment.Single),
5713
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
77 ],
7547
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
78 'comments-triple-slash': [
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
79 (r'\n', Comment.Special, '#pop'),
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
80 # A // breaks out of a comment for the rest of the line
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
81 (r'//.*?(?=\n)', Comment.Single, '#pop'),
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
82 (r'.', Comment.Special),
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
83 ],
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
84 'comments-double-slash': [
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
85 (r'\n', Text, '#pop'),
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
86 (r'.', Comment.Single),
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
87 ],
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
88 # `"compound string"' and regular "string"; note the former are
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
89 # nested.
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
90 'strings': [
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
91 (r'`"', String, 'string-compound'),
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
92 (r'(?<!`)"', String, 'string-regular'),
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
93 ],
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
94 'string-compound': [
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
95 (r'`"', String, '#push'),
5713
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
96 (r'"\'', String, '#pop'),
7547
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
97 (r'\\\\|\\"|\\\$|\\`|\\\n', String.Escape),
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
98 include('macros'),
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
99 (r'.', String)
5713
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
100 ],
7547
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
101 'string-regular': [
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
102 (r'(")(?!\')|(?=\n)', String, '#pop'),
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
103 (r'\\\\|\\"|\\\$|\\`|\\\n', String.Escape),
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
104 include('macros'),
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
105 (r'.', String)
5713
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
106 ],
7547
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
107 # A local is usually
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
108 # `\w{0,31}'
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
109 # `:extended macro'
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
110 # `=expression'
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
111 # `[rsen](results)'
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
112 # `(++--)scalar(++--)'
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
113 #
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
114 # However, there are all sorts of weird rules wrt edge
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
115 # cases. Instead of writing 27 exceptions, anything inside
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
116 # `' is a local.
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
117 #
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
118 # A global is more restricted, so we do follow rules. Note only
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
119 # locals explicitly enclosed ${} can be nested.
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
120 'macros': [
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
121 (r'\$(\{|(?=[\$`]))', Name.Variable.Global, 'macro-global-nested'),
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
122 (r'\$', Name.Variable.Global, 'macro-global-name'),
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
123 (r'`', Name.Variable, 'macro-local'),
5713
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
124 ],
7547
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
125 'macro-local': [
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
126 (r'`', Name.Variable, '#push'),
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
127 (r"'", Name.Variable, '#pop'),
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
128 (r'\$(\{|(?=[\$`]))', Name.Variable.Global, 'macro-global-nested'),
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
129 (r'\$', Name.Variable.Global, 'macro-global-name'),
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
130 (r'.', Name.Variable), # fallback
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
131 ],
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
132 'macro-global-nested': [
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
133 (r'\$(\{|(?=[\$`]))', Name.Variable.Global, '#push'),
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
134 (r'\}', Name.Variable.Global, '#pop'),
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
135 (r'\$', Name.Variable.Global, 'macro-global-name'),
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
136 (r'`', Name.Variable, 'macro-local'),
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
137 (r'\w', Name.Variable.Global), # fallback
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
138 (r'(?!\w)', Name.Variable.Global, '#pop'),
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
139 ],
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
140 'macro-global-name': [
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
141 (r'\$(\{|(?=[\$`]))', Name.Variable.Global, 'macro-global-nested', '#pop'),
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
142 (r'\$', Name.Variable.Global, 'macro-global-name', '#pop'),
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
143 (r'`', Name.Variable, 'macro-local', '#pop'),
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
144 (r'\w{1,32}', Name.Variable.Global, '#pop'),
5713
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
145 ],
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
146 # Built in functions and statements
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
147 'keywords': [
7547
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
148 (words(builtins_functions, prefix = r'\b', suffix = r'(?=\()'),
5713
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
149 Name.Function),
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
150 (words(builtins_base, prefix = r'(^\s*|\s)', suffix = r'\b'),
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
151 Keyword),
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
152 ],
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
153 # http://www.stata.com/help.cgi?operators
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
154 'operators': [
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
155 (r'-|==|<=|>=|<|>|&|!=', Operator),
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
156 (r'\*|\+|\^|/|!|~|==|~=', Operator)
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
157 ],
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
158 # Stata numbers
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
159 'numbers': [
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
160 # decimal number
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
161 (r'\b[+-]?([0-9]+(\.[0-9]+)?|\.[0-9]+|\.)([eE][+-]?[0-9]+)?[i]?\b',
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
162 Number),
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
163 ],
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
164 # Stata formats
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
165 'format': [
7547
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
166 (r'%-?\d{1,2}(\.\d{1,2})?[gfe]c?', Name.Other),
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
167 (r'%(21x|16H|16L|8H|8L)', Name.Other),
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
168 (r'%-?(tc|tC|td|tw|tm|tq|th|ty|tg)\S{0,32}', Name.Other),
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
169 (r'%[-~]?\d{1,4}s', Name.Other),
5713
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
170 ]
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
171 }

eric ide

mercurial