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

    No fields configured for Task.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions