@@ -35,7 +35,7 @@ def is_keyword(value):
3535
3636 (r"`(``|[^`])*`" , tokens .Name ),
3737 (r"´(´´|[^´])*´" , tokens .Name ),
38- (r'(\$(?:[_A-Z ]\w*)?\$)[\s\S]*?\1' , tokens .Literal ),
38+ (r'(\$(?:[_A-ZÀ-Ü ]\w*)?\$)[\s\S]*?\1' , tokens .Literal ),
3939
4040 (r'\?' , tokens .Name .Placeholder ),
4141 (r'%(\(\w+\))?s' , tokens .Name .Placeholder ),
@@ -47,20 +47,20 @@ def is_keyword(value):
4747 # is never a functino, see issue183
4848 (r'(CASE|IN|VALUES|USING)\b' , tokens .Keyword ),
4949
50- (r'(@|##|#)[A-Z ]\w+' , tokens .Name ),
50+ (r'(@|##|#)[A-ZÀ-Ü ]\w+' , tokens .Name ),
5151
5252 # see issue #39
5353 # Spaces around period `schema . name` are valid identifier
5454 # TODO: Spaces before period not implemented
55- (r'[A-Z ]\w*(?=\s*\.)' , tokens .Name ), # 'Name' .
56- (r'(?<=\.)[A-Z ]\w*' , tokens .Name ), # .'Name'
57- (r'[A-Z ]\w*(?=\()' , tokens .Name ), # side effect: change kw to func
55+ (r'[A-ZÀ-Ü ]\w*(?=\s*\.)' , tokens .Name ), # 'Name' .
56+ (r'(?<=\.)[A-ZÀ-Ü ]\w*' , tokens .Name ), # .'Name'
57+ (r'[A-ZÀ-Ü ]\w*(?=\()' , tokens .Name ), # side effect: change kw to func
5858
5959 # TODO: `1.` and `.1` are valid numbers
6060 (r'-?0x[\dA-F]+' , tokens .Number .Hexadecimal ),
6161 (r'-?\d*(\.\d+)?E-?\d+' , tokens .Number .Float ),
6262 (r'-?\d*\.\d+' , tokens .Number .Float ),
63- (r'-?\d+(?![_A-Z ])' , tokens .Number .Integer ),
63+ (r'-?\d+(?![_A-ZÀ-Ü ])' , tokens .Number .Integer ),
6464
6565 (r"'(''|\\\\|\\'|[^'])*'" , tokens .String .Single ),
6666 # not a real string literal in ANSI SQL:
@@ -77,7 +77,7 @@ def is_keyword(value):
7777 (r'CREATE(\s+OR\s+REPLACE)?\b' , tokens .Keyword .DDL ),
7878 (r'DOUBLE\s+PRECISION\b' , tokens .Name .Builtin ),
7979
80- (r'[0-9_A-Z ][_$#\w]*' , is_keyword ),
80+ (r'[0-9_A-ZÀ-Ü ][_$#\w]*' , is_keyword ),
8181
8282 (r'[;:()\[\],\.]' , tokens .Punctuation ),
8383 (r'[<>=~!]+' , tokens .Operator .Comparison ),
0 commit comments