三界幻想紀/移行版 -在澤魔王裏日誌-

金沢に棲息する海月型魔王の裏日誌が移行したものとも解釈出来ます

休任していた間に作ってた俺流人工言語

実は、俺が去年の6月から最近までにかけて休任していた間、
TagoScript 2.0の構文を定義していたり、新たな人工言語を勝手に作ったりしていた。
一応、説明なしでここに貼付けておく事にする。
何か要望があれば、説明するかもしれないけどね。


・TagoScript 2.0

<!-- 仕様変更.tgsと言うソースファイルから引用 -->
<@tagoscript ver="2.0"@>

<$include src="@/stdio.tsh;">

<function type=(int)\ name="main"\ arg=(void)\>

	<print arg="このソースコードに書いてある用な感じに、\nTagoScript 2.0の言語仕様を変更いたしました。\n\n例えば、データ型の宣言の方法を変更したり(今まで\"int\"と宣言していたのを(int)としたり)\n新たなデータ型を導入したり(bool型やstring型など)\n"\ />
	
	<return value=0\ />
</function>

ちなみに、TagoScript 2.0はTagoScript.org内の俺のブログで現在ちまちまと構文を発表しているよ。


・TagoScript 3.0

<@tagoscript ver="3.0"@>
<$include src="@/stdio.tsh; @/stdlib.tsh;"\>
<class name="Ax"\>
	<var:private type=(string)\ name="text"\ />
	<var:public type=(int)\ name="num"\ />
	<function:public type=(void)\ name="setSPEC"\ arg=(string), (int)\ />
	<function:public type=(string)\ name="getText"\ arg=(void)\ />
	<function:public type=(void)\ name="getSPEC"\ arg=(void)\>
		<print arg="Text = %s\nNum = %d\n", text, num\ />
	</function>
</class>

<function:public:Ax type=(void)\ name="setSPEC"\ arg=(string)s, (int)i\>
	<data>
		text =s;
		num =i;
	</data>
</function>
<function:public:Ax type=(string)\ name="getText"\ arg=(void)\>
	<return value=text\ />
</function>

<function type=(int)\ name="main"\ arg=(void)\ />
	<var type=(Ax)\ name="a"\ value:init=<new arg=(Ax)\ />\ />
	<a.setSPEC arg="Hello?", 10\ />
	<a.getSPEC />
	<var type=(string)\ name="str"\ value:init=<a.getText />\ />
	<print arg="%s\n", str\ />
	<return value=0\ />
</function>


・FDML(FDeML)

<@fdml ver="1.0"@>

#(comment [lang:"ja_JP"] [date:"2011.02.23"] [writer:"Sho Tagomura"]) {
	(echo){昔作っためちゃくちゃな人工言語とW3CのXMLからヒントを得て作成したんだ。これはね。};
};


・DWCL(Dynamic Web Creating Language)

<@fdml ver="1.0"@>

!(DType [root:"dwcl"] [usefile:true] [src:"http://www.flashproject.org/Member/1995/07/20/s/Sho_Tagomura/DataBase/Technology/DType/DWCL/dwcl-1.fdds"]);

#(dwcl [NSpace:"http://data.flashproject.org/NameSpace/DWC/1.0"] [lang:"ja_JP"]) {

	(head) {
	
		(meta [usecharset:true] [charset:"UTF-8"]);
		(meta [usestylesheet:true]);
		(meta [usescript:true] [ScType:"text/tagoscript-net"]);
		(title){DWCTEST};
		(style [usefile:true] [src:"http://www.flashproject.org/Member/s/Sho_Tagomura/DataBase/CSS/dwcstyletest.css"]);
		(script [ScType:"text/tagoscript-net"]) {
		
		<function type=(void)\ name="push"\ arg=(void)\>
			<data>tf.text = "Hello?"</data>
		</function>
		};
	};
	(body [StClass:"body_main"]) {
	
		(TextField [name:"tf"] [width:100%] [height:100px]);
		(Button [label:"Push it!"] [action:<push />]);
	};
};
//ちなみに、これに書いてあるURLは仮の物だと思って下さい。

・FDDS(FDML Documents Definition Schema)

<@fdml ver="1.0"@>

#(fdds [NSpace:"http://www.flashproject.org/Member/s/Sho_Tagomura/DataBase/NameSpace/FDDS/1.0"]) {
	(element [name:"example_02"]) {
		(complex) {
			(sequence) {
				(element [name:"comment"] [type:$STRING]);
			};
			(attribute [name:"lang"] [type:$STRING]);
		};
	};
};