겜마루 출신 킹갓 충무공 제너럴 "이국"을 숭상하기 위해 만든 언어입니다.
이 프로젝트는 이국랭의 JavaScript 구현체 입니다.
문법은 브레인퍽(Brainfuck)과 1대1 대응됩니다.
Required: node 14+
node src/main [파일]
node src/main example/print-hello.iguk
Hello, World!
Keyword | Action |
---|---|
이구(우+)욱 | 포인터가 가리키는 바이트를 이구 와 욱 사이에 우 개수 만큼 증가신키다. |
이구(구+)국 | 포인터가 가리키는 바이트를 이구 와 욱 사이에 구 개수 만큼 감소신키다. |
고수? | 포인터를 1 증가 시킨다. |
하- | 포인터를 1 감소 시킨다. |
신 | 포인터가 가리키는 바이트의 값이 0이 되면, 대응되는 킹갓 충무공 제너럴 로 이동한다. |
킹갓 충무공 제너럴 | 포인터가 가리키는 바이트의 값이 0이 아니면, 대응되는 신 으로 이동한다. |
이국 왤케 고수임? | 포인터가 가리키는 바이트에 아스키 코드 값을 입력한다. |
이국이 처럼 살고싶다. | 포인터가 가리키는 바이트 값을 아스키 코드 문자로 출력한다. |
주석은 //
를 사용합니다.
이구우우우우우우우우우우욱 // 현재 바이트를 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 증가 후 출력 ('!')
사용 가능한 메모리 영역은 1바이트 정수로 이루어진 32768 길이의 배열입니다.
포인터를 제어하여 특정 셀에 접근할 수 있습니다.
언어 특성상 무한 루프에 매우 취약하며, 디버깅이 매우 어습니다.
버그 발견시 이슈에 업로드 바랍니다.
진짜 할일 없어서 심심하면 포크해가서 PR 올리세요.
특히, example 커밋을 해주시면 정말로 감사하겠습니다.
이 언어는 겜마루의 초초초 '갓'전지님과 '갓'상현님의 아이디어로 시작되었습니다.