comparison pygments_lexer_pseudocode2/algpseudocode.py @ 162:11ce0903ff8b

Yield lone backslash characters in expressions that not really escape anything as "Generic.Error" now. In text-mode do this not.
author Franz Glasner <fzglas.hg@dom66.de>
date Fri, 08 May 2026 17:58:50 +0200
parents 00a432d14508
children
comparison
equal deleted inserted replaced
161:00a432d14508 162:11ce0903ff8b
344 "entity-name": [ # may be multiline 344 "entity-name": [ # may be multiline
345 (r"[^\\}]+", Name.Entity), 345 (r"[^\\}]+", Name.Entity),
346 (r"\}", LexBase.op_ignore, "#pop"), 346 (r"\}", LexBase.op_ignore, "#pop"),
347 (r"\\\}", LexBase.op_fixed(Name.Entity, "}")), 347 (r"\\\}", LexBase.op_fixed(Name.Entity, "}")),
348 (r"\\\\", LexBase.op_fixed(Name.Entity, "\\")), 348 (r"\\\\", LexBase.op_fixed(Name.Entity, "\\")),
349 (r"\\", LexBase.op_fixed(Name.Entity, "\\")), 349 (r"\\", LexBase.op_fixed(Generic.Error, "\\")),
350 ], 350 ],
351 "entity-name-end": [ # may be multiline -- suppressed if no_end 351 "entity-name-end": [ # may be multiline -- suppressed if no_end
352 (r"[^\\}]+", op_opt_ignore(Name.Entity)), 352 (r"[^\\}]+", op_opt_ignore(Name.Entity)),
353 (r"\}", LexBase.op_ignore, "#pop"), 353 (r"\}", LexBase.op_ignore, "#pop"),
354 (r"\\\}", op_opt_ignore_or_fixed(Name.Entity, "}")), 354 (r"\\\}", op_opt_ignore_or_fixed(Name.Entity, "}")),
355 (r"\\\\", op_opt_ignore_or_fixed(Name.Entity, "\\")), 355 (r"\\\\", op_opt_ignore_or_fixed(Name.Entity, "\\")),
356 (r"\\", op_opt_ignore_or_fixed(Name.Entity, "\\")), 356 (r"\\", op_opt_ignore_or_fixed(Generic.Error, "\\")),
357 ], 357 ],
358 "expr": [ 358 "expr": [
359 include("math-symbols"), # must be before punctuation 359 include("math-symbols"), # must be before punctuation
360 include("ascii-punctuation"), 360 include("ascii-punctuation"),
361 include("unicode-punctuation"), 361 include("unicode-punctuation"),
392 "block-expr": [ # somewhat similar to "root" 392 "block-expr": [ # somewhat similar to "root"
393 (r"\}", LexBase.op_ignore, "#pop"), 393 (r"\}", LexBase.op_ignore, "#pop"),
394 (r"\n", Whitespace), 394 (r"\n", Whitespace),
395 include("expr-in-braces"), 395 include("expr-in-braces"),
396 (r"\\\\", LexBase.op_fixed(Text, "\\")), 396 (r"\\\\", LexBase.op_fixed(Text, "\\")),
397 (r"\\", LexBase.op_fixed(Text, "\\")), 397 (r"\\", LexBase.op_fixed(Generic.Error, "\\")),
398 include("unicode-separators"), 398 include("unicode-separators"),
399 include("unicode-other"), 399 include("unicode-other"),
400 (r"[^\S\n]+", Text), 400 (r"[^\S\n]+", Text),
401 (r".", Error), 401 (r".", Error),
402 ], 402 ],
409 LexBase.op_ignore, 409 LexBase.op_ignore,
410 "block-expr"), 410 "block-expr"),
411 include("explicit-tokentype"), 411 include("explicit-tokentype"),
412 include("remark"), 412 include("remark"),
413 (r"\\\\", LexBase.op_fixed(Text, "\\")), 413 (r"\\\\", LexBase.op_fixed(Text, "\\")),
414 (r"\\", LexBase.op_fixed(Text, "\\")), 414 (r"\\", LexBase.op_fixed(Text, "\\")), # in text-mode: leave Text
415 (r".", Error), 415 (r".", Error),
416 ], 416 ],
417 "text-in-expr": [ 417 "text-in-expr": [
418 (r"[^\\}\n]+", Text), 418 (r"[^\\}\n]+", Text),
419 (r"\}", LexBase.op_ignore, "#pop"), 419 (r"\}", LexBase.op_ignore, "#pop"),
423 LexBase.op_ignore, 423 LexBase.op_ignore,
424 "block-expr"), 424 "block-expr"),
425 include("explicit-tokentype"), 425 include("explicit-tokentype"),
426 include("remark"), 426 include("remark"),
427 (r"\\\\", LexBase.op_fixed(Text, "\\")), 427 (r"\\\\", LexBase.op_fixed(Text, "\\")),
428 (r"\\", LexBase.op_fixed(Text, "\\")), 428 (r"\\", LexBase.op_fixed(Text, "\\")), # in text-mode: leave Text
429 (r".", Error), 429 (r".", Error),
430 ], 430 ],
431 "math-builtins": [ 431 "math-builtins": [
432 (words(("sqrt", "pow", "cos", "sin", "tan", "arcos", "arcsin", 432 (words(("sqrt", "pow", "cos", "sin", "tan", "arcos", "arcsin",
433 "arctan", "arctan2", "mod", "exp", "ln", "log", 433 "arctan", "arctan2", "mod", "exp", "ln", "log",