<xpp>
<!-- Define the XFarm class with the Add method -->
<class name="XFarm" inherit="">
<construct>
<scope type="public">
<MyCow breed="Friesian">Bessie</MyCow>
</scope>
</construct>
<scope type="public">
<func type="int" name="Add">
<parm type="int" name="a" pass="val"/>
<parm type="int" name="b" pass="val"/>
<body>
<return>
<eval>
<parm type="int" name="Parm0">
<eval object="a"/>
</parm>
<parm type="int" name="Parm1">
<eval object="b"/>
</parm>
<expr>Parm0 + Parm1</expr>
</eval>
</return>
</body>
</func>
</scope>
</class>
<!-- Instantiate MyFarm -->
<node name="MyFarm" class="XFarm" processcode="true" construct="true"/>
<!-- Define some
variables and an array -->
<var type="int" name="iAleph">5</var>
<var type="int" name="iBeth">7</var>
<arr type="int" name="iVal[2]">10, 20</arr>
<!-- Display the
values of the array elements -->
<xout processcode="true">
<eval>
<parm type="int" name="Parm0">
<eval object="iVal">
<index>0</index>
</eval>
</parm>
<expr>"\r\niVal[0] = " + Parm0</expr>
</eval>
</xout>
<xout processcode="true">
<eval>
<parm type="int" name="Parm0">
<eval object="iVal">
<index>1</index>
</eval>
</parm>
<expr>"\r\niVal[1] = " + Parm0</expr>
</eval>
</xout>
<!-- Invoke the Add
method and write its output 3 different ways -->
<xout processcode="true">
<eval>
<parm type="int" name="Parm0">
<eval object="iAleph"/>
</parm>
<parm type="int" name="Parm1">
<eval object="iBeth"/>
</parm>
<parm type="int" name="Parm2">
<eval>
<object>MyFarm</object>
<method>
<name>Add</name>
<parm>
<name>a</name>
<value>
<eval object="iAleph"/>
</value>
</parm>
<parm>
<name>b</name>
<value>
<eval object="iBeth"/>
</value>
</parm>
</method>
</eval>
</parm>
<expr>"\r\nAdd " + Parm0 + " + " +
Parm1 + " = " + Parm2</expr>
</eval>
</xout>
<xout processcode="true">
<eval>
<parm type="int" name="Parm0">
<eval object="iVal">
<index>0</index>
</eval>
</parm>
<parm type="int" name="Parm1">
<eval object="iVal">
<index>1</index>
</eval>
</parm>
<parm type="int" name="Parm2">
<eval>
<object>MyFarm</object>
<method>
<name>Add</name>
<parm>
<name>a</name>
<value>
<eval object="iVal">
<index>0</index>
</eval>
</value>
</parm>
<parm>
<name>b</name>
<value>
<eval object="iVal">
<index>1</index>
</eval>
</value>
</parm>
</method>
</eval>
</parm>
<expr>"\r\nAdd " + Parm0 + " + " +
Parm1 + " = " + Parm2</expr>
</eval>
</xout>
<xout processcode="true">
<eval>
<parm type="int" name="Parm0">
<eval>
<object>MyFarm</object>
<executeclass>
<eval>
<expr>"XFa" + "rm"</expr>
</eval>
</executeclass>
<method>
<name>Add</name>
<parm>
<name>
<eval>
<expr>Left("atom",
1)</expr>
</eval>
</name>
<value>40</value>
</parm>
<parm>
<name>b</name>
<value>30</value>
</parm>
</method>
</eval>
</parm>
<expr>"\r\nAdd 40 + 30 = " + Parm0</expr>
</eval>
</xout>
</xpp>