<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>