An open API service indexing awesome lists of open source software.

https://github.com/gomjellie/korean-calculator

한국어 계산 인터프리터
https://github.com/gomjellie/korean-calculator

Last synced: 2 months ago
JSON representation

한국어 계산 인터프리터

Awesome Lists containing this project

README

        

# `korean-calculator`
LRParser 로 만든 한글 계산기 (feat. lex, yacc)

컴파일러 과목 사이드프로젝트

![example.png](./.github/example.png)

# 문법

## 변수

- 변수명은 $로 시작하는 20글자 이내의 연속된 한글이다.
- 타입은 전부 실수타입이며 미리 선언하지 않아도 사용가능하다.

## 연산

- 연산의 우선순위는 괄호 `()` 로 둘러싼 식이 높다.
- 연산의 우선순위는 곱하기 나누기가 더하기 빼기보다 높다.
- unary expression 으로 마이너스값을 표기 가능하다.

### 더하기

한글 `더하기`라고 표기하거나 기호 `+`로 표기한다.

- 10 더하기 2
- 10 + 2

### 빼기

한글 `빼기`라고 표기하거나 기호 `-`로 표기한다.

- 가 더하기 나
- 가 + 나

### 곱하기

한글 `곱하기`라고 표기하거나 기호 `*`로 표기한다.

- 20 곱하기 나
- 20 * 나

### 나누기

한글 `나누기`라고 표기하거나 기호 `/`로 표기한다.

나누는수가 0이되면 에러가 발생한다.

- 20 나누기 나
- 20 / 나

## 대입

### 변수`에` 표현식`[을|를]` 대입한다

```sh
$가에 10 곱하기 2를 대입한다.
$가에 10 곱하기 2를 넣는다.
```

### 표현식`[을|를]` 변수`에` 대입한다

```sh
10나누기 2를 $가에 대입한다.
10나누기 2를 $가에 넣는다.
```

## 변수 값 확인하기

### 변수명`[을|를]` 출력한다

```sh
$가를 출력한다
>> 20입니다.
```

# 빌드

## 맥

```sh
make
```

## ubuntu

```sh
sudo apt install bison flex
make
```