ClauText가 어떻게 만들어 졌는지 알아보기 전에 ClauText에 대해서 알아봅시다.
Main = { $call = { id = 0 } }
Event = {
id = 0
$local = { i j }
$assign = { $local.i value = { 1 } }
$while = {
condition = {
$COMP<EQ = { $local.i 9 }
}
then = {
$assign = { $local.j value = { 1 } }
$while = {
condition = {
$COMP<EQ = { $local.j 9 }
}
then = {
$if = {
condition = { $EQ = { 0 $modular = { $local.j 2 } } }
then = {
$print = { data = { $local.i } }
$print = { data = { " * " } }
$print = { data = { $local.j } }
$print = { data = { " = " } }
$print = { data = { $multiple = { $local.i $local.j } } }
$print = { enter = { \n } }
}
}
$assign = { $local.j value = { $add = { 1 $local.j } } }
}
}
$print = { data = { ------- } }
$print = { enter = { \n } }
$assign = { $local.i value = { $add = { 1 $local.i } } }
}
}
$_getch = { }
}
위는 구구단(약간의 변형) 코드입니다.
보통의 언어처럼 Main함수가 있지만, $call = { id = any_id } 정도만 사용할 수 있다는 제약이 있습니다.
Event는 함수처럼 생각하면 됩니다. 그리고 Event의 id는 함수이름이라 생각하며 되며
이름에는 보통 아무꺼나 와도 되지만, NONE같은 경우는 프로그램내에서 사용될 수 있기때문에
사용해서는 안됩니다. 그외에는 한글, 숫자, 영어등이 가능합니다.
그리고 대부분 Event 부분의 구조등은 A = { B = { C } } 또는 A = B 등으로 구성되어 있고
데이터 부분의 구조도 이와 비슷하며 { A = B } 같은 구조도 가능합니다.
전반적으로 JSON과 비슷한? 느낌을 받을 수 있습니다.
그리고 JSON과 비슷한? 구조로 된 데이터를 불러올 수 있고 불러온 데이터의 추가, 삭제, 수정 등이
가능합니다.
데이터 구조는 Paradox사의 clausewitz engine 게임의 saveGame 파일에서 구조를 그대로 가져 왔습니다.
(주로 Paradox사의 Europa Universalis 4 save 파일로 테스트하였습니다.)
그래서 위 게임의 세이브파일을 불러온 다음 수정할 수 있습니다.