<?xml version='1.0'?>
-<expr>
+<expr xmlns="http://www.m17n.org/MIM">
<defun fname="factorial">
- <args><symbol>x</symbol></args>
- <body>
- <if><lt><variable vname="x"/><integer>2</integer></lt>
- <variable vname="x"/>
- <mul>
- <funcall fname="factorial">
- <sub><variable vname="x"/><integer>1</integer></sub>
- </funcall>
- <variable vname="x"/>
- </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><symbol>x</symbol>
- <optional/><symbol>y</symbol>
- <rest/><symbol>rest</symbol>
- </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>
- <set><symbol>x</symbol><integer>10</integer></set>
- <set><symbol>str</symbol><string>ABC</string></set>
+ <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>
- <funcall fname="temp">
- <symbol>sym</symbol>
- <symbol>sym</symbol>
- <symbol>sym</symbol>
- </funcall>
- <nth><integer>1</integer>
- <concat>
- <variable vname="str"/>
- <list><integer>0x40</integer><integer>0x41</integer></list>
- </concat>
- </nth>
+ <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>