Daniele Varrazzo avatar Daniele Varrazzo committed bbfc82d

Added unicode strings/names to PostgreSQL lexer

Comments (0)

Files changed (2)

pygments/lexers/postgres.py

           `_postgres_builtins` module to update them);
         - Content of $-strings parsed using a specific lexer, e.g. the content
           of a PL/Python function is parsed using the Python lexer;
-        - parse PG specific constructs: E-strings, $-strings, different
-          operators and punctuation.
+        - parse PG specific constructs: E-strings, $-strings, U&-strings,
+          different operators and punctuation.
 
     `PlPgsqlLexer`
         A lexer for the PL/pgSQL language. Adds a few specific construct on
             (r'\$\d+', Name.Variable),
             (r'([0-9]*\.[0-9]*|[0-9]+)(e[+-]?[0-9]+)?', Number.Float),
             (r'[0-9]+', Number.Integer),
-            # TODO: Backslash escapes?
-            (r"E?'(''|[^'])*'", String.Single),
-            (r'"(""|[^"])*"', String.Name), # quoted identifier
+            (r"(E|U&)?'(''|[^'])*'", String.Single),
+            (r'(U&)?"(""|[^"])*"', String.Name), # quoted identifier
             (r'(?ms)(\$[^\$]*\$)(.*?)(\1)', language_callback),
             (r'[a-zA-Z_][a-zA-Z0-9_]*', Name),
 

tests/examplefiles/postgresql_test.txt

 end
 $$;
 
+-- Unicode names and strings
+SELECT U&'\0441\043B\043E\043D'
+FROM U&"\0441\043B\043E\043D";
 
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.