Mercurial > hgrepos > Python > libs > pygments-lexer-pseudocode2
comparison pygments_lexer_pseudocode2/bases.py @ 43:bbef0ac6cfcf
FIX: Proper string parsing: explicitely error out when single-line strings contain a linefeed
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Fri, 24 Apr 2026 19:01:10 +0200 |
| parents | 193ee1eb5013 |
| children | 5bfa9113d3c4 |
comparison
equal
deleted
inserted
replaced
| 42:193ee1eb5013 | 43:bbef0ac6cfcf |
|---|---|
| 7 | 7 |
| 8 __all__ = ["LexBase"] | 8 __all__ = ["LexBase"] |
| 9 | 9 |
| 10 | 10 |
| 11 from pygments.lexer import RegexLexer, combined, bygroups, include | 11 from pygments.lexer import RegexLexer, combined, bygroups, include |
| 12 from pygments.token import Number, String, Comment | 12 from pygments.token import Error, Name, Number, String, Comment |
| 13 | 13 |
| 14 | 14 |
| 15 class LexBase(RegexLexer): | 15 class LexBase(RegexLexer): |
| 16 | 16 |
| 17 """A base that defines some common lexer states. | 17 """A base that defines some common lexer states. |
| 54 # Their names have been prefixed with `py-'. | 54 # Their names have been prefixed with `py-'. |
| 55 # | 55 # |
| 56 # SPDX-SnippetBegin | 56 # SPDX-SnippetBegin |
| 57 # SPDX-License-Identifier: BSD-2-Clause | 57 # SPDX-License-Identifier: BSD-2-Clause |
| 58 # SPDX-SnippetCopyrightText: Copyright 2006-2023 by the Pygments team | 58 # SPDX-SnippetCopyrightText: Copyright 2006-2023 by the Pygments team |
| 59 # SPDX-SnippetCopyrightText: Copyright 2026 by Franz Glasner | |
| 59 # | 60 # |
| 60 'py-numbers': [ | 61 'py-numbers': [ |
| 61 (r'(\d(?:_?\d)*\.(?:\d(?:_?\d)*)?|(?:\d(?:_?\d)*)?\.\d(?:_?\d)*)' | 62 (r'(\d(?:_?\d)*\.(?:\d(?:_?\d)*)?|(?:\d(?:_?\d)*)?\.\d(?:_?\d)*)' |
| 62 r'([eE][+-]?\d(?:_?\d)*)?', Number.Float), | 63 r'([eE][+-]?\d(?:_?\d)*)?', Number.Float), |
| 63 (r'\d(?:_?\d)*[eE][+-]?\d(?:_?\d)*j?', Number.Float), | 64 (r'\d(?:_?\d)*[eE][+-]?\d(?:_?\d)*j?', Number.Float), |
| 95 String.Escape) | 96 String.Escape) |
| 96 ], | 97 ], |
| 97 'py-dqs': [ | 98 'py-dqs': [ |
| 98 (r'"', String.Double, '#pop'), | 99 (r'"', String.Double, '#pop'), |
| 99 (r'\\\\|\\"|\\\n', String.Escape), # included here for raw strings | 100 (r'\\\\|\\"|\\\n', String.Escape), # included here for raw strings |
| 100 include('py-strings-double') | 101 include('py-strings-double'), |
| 102 (r'\n', Error), # added by fag | |
| 101 ], | 103 ], |
| 102 'py-sqs': [ | 104 'py-sqs': [ |
| 103 (r"'", String.Single, '#pop'), | 105 (r"'", String.Single, '#pop'), |
| 104 (r"\\\\|\\'|\\\n", String.Escape), # included here for raw strings | 106 (r"\\\\|\\'|\\\n", String.Escape), # included here for raw strings |
| 105 include('py-strings-single') | 107 include('py-strings-single'), |
| 108 (r'\n', Error), # added by fag | |
| 106 ], | 109 ], |
| 107 'py-tdqs': [ | 110 'py-tdqs': [ |
| 108 (r'"""', String.Double, '#pop'), | 111 (r'"""', String.Double, '#pop'), |
| 109 include('py-strings-double'), | 112 include('py-strings-double'), |
| 110 (r'\n', String.Double) | 113 (r'\n', String.Double) |
