*** empty log message ***
[m17n/m17n-lib-cs.git] / xex.xml
diff --git a/xex.xml b/xex.xml
index 49f71cb..008bd97 100644 (file)
--- a/xex.xml
+++ b/xex.xml
@@ -1,34 +1,50 @@
 <?xml version='1.0'?>
-<expr>
+<expr xmlns="http://www.m17n.org/MIM">
   <defun fname="factorial">
-    <args><variable vname="x"/></args>
-    <body>
-      <if><lt><variable vname="x"/><integer>2</integer></lt>
-       <variable vname="x"/>
-       <mul>
-         <variable vname="x"/>
-         <funcall fname="factorial">
-           <sub vname="x"><integer>1</integer></sub>
-         </funcall>
-       </mul>
-      </if>
-    </body>
+    <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>
 
-  <defun fname="temp">
-    <args-unevalled><variable vname="x"/>
-      <optional/><variable vname="y"/>
-      <rest/><variable vname="rest"/>
-    </args-unevalled>
-    <body>
-      <list><variable vname="x"/></list>
-    </body>
+  <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>
-    <funcall fname="factorial"><variable vname="x"/></funcall>
+    <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>
     </cond>
     <foreach vname="a">
       <list><integer>10</integer><integer>11</integer></list>
-      <add vname="x"><variable vname="a"/></add>
+      <funcall fname="add" vname="x"><varref vname="a"/></funcall>
     </foreach>
-    <variable vname="x"/>
-    <eval><variable vname="x"/></eval>
+    <varref vname="x"/>
+    <eval><varref vname="x"/></eval>
     <eval>
       <eval>
-       <quote><add><variable vname="x"/><integer>1</integer></add></quote>
+       <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>