자작언어 ClauText 소개

DongWook Lee@GitHub의 이미지

안녕하세요 자작언어인 ClauText를 간단히 소개하려 합니다(많이부족하지만요)

text = { x = Hello y = World }
 
Main = {
  $call = { id = first_program }
}
Event = {
  id = first_program 
 
  $print = { { /./text/x } }
  $print = { { $space = { } } }
  $print = { { /./text/y } }
  $print = { { \n } }
}

헬로월드 프로그램을 ClauText로 짜보았습니다 ($print사용법이 좀 불편합니다;;)

그래도 다른언어와의 차이점이 보일것입니다.

alstjr7375의 이미지

bash 사용하는 느낌이 ㅎㅎ

6Gelemen의 이미지

6Gelemen의 이미지

이 글 오랜만에 방문해보네요 ㅎㅎ
그사이 제타위키에 문서까지 생겼읍니다.
이 언어의 패러다임과 기타 정보 등등을 알려주시면 감사하겠읍니다.
https://zetawiki.com/wiki/ClauText

DongWook Lee@GitHub의 이미지

1. 데이터의 구조와 함수(이벤트, 내장함수? ,등등)의 구조를 같게 하고 싶었습니다.
ex) Pos = { x = 1 y = 2 }
ex) $print = { { /./Pos/x } }

2. 제가 하고싶은대로 짜다보니 언어 스펙도 엉망이고 구현도 엉망입니다.

3. ClauText에 내장된 파서중에는 병렬파서도 있습니다.

4. 그 병렬파서를 따로 떼내서 만든 프로젝트가 ClauParser이며
이는 기존보다 리팩토링을 했습니다.

DongWook Lee@GitHub의 이미지

1. ClauExplorer : 파일(Clausewtiz Game Data와 같은) 의 구조를 GUI를 이용해서 보여줍니다.

2. ClauToCpp : ClauText를 C++코드로 바꿉니다. 아주 일부만 진행되었으며, 반복문이나 함수호출이 많을경우
상당한? 속도개선의 효과가 있습니다.(ClauText는 많이 느린편입니다)

3. ClauLint : ClauSchema 라는 이상한걸 이용해서 스키마체크? 를 할수가 있습니다.하지만 코드구현이 엉망이고
버그가 많을껍니다. 비슷하게 JsonLint도 있는데 스키마만 체크합니다. 즉 문법에러를 제대로처리할수없습니다.

4. ClauLint + ClauToCpp : ClauLint에는 ClauText로 된부분이 있는데, 이를 ClauToCpp를 이용하여 C++코드로
바꾸는 겁니다.... ClauText에도 ClauLint의 변형된? 형태가 포함되어있긴합니다.

5. EU3ToVIC2 : 패러독스사의 두게임간의 컨버터 프로젝트입니다. 존재하는 다른 프로젝트에서
주로 "파서"부분만 바꾼것입니다.