Skip to content

add support for SAN notation parsing and generation#30

Merged
winapiadmin merged 16 commits intomainfrom
san_notations
Dec 11, 2025
Merged

add support for SAN notation parsing and generation#30
winapiadmin merged 16 commits intomainfrom
san_notations

Conversation

@winapiadmin
Copy link
Copy Markdown
Owner

  • Implement parseSan function to parse Standard Algebraic Notation moves
  • Add moveToSan function to convert moves to SAN strings
  • Introduce IllegalMoveException and AmbiguousMoveException for error handling
  • Refactor code by moving squares_between_bb generation to attacks.cpp
  • Update parse_square to handle invalid inputs gracefully
  • Fix copy constructor in position.h and adjust is_castling method
  • Reorganize and update test cases in tests.cpp
  • Add new non_core_tests.cpp file for additional tests
  • Enhance CMakeLists.txt with new test executable
  • [critical] Hotfix for Undefined order of initialization #29 for implementation-defined global initialization routine

This adds comprehensive SAN support, improving move input/output capabilities for better chess engine integration, and fix a UB of the library

- Implement parseSan function to parse Standard Algebraic Notation moves
- Add moveToSan function to convert moves to SAN strings
- Introduce IllegalMoveException and AmbiguousMoveException for error handling
- Refactor code by moving squares_between_bb generation to attacks.cpp
- Update parse_square to handle invalid inputs gracefully
- Fix copy constructor in position.h and adjust is_castling method
- Reorganize and update test cases in tests.cpp
- Add new non_core_tests.cpp file for additional tests
- Enhance CMakeLists.txt with new test executable
- [critical] Hotfix for #29 for implementation-defined global initialization routine

This adds comprehensive SAN support, improving move input/output capabilities for better chess engine integration, and fix a UB of the library
@winapiadmin winapiadmin changed the title feat(moves): add support for SAN notation parsing and generation add support for SAN notation parsing and generation Dec 10, 2025
winapiadmin and others added 15 commits December 10, 2025 23:11
- Updated the output operator for pieces to use a switch-case structure for better readability and maintainability.
- Removed the previous string_view mapping for piece representation.
- Enhanced the template specialization for the output operator to include PieceC directly.
- Cleaned up the code in `types.h` by formatting enums for better clarity and consistency.
- Added missing includes and ensured proper use of forward declarations.
- Removed unnecessary debug output in tests to streamline test results.
Updated comment to clarify which trailing annotations are stripped.
Updated the GitHub Actions workflow for clang-format to include permissions and a new job structure, allowing automatic formatting and committing of changes.
@winapiadmin winapiadmin merged commit 9942ae8 into main Dec 11, 2025
11 checks passed
This was referenced Dec 11, 2025
@winapiadmin winapiadmin deleted the san_notations branch January 8, 2026 04:39
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