Skip to content

C++ Kiwi POS 태그 정의와 Go 코드 자동 동기화 방안 제안 ✨ #40

@kkweon

Description

@kkweon

요약

postype.go 파일의 POS 태그 정의를 C++ 원본 저장소(bab2min/Kiwi)와 자동으로 동기화하는 프로세스 도입을 제안합니다. 🤖

배경

현재 Go의 POS 태그 정의(codingpot/kiwigo/postype.go)는 C++의 enum 및 태그 문자열 배열(Types.h / Utils.cpp)과 수동으로 맞추고 있습니다.
하지만 업스트림에 새로운 태그가 추가되면 수동 동기화가 번거롭고, 실수도 발생하기 쉽습니다. 🥲

제안

  • 안정적인 C++ 파서(예: LLVM/Clang LibTooling 또는 Python libclang)로 업스트림 C++ 파일에서 POS 태그 정의를 자동 추출합니다. 🦾
  • 동기화 시점에 맞는 커밋/태그의 소스파일을 자동으로 가져옵니다. ⏳
  • 추출된 태그와 Go의 정의를 비교해 누락/과잉/변경 태그를 리포트 및 자동 갱신하도록 합니다. 🚦
  • 스크립트 또는 CI 작업으로 통합해, 지속적으로 동기화 상태를 체크합니다. 🔄

작업 목록

  • C++ 코드를 안정적으로 파싱할 툴(LLVM/Clang, tree-sitter 등) 조사 및 선정
  • 특정 커밋/태그의 업스트림 C++ 파일을 자동으로 받아오고, 태그 목록 추출 스크립트 작성
  • 추출된 태그와 Go 태그(postype.go) 비교
  • 필요시 Go 코드 자동 생성/갱신 기능 추가
  • 동기화에 사용된 업스트림 커밋/태그 정보 명확히 문서화
  • (선택) CI에 통합해 자동으로 태그 불일치 감지

참고자료


이 이슈는 Go POS 태그 정의를 업스트림 C++ 원본과 자동·안정적으로 맞추는 작업을 추적합니다.
정규표현식 대신 AST 기반 파서를 활용해 확실한 동기화를 목표로 합니다! 💪

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentation

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions