summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorg Brandl <georg@python.org>2016-02-08 08:34:32 +0100
committerGeorg Brandl <georg@python.org>2016-02-08 08:34:32 +0100
commit968f917d857f3c795e4809af6be2ec595e7a6b6b (patch)
tree78ccaee9592d80db2091d590e45b9e02e4a31f57
parent3bd4d646184b2605d9b6f714f246d05b25f364df (diff)
downloadpygments-968f917d857f3c795e4809af6be2ec595e7a6b6b.tar.gz
Make postgres strings use their own state.
-rw-r--r--pygments/lexers/sql.py14
1 files changed, 12 insertions, 2 deletions
diff --git a/pygments/lexers/sql.py b/pygments/lexers/sql.py
index 05503c3a..a7736f75 100644
--- a/pygments/lexers/sql.py
+++ b/pygments/lexers/sql.py
@@ -148,8 +148,8 @@ class PostgresLexer(PostgresBase, RegexLexer):
(r'\$\d+', Name.Variable),
(r'([0-9]*\.[0-9]*|[0-9]+)(e[+-]?[0-9]+)?', Number.Float),
(r'[0-9]+', Number.Integer),
- (r"(E|U&)?'(''|[^'])*'", String.Single),
- (r'(U&)?"(""|[^"])*"', String.Name), # quoted identifier
+ (r"(E|U&)?'", String.Single, 'string'),
+ (r'(U&)?"', String.Name, 'quoted-ident'), # quoted identifier
(r'(?s)(\$[^$]*\$)(.*?)(\1)', language_callback),
(r'[a-z_]\w*', Name),
@@ -164,6 +164,16 @@ class PostgresLexer(PostgresBase, RegexLexer):
(r'[^/*]+', Comment.Multiline),
(r'[/*]', Comment.Multiline)
],
+ 'string': [
+ (r"[^']+", String.Single),
+ (r"''", String.Single),
+ (r"'", String.Single, '#pop'),
+ ],
+ 'quoted-ident': [
+ (r'[^"]+', String.Name),
+ (r'""', String.Name),
+ (r'"', String.Name, '#pop'),
+ ],
}