Skip to content

[0044] 修复 gf fix 将独立 | 标识符误识别为 bar symbol 定界符#793

Merged
da-liii merged 1 commit into
mainfrom
da/0044/fix
May 17, 2026
Merged

[0044] 修复 gf fix 将独立 | 标识符误识别为 bar symbol 定界符#793
da-liii merged 1 commit into
mainfrom
da/0044/fix

Conversation

@da-liii
Copy link
Copy Markdown
Contributor

@da-liii da-liii commented May 17, 2026

Summary

  • 修复 gf fix 的 tokenizer 将独立 | 标识符无条件当作 bar symbol(如 |symbol with spaces|)开始定界符的问题
  • 当代码中使用单独的 | 作为普通标识符时(如 define-regexp-grammar 语法中的选择符),从第一个 | 到下一个 | 之间的所有内容(包括大量括号)被当作一个 token 跳过,造成括号修复结果完全错误

Changes

  • tools/fix/liii/goldfix-tokenize.scm: 在 tokenize 函数的 \| 处理分支增加 not (whitespace-char? next-c) 判断,只有当 \| 后面紧跟非空白字符时才进入 bar symbol 处理逻辑
  • tools/fix/tests/liii/goldfix-tokenize/tokenize-lines-test.scm: 添加独立 | 的 tokenize 测试
  • tools/fix/tests/liii/goldfix-repair/fix-string-test.scm: 添加包含独立 |define-regexp-grammar 片段修复测试

Test plan

  • 新测试通过(独立 | 被正确识别为普通标识符)
  • 原有 6 个 goldfix 测试模块全部通过,无回归(98 checks, 0 failed)
  • bin/gf fix --dry-runmenu-widget.scm 的输出与原始文件一致

🤖 Generated with Claude Code

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@da-liii da-liii merged commit 12f2e92 into main May 17, 2026
4 checks passed
@da-liii da-liii deleted the da/0044/fix branch May 17, 2026 14:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant