ESOlang

by jeongseo-_-anjeong in Circuits > Software

419 Views, 1 Favorites, 0 Comments

ESOlang

3EE9A750-43AC-4C71-8246-4EDD86219955.png

Hello guys :)

I saw ESOlang (Which is code that hard to read) and i want to make them. So i made ESOlangkit.

Supplies

ESOlangkit(free to use!) Download: https://github.com/jeongseoanjeong/ESOlangkit

Fix/customize the Code!

This python3 code interprets the code you made.

please readme.md and fix downloaded code!

like this:

(I recommend to fix and customize only values of operators and error!)

fileext=“.apple”

Test Your Code!

if you finished customizing code, then you can test.

case of me, i made this.

###########
#난해한 언어 키트
#이 키트는 퍼블릭 도메인에 의해 배포됩니다.
#수정하실 분은 수정하시고, 언제든 다른 언어로 번역하실 자원봉사자분들도 환영합니다!
#이 구문은 파이썬3으로 열어야 합니다.(파이썬2 이용시, input()->raw_input())
import sys
#줄 번호를 나타내는 변수
li=0
#파일 확장자 지정
fileext=".jslang"
#파일 확장자 에러 시 지정문구
fileexterror="파일불안"
#파일 맞는지 여부
file_correct=False
#파일 이름
filename=""
#필수 문구가 맞지 않으면 나타나는 에러
SEerror="걍 정서불안"
#코드 리스트
command_list=[]
#처음/끝 필수 문구 지정
start="#정서안정"
end="#정서불안"
#변수 선언 구문 지정(ex. "정"으로 지정하면 "정"이 있어야만 변수로 읽힘)
v1="정"
#포인팅 변수 지정(ex. "안"으로 지정하면 "안"이 몇개인지를 세어 ("안"의개수)번째 변수를 조작.리스트로 하는것을 추천.
v2=["아","안"]
#변수 리스트
var_list=[0]
#증가 연산자
add="<"
#감소 연산자
sub=">"
#곱하기 연산자
mul="ㅋ"
#print문
printvar="트롤"
#곱하기 연산자 지정
##################
#if문 정의 구문 사용법
#(변수1)(if문 정의 구문)(변수2)(같다면/아니라면 구문)(실행문)
#변수는 변수 선언과 포인팅 변수 지정구문에 따름.
#if문 정의 구문 지정
ifvar="가천"
#같다면 구문(if문 정의 구문 필수)
eqvar="?"
#아니라면 구문(if문 정의 구문 필수)
notvar="!"
#if문 오류시 메시지
iferror="복정 잡대"
#jump문 구문
jmp="연세"
#return(exit) 구문
ret="귀찮다"
#exit 메시지
exitmsg=["다 귀찮음[","]"]
#input 구문
inputvar="입"
#문자열오류(문자는 표현 가능하지만, 문자열은 표현 불가능)
strerror="너무 길어 정서불안"
#형변환구문
casting="불"
#시스템 인수 읽기
for j in range(len(sys.argv)):
    if fileext in sys.argv[j]:
        file_correct=True
        filename=sys.argv[j].split("\n")[0]
        break
#확장자 검사 구문
if not file_correct:
    print(fileexterror)
    sys.exit(1)
#메인구문
with open(filename,"r") as f:
    command_list=f.readlines()
    for c in range(len(command_list)):
        command_list[c]=command_list[c].split("\n")[0]
    if command_list[0]!=start or command_list[-1]!=end:
        print(SEerror)
        sys.exit(-1)
    while li<len(command_list):
        cnt=0
        result=False
        code=command_list[li]
        for i in v2:
            cnt+=code.count(i)
        if v1 in code:
            while True:
                if len(var_list)>cnt:
                    break
                else:
                    var_list.append(0)
            if str(var_list[cnt]).isdigit():
                if not mul in code:
                    var_list[cnt]+=code.count(add)-code.count(sub)
                else:
                    l,r=code.split(mul)
                    var_list[cnt]+=(l.count(add)-l.count(sub))*(code.count(add)-code.count(sub))
            else:
                var_list[cnt]=chr(ord(var_list[cnt])+code.count(add)-code.count(sub))
            
        if ifvar in code:
            l_,r_=code.split(ifvar)
            c_l=0
            c_r=0
            for i in v2:
                c_l+=l.count(i)
                c_r+=l.count(i)
            l=var_list[c_l]
            r=var_list[c_r]
            if l==r and eqvar in code:
                result=True
            elif l!=r and notvar in code:
                result=True
            elif not (notvar in code or eqvar in code ):
                print(iferror)
                sys.exit(2)
        if printvar in code:
            for i in v2:
                cnt+=code.count(i)
            print(var_list[cnt])
        if casting in code:
            if str(var_list[cnt]).isdigit():
                var_list[cnt]=chr(var_list[cnt])
            else:
                var_list[cnt]=ord(var_list[cnt])
        if inputvar in code:
            a=input()
            b=0
            for i in v2:
                cnt+=code.count(i)
            if a.isdigit():
                b=int(a)
            elif len(a)==1:
                b=a
            else:
                print(strerror)
                sys.exit(3)
            var_list[cnt]=b
        if result:
            if jmp in code:
                cnt=code.count(add)-code.count(sub)
                if cnt==0:
                    for i in v2:
                        cnt+=code.count(i)
                    cnt=var_list[cnt]
                else:
                    i=cnt
            if ret in code:
                cnt=code.count(add)-code.count(sub)
                if cnt==0:
                    for i in v2:
                        cnt+=code.count(i)
                    cnt=var_list[cnt]
                else:
                    i=cnt
                print(exitmsg[0]+str(cnt)+exitmsg[1])
                sys.exit(0)
        li+=1

 then i made file like

%%file test.jslang
#정서안정
입정
트롤정
불정
트롤정
#정서불안

  and execute:(kit.py ,test.jslang -> change the name to yours :) ex: runtime.py )

python3 kit.py test.jslang

in this code, if i insert a char ‘t’:

t
t
116

is printed.(first line:input())

Done!

if you want to contact or etc…

please click link!

https://discord.gg/PUHW5tsjtY

Thanks!