Misaka_Company 613d4436de
All checks were successful
NTFY Notification / notify (push) Successful in 12s
refactor: rewrite M05_PreProcessor using regex expressions
Replace character-by-character parsing with regex-based implementation
for value mapping and OR condition merging.

Changes:
- Add ApplyRegexMapping() for regex-based value replacement
  * Uses VBScript.RegExp with Late Binding
  * Replaces from back to front to avoid position shifts
  * Uses regex.Replace() method for precise matching
  * Includes EscapeForRegex() to handle special characters
- Add ProcessNestedExpressions() for recursive parenthesis handling
- Add MergeDuplicateORConditions() for OR deduplication
- Add SimplifyParentheses() for smart parenthesis removal
- Remove ProcessAndSimplifyNested() (150+ lines of complex logic)
- Remove ProcessAndSegment(), ProcessAtom(), ParseAtom()
- Remove MergeDuplicateORs(), MaybeRemoveOuterParentheses()
- Remove JoinCollection(), MergeDuplicateAtoms()

Regex patterns used:
- azxs: (azxs)( *=|!= *)([a-zA-Z0-9]{2})
- lcfw: (lcfw)( *=|!= *)([a-zA-Z]\d{1,3})(?=[ \(\)]?)

Processing flow:
1. Apply azxs value mapping (regex)
2. Apply lcfw value mapping (regex)
3. Process nested expressions (recursive OR merge)
4. Merge top-level OR conditions
5. Simplify unnecessary parentheses

Benefits:
- Code reduced from 647 to 553 lines (-15%)
- Core logic simplified significantly
- Better performance: single regex pass vs multiple string traversals
- Improved readability and maintainability
- Precise replacement using regex.Replace() instead of string Replace()
- Preserved late binding and backward compatibility

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-10 12:28:41 +08:00
Description
No description provided
918 KiB
Languages
VBA 87.3%
Visual Basic 6.0 12.7%