
# HanulLang Ver.2
엄랭에서 가져온 개념들로 만들었습니다.

# 설치하기

### rust
```shell
git clone https://github.com/TarkWonu/HanulLang-V2
cd HanulLang-V2
cargo install --path hanul-lang/rust/
```
### python
```shell
pip install hanul
```

## 설치확인하기

```shell
hanul examples/helloworld.eagen
```


# 문법
## 시작과 끝
모든 파일의 구조는 다음과 같이 작성되어야 합니다
```
대체 누가 #시작부분
디미고를 서류로 떨어짐? #끝부분
```
## 주석
`#` 뒤에 오는 문자열은 모두 주석으로 인식합니다.
```
# 이 글은 주석입니다.
# 이 굴은 주식입니다.
```
## 정수 표기
`호에엥`과 `하와와`의 길이로 나타냅니다. `호에엥`의 길이만큼 1이 더해지며 `하와와`의 길이만큼 -1이 더해집니다. 온점을 추가하여 각각 1씩 빼거나 더할 수 있습니다.
```
호엥 # 2
호에에엥 # 4
호에에엥.. # 4 + (-2) = 2

하와 # -2
하와와와 # -4
하와와와.. # -4 + (2) = -2
```


### 곱셈표기법
`훌쩍`으로 연결한 두 정수는 곱셈으로 계산됩니다.
```
호엥 훌쩍 호에엥 훌쩍 호에에에엥 훌쩍 호에에에에에엥 훌쩍 호에엥.. 호에엥..
# 2, 3, 5, 7, 11
# -> 2 * 3 * 5 * 7 * 11
# -> 2310
```
### 덧셈표기법
`21대 3`으로 연결한 두 정수는 덧셈으로 계산됩니다.
```
호엥 21대3 호에엥 #2 + 3 = 5
호에에엥.. 21대3 호엥... #2 + (-1) = 1
호에엥 뿌엑 호에에에에에에에에엥 #3 + 10 = 13
```

## 변수
`디미`, `디이미`, `디이이미` 꼴로 변수를 저장할 수 있고, 똑같은 꼴로 변수를 사용할 수 있습니다.
```
디미 호에엥..  #0번째 변수에 1 저장!
디이미 호에에엥..  #1번째 변수에 2 저장!
디이이미 디미  #2번째 변수에 0번째 변수값 저장!
```

## 출력
`서류제출`로 변수에 저장된 값이나 숫자를 출력할수 있습니다
```
서류제출 호에엥.. #3출력
```
`에겐`으로 변수에 저장된 값이나 숫자를 아스키코드로 변환해 문자로 출력할수 있습니다
```
에겐 호에에에에에에엥 훌쩍 호에에에에에에에엥  #72 = H 출력
```
`제발`키워드로 줄바꿈 가능
```
에겐 호에에에에에에엥 훌쩍 호에에에에에에에엥 제발
서류제출 호에에에에에에엥 훌쩍 호에에에에에에에엥 제발
```

## 변수 이동

`디떨!` 키워드를 사용하면 한 변수의 값을 다른 변수로 복사할 수 있습니다.
두 가지 문법을 지원합니다:
```
#공백으로 구분하는 방식

디떨! 디미 디이미  #0번째 변수 값을 1번째 변수로 복사


#화살표(->)를 사용하는 방식

디떨! 디미 -> 디이미  #0번째 변수 값을 1번째 변수로 복사
```

## 조건문

`가을야구?` 키워드를 사용하여 조건문을 작성할 수 있습니다.
조건식의 값이 0이 아니면 그러면 블록을 실행하고, 0이면 아니면 블록을 실행합니다.


**기본 구조**

`가을야구? <조건식> 그러면 <명령어> 아니면 <명령어>`


예시
```
디미 호에엥..         # 0번째 변수 = 1
가을야구? 디미 그러면 서류제출 호에에엥 아니면 서류제출 하와와와.
# 조건식: 디미 (1) → 0이 아님 → "서류제출 호에에엥" 실행
# 출력 결과: 3
```

아니면 블록은 생략할 수 있습니다. 조건이 0이면 아무 일도 일어나지 않습니다.
```
가을야구? 디미 그러면 서류제출 호에엥
```
## 입력
`키움아래`키워드로 변수에 입력 받을수 있습니다
```
키움아래 디미 #0번째 변수에 입력 받음
키움아래 디이미 #1번째 변수에 입력 받음
키움아래 디이이미 #2번째 변수에 입력 받음
```

## 점프

`30실점` 키워드를 사용하면 특정 줄로 점프합니다.
```
디미 호에엥..                   # 변수0 = 1
디이미 호에에에에에에에에에엥.. # 변수1 = 11
30실점 5
서류제출 디미
서류제출 디이미 #여기로 이동
```
```
출력:
11

프로그램 종료
```
## 종료

`탈선린` 키워드를 사용하면 프로그램을 종료합니다.
