comparison pygments_lexer_pseudocode2/algpseudocode.py @ 98:c1f93e109798

More tolerance for errors: yield more Generic.Error tokens
author Franz Glasner <fzglas.hg@dom66.de>
date Sun, 03 May 2026 16:56:23 +0200
parents dd4eb937485c
children 857df2064831
comparison
equal deleted inserted replaced
97:dd4eb937485c 98:c1f93e109798
280 r"|(?:with)" 280 r"|(?:with)"
281 r")\b", 281 r")\b",
282 bygroups(op_translate(Keyword))), 282 bygroups(op_translate(Keyword))),
283 include("expr"), 283 include("expr"),
284 (r"[^\S\n]+", Text), 284 (r"[^\S\n]+", Text),
285 (r".", Generic.Error), # tolerance for errors
285 ], 286 ],
286 "remark": [ 287 "remark": [
287 (r"(?i)\\(remark|rem)\b(.*)$", 288 (r"(?i)\\(remark|rem)\b(.*)$",
288 bygroups(op_symbol(Comment.Single), Comment.Single)), 289 bygroups(op_symbol(Comment.Single), Comment.Single)),
289 ], 290 ],
330 (r"\n", Whitespace), 331 (r"\n", Whitespace),
331 include("expr-in-braces"), 332 include("expr-in-braces"),
332 (r"\\\\", LexBase.op_fixed(Text, "\\")), 333 (r"\\\\", LexBase.op_fixed(Text, "\\")),
333 (r"\\", LexBase.op_fixed(Text, "\\")), 334 (r"\\", LexBase.op_fixed(Text, "\\")),
334 (r"[^\S\n]+", Text), 335 (r"[^\S\n]+", Text),
336 (r".", Generic.Error), # tolerance for errors
335 ], 337 ],
336 "text-statement": [ # like block but default to text-mode 338 "text-statement": [ # like block but default to text-mode
337 (r"[^\\}\n]+", Text), 339 (r"[^\\}\n]+", Text),
338 (r"\}", LexBase.op_ignore, "#pop"), 340 (r"\}", LexBase.op_ignore, "#pop"),
339 (r"\n", Whitespace), 341 (r"\n", Whitespace),
343 "block-expr"), 345 "block-expr"),
344 include("explicit-tokentype"), 346 include("explicit-tokentype"),
345 include("remark"), 347 include("remark"),
346 (r"\\\\", LexBase.op_fixed(Text, "\\")), 348 (r"\\\\", LexBase.op_fixed(Text, "\\")),
347 (r"\\", LexBase.op_fixed(Text, "\\")), 349 (r"\\", LexBase.op_fixed(Text, "\\")),
350 (r".", Generic.Error), # tolerance for errors
348 ], 351 ],
349 "text-in-expr": [ 352 "text-in-expr": [
350 (r"[^\\}\n]+", Text), 353 (r"[^\\}\n]+", Text),
351 (r"\}", LexBase.op_ignore, "#pop"), 354 (r"\}", LexBase.op_ignore, "#pop"),
352 (r"\n", Whitespace), 355 (r"\n", Whitespace),
355 LexBase.op_ignore, 358 LexBase.op_ignore,
356 "block-expr"), 359 "block-expr"),
357 include("explicit-tokentype"), 360 include("explicit-tokentype"),
358 (r"\\\\", LexBase.op_fixed(Text, "\\")), 361 (r"\\\\", LexBase.op_fixed(Text, "\\")),
359 (r"\\", LexBase.op_fixed(Text, "\\")), 362 (r"\\", LexBase.op_fixed(Text, "\\")),
363 (r".", Generic.Error), # tolerance for errors
360 ], 364 ],
361 "math-builtins": [ 365 "math-builtins": [
362 (words(("sqrt", "pow", "cos", "sin", "tan", "arcos", "arcsin", 366 (words(("sqrt", "pow", "cos", "sin", "tan", "arcos", "arcsin",
363 "arctan", "arctan2", "mod", "exp", "ln", "log"), 367 "arctan", "arctan2", "mod", "exp", "ln", "log"),
364 prefix=r"(?<!\.)", 368 prefix=r"(?<!\.)",