*** empty log message ***
[m17n/m17n-lib-cs.git] / xex.xml
diff --git a/xex.xml b/xex.xml
index 5d1c839..008bd97 100644 (file)
--- a/xex.xml
+++ b/xex.xml
@@ -1,20 +1,72 @@
 <?xml version='1.0'?>
-<expr>
-  <defun fname="temp">
-    <args>
-      <symbol>xx</symbol><variable vname="y"/>
-    </args>
-    <body>
-      <add><eval><variable vname="xx"/></eval><variable vname="y"/></add>
-    </body>
+<expr xmlns="http://www.m17n.org/MIM">
+  <defun fname="factorial">
+    <args><fixed vname="x"/></args>
+    <if><lt><varref vname="x"/><integer>2</integer></lt>
+      <varref vname="x"/>
+      <mul>
+       <varref vname="x"/>
+       <funcall fname="factorial">
+         <sub vname="x"><integer>1</integer></sub>
+       </funcall>
+      </mul>
+    </if>
   </defun>
 
-  <set>
-    <symbol>x</symbol>
-    <integer>10</integer>
-  </set>
-  <temp>
-    <variable vname="x"/>
-    <integer>1</integer>
-  </temp>
+  <defun fname="looptest">
+    <args><fixed vname="l"/></args>
+    <loop><loop>
+      <foreach vname="term"><varref vname="l"/>
+       <eval><varref vname="term"/></eval>
+      </foreach>
+    </loop></loop>
+    <symbol>looptest-finished</symbol>
+  </defun>
+
+  <defmacro fname="temp">
+    <args><fixed vname="x"/></args>
+    <if>
+      <lt><eval><varref vname="x"/></eval><integer>10</integer></lt>
+      <varref vname="x"/>
+    </if>
+  </defmacro>
+
+  <set vname="x"><integer>10</integer></set>
+  <set vname="str"><string>ABC</string></set>
+  <append>
+    <catch><symbol>tag</symbol>
+      <funcall fname="looptest">
+       <list>
+         <set vname="i"><integer>0</integer></set>
+         <throw><symbol>tag</symbol><symbol>returned</symbol></throw>
+         <add vname="i"><integer>1</integer></add>
+         <varref vname="i"/>
+       </list>
+      </funcall>
+    </catch>
+    <funcall fname="factorial"><varref vname="x"/></funcall>
+    <ins vname="str"><integer>1</integer><string>123</string></ins>
+    <del vname="str"><integer>2</integer><integer>4</integer></del>
+    <cond>
+      <list><gt><integer>0</integer><integer>1</integer></gt>
+       <string>1st</string></list>
+      <list><integer>1</integer>
+       <string>2nd</string></list>
+    </cond>
+    <foreach vname="a">
+      <list><integer>10</integer><integer>11</integer></list>
+      <funcall fname="add" vname="x"><varref vname="a"/></funcall>
+    </foreach>
+    <varref vname="x"/>
+    <eval><varref vname="x"/></eval>
+    <eval>
+      <eval>
+       <quote><add><varref vname="x"/><integer>1</integer></add></quote>
+      </eval>
+    </eval>
+    <concat><integer>?a</integer><integer>?b</integer></concat>
+    <quote><add><varref vname="x"/><integer>1</integer></add></quote>
+    <integer>100</integer>
+    <temp><add vname="y"><integer>20</integer></add></temp>
+  </append>
 </expr>