Skip to content

JeHwanYoo/iguklang

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

이국랭(iGuk Language)

Description

겜마루 출신 킹갓 충무공 제너럴 "이국"을 숭상하기 위해 만든 언어입니다.

이 프로젝트는 이국랭의 JavaScript 구현체 입니다.

문법은 브레인퍽(Brainfuck)과 1대1 대응됩니다.

Synopsis

Required: node 14+

node src/main [파일]
node src/main example/print-hello.iguk
Hello, World!

Syntax

Keyword Action
이구(우+)욱 포인터가 가리키는 바이트를 이구 사이에 개수 만큼 증가신키다.
이구(구+)국 포인터가 가리키는 바이트를 이구 사이에 개수 만큼 감소신키다.
고수? 포인터를 1 증가 시킨다.
하- 포인터를 1 감소 시킨다.
포인터가 가리키는 바이트의 값이 0이 되면, 대응되는 킹갓 충무공 제너럴로 이동한다.
킹갓 충무공 제너럴 포인터가 가리키는 바이트의 값이 0이 아니면, 대응되는 으로 이동한다.
이국 왤케 고수임? 포인터가 가리키는 바이트에 아스키 코드 값을 입력한다.
이국이 처럼 살고싶다. 포인터가 가리키는 바이트 값을 아스키 코드 문자로 출력한다.

주석은 // 를 사용합니다.

Hello, World!

이구우우우우우우우우우우욱                                   // 현재 바이트를 10으로 증가
신                                                   // [반복 시작]
고수? 이구우우우우우우우욱                                  // 다음 바이트로 이동, 7 증가
고수? 이구우우우우우우우우우우욱                             // 다음 바이트로 이동, 10 증가
고수? 이구우우우우욱                                     // 다음 바이트로 이동, 4 증가
고수? 이구우우우욱                                      // 다음 바이트로 이동, 3 증가
고수? 이구우우우우우우우우우욱                              // 다음 바이트로 이동, 9 증가
하- 하- 하- 하- 하- 이구구국                             // 첫 번째 바이트로 돌아와서 1 감소
킹갓 충무공 제너럴                                      // [반복 종료] [0, 70, 100, 40, 30, 90]
고수? 이구우우욱 이국이 처럼 살고싶다.                        // 다음 바이트로 이동, 2 증가 후 출력 ('H')
고수? 이구우욱 이국이 처럼 살고싶다.                         // 다음 바이트로 이동, 1 증가 후 출력 ('e')
이구우우우우우우우욱 이국이 처럼 살고싶다. 이국이 처럼 살고싶다.    // 현재 바이트를 7 증가 후 출력 X 2 ('ll')
이구우우우욱 이국이 처럼 살고싶다.                           // 현재 바이트를 3 증가 후 출력 ('o')
고수? 이구우우우우욱 이국이 처럼 살고싶다.                     // 다음 바이트로 이동, 4 증가 후 출력 (',')
고수? 이구우우욱 이국이 처럼 살고싶다.                        // 다음 바이트로 이동, 현재 바이트를 2 증가 후 출력 (' ')
고수? 이구구구구국 이국이 처럼 살고싶다.                       // 다음 바이트로 이동, 현재 바이트를 3 감소 후 출력 ('W')
하- 하- 하- 이국이 처럼 살고싶다.                           // 'o' 가 위치하는 바이트로 이동하고 출력 ('o')
이구우우우욱 이국이 처럼 살고싶다.                            // 현재 바이트를 3 증가 후 출력 ('r')
이구구구구구구구국 이국이 처럼 살고싶다.                        // 현재 바이트를 6 감소 후 출력 ('l')
이구구구구구구구구구국 이국이 처럼 살고싶다.                     // 현재 바이트를 8 감소 후 출력 ('d')
고수? 고수? 이구우욱 이국이 처럼 살고싶다.                     // 두 바이트를 이동, 1 증가 후 출력 ('!')

Limitation

사용 가능한 메모리 영역은 1바이트 정수로 이루어진 32768 길이의 배열입니다.

포인터를 제어하여 특정 셀에 접근할 수 있습니다.

언어 특성상 무한 루프에 매우 취약하며, 디버깅이 매우 어습니다.

Contribute

버그 발견시 이슈에 업로드 바랍니다.

진짜 할일 없어서 심심하면 포크해가서 PR 올리세요.

특히, example 커밋을 해주시면 정말로 감사하겠습니다.

License

BEERWARE

Acknowledgement

이 언어는 겜마루의 초초초 '갓'전지님과 '갓'상현님의 아이디어로 시작되었습니다.

About

Implementation of iGuk in JavaScript

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published