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