<xpp>

       <!-- Define the class XObj -->

       <class name="XObj" inherit="">

              <construct/>

              <scope type="public">

                     <var type="int" name="iVal">500</var>

                     <func type="void" name="constructor">

                           <parm type="int" name="aiNum" pass="val"/>

                           <body>

                                  <xout processcode="true">

                                         <eval>

                                                <parm type="int" name="Parm0">

                                                       <eval object="aiNum"/>

                                                </parm>

                                                <expr>"\r\nIn constructor aiNum = " + Parm0</expr>

                                         </eval>

                                  </xout>

                           </body>

                     </func>

              </scope>

       </class>

       <!-- Instantiate x as an instance of XObj with some attributes -->

       <node class="XObj" name="x" MyAttr="cat" processcode="false" construct="true">

              <parm name="aiNum">34</parm>

       </node>

       <!-- Write the value of the MyAttr attribute of x -->

       <xout processcode="true">

              <eval>

                     <parm type="string" name="Parm0">

                           <eval object="x" attribute="MyAttr"/>

                     </parm>

                     <expr>"\r\nThe MyAttr of x = " + Parm0</expr>

              </eval>

       </xout>

       <!-- this call to .class shows reflection in Superx++ -->

       <!-- It tells us the class of the x instance -->

       <xout processcode="true">

              <eval>

                     <parm type="string" name="Parm0">

                           <eval object="x" attribute="class"/>

                     </parm>

                     <expr>"\r\nThe class of x = " + Parm0</expr>

              </eval>

       </xout>

</xpp>