Metadata-Version: 2.4
Name: ckr_lang
Version: 0.1.7
Summary: A Fan-made Python interpreter for the ChoiKangRok Esolang
Author: hannim
Project-URL: Homepage, https://github.com/BK-Dan/ckr-lang
Keywords: esolang,choikangrok,interpreter,korean,fan-made,parody
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Topic :: Software Development :: Interpreters
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Dynamic: license-file

# ChoiKangRok Esolang Interpreter (CKR-Lang)

> [!CAUTION]
> **스포일러 경고 (Spoiler Alert)**
> 이 프로젝트는 넷플릭스 예능 **'흑백요리사2: 요리 계급 전쟁 (Culinary Class Wars 2)'**의 스포일러를 포함할 수 있습니다.
> 방송 내용을 미리 알고 싶지 않으신 분은 즉시 이 페이지를 닫아주시기 바랍니다.

## 프로젝트 소개
> [!NOTE]
> **Unofficial Fan Project**
> 이 프로젝트는 넷플릭스 예능 '흑백요리사2'와 최강록 셰프의 팬이 만든 **비공식 팬 메이드 프로젝트**입니다. 
> 공식 컨텐츠나 인물과는 관계가 없으며, 순수한 팬심과 프로그래밍의 즐거움을 위해 제작되었습니다.

**CKR-Lang**은 '최강록' 셰프의 독특한 화법과 조리법을 프로그래밍 언어로 재해석한 난해한 프로그래밍 언어(Esolang) 인터프리터입니다.
엄격한 명세 준수, 모듈화된 아키텍처, 그리고 강력한 디버깅 기능을 제공하며, 이제 `pip`를 통해 간편하게 설치할 수 있습니다.

## 설치 방법 (Installation)
Python 3.8 이상 환경에서 다음 명령어로 패키지를 설치하십시오.

```bash
pip install ckr-lang
```

## 사용법 (Usage)
설치가 완료되면 터미널 어디서든 `ckr` 명령어를 사용할 수 있습니다.

### 1. 코드 실행
```bash
ckr hello_world.ckr
```

### 2. 대화형 모드 (REPL)
파일 인자 없이 실행하면 한 줄씩 코드를 입력하고 실행 결과를 확인할 수 있습니다.
```bash
ckr
```

### 3. 디버그 모드
실행 과정을 상세히 추적(Trace)하고 싶다면 `-d` 옵션을 사용하세요.
```bash
ckr hello_world.ckr -d
```

### 4. 자체 테스트
인터프리터의 정상 동작 여부를 검증하려면 다음 명령어를 실행하세요.
```bash
ckr --test
```

## 조리법 (Syntax)
이 언어는 셰프의 주방을 시뮬레이션합니다. 모든 데이터는 '재료'이며, 조리 과정을 통해 맛(값)이 변합니다.

- **개점/폐점 (Program Scope)**
  - 시작: `흑백요리사2 히든백수저 최강록`
  - 끝: `백수저 최강록 우승`

- **재료 손질 (Ingredients)**
  - 선언: `나야 <재료명>` (재료를 0으로 초기화)
  - *추천 재료: 장어, 두부, 대파, 꽃게, 새우, 전복, 아귀 등*

- **조리 (Cooking Operations)**
  - `조려` (ADD): 더하기
  - `조린다` (SUB): 빼기
  - `조리고` (MUL): 곱하기
  - `앙` (INVERSE): 부호 반전

- **플레이팅 (Plating)**
  - `을` (Print): 현재 재료의 맛(Value)을 문자로 변환하여 접시에 냅니다 (ASCII Output).

- **주방 동선 (Control Flow)**
    - `연쇄조림마<점>` (Label): 이동할 지점을 점(`.`)으로 표시합니다. (예: `연쇄조림마.`, `연쇄조림마..`)
  - `조림핑<점>` (GOTO): 해당 지점으로 이동합니다. 점을 붙여서 바로 이동할 수 있습니다. (예: `조림핑.`, `조림핑..`, `조림핑...`)
  - **조건부 이동**:
    - `조림인간` (IF ==): 재료들의 맛이 동일하면 이동합니다.
    - `욕망의조림인간` (IF >): 첫 번째 재료의 맛이 나머지보다 강하면 이동합니다.

## 예제 코드 (Examples)
- `examples/hello_world.ckr`: 기본적인 Hello World 출력
- `examples/hello_fun_world.ckr`: 좀더 난해하게 작성된 Hello World
- `examples/gugu_dan.ckr`: 2단부터 9단까지 구구단을 출력하는 프로그램

