A performable element can be executed on the XMF VM. It must provide a
collection of operations that support its evaluation or its translation
into VM machine instructions. In particular it must support 'compile/4',
'FV/0', 'maxLocals/0' and 'eval/3'. Performable is the root class for
all extensions to executable XMF. For example OCL is a sub-class of
Performable. If you inte-nd to define your own languages in XMF then
they should exte-nd Performable.
Constructors |
Attributes | ||
endLine | Integer | No Documentation Specified |
line | Integer | No Documentation Specified |
Operations | |
FV():Set(String) | All performable things contain variables. If the variables are not bound then they are free. This returns the set of free variables in a performable thing. |
compile(env:Element,frame:Element,isLast:Element,saveSource:Element):Element | Every performable thing must be able to be compiled. The arguments are as follows: env contains information about the context; frame defines how statically nested inside binding contours we are; isLast is a boolean determining whether we are the last performable thing; saveSource controls whether or not source is dumped to the output. |
endLine():Integer | No Documentation Specified |
eval(target:Element,env:Element,imports:Element):Element | Every performable thing can be evaluated (as opposed to compiled and then performed).Evaluation occurs in a context that includes the value of 'self' (i.e. the target of the evaluating message), an environment of local variables and a sequence of imported name spaces. |
line():Integer | No Documentation Specified |
maxLocals():Integer | Any performable thing requires some local storage. This will occur in the machine stack frame. It is possible to statically determine how much storage is required and this operation returns the amount of storage needed. |
pprint(out:Element,indent:Integer):String | Any performable thing can be turned into code. The default behaviour is to produce a comment. All performable subclasses should redefined this operation as appropriate. |
pprint():String | Pretty prints the receiver to a string. |
pprint(indent:Element):String | Pretty prints the receiver to a string. |
setEndLine(endLine:Integer):Element | No Documentation Specified |
setLine(line:Integer):Element | No Documentation Specified |
From Object: slotMissing, slotMissing, setProperty, setHotLoad, setDaemonsActive, setDaemons, set, renameSlot, removeStructuralFeature, removeDaemonsWithTarget, removeDaemonsWithId, removeDaemonNamed, removeDaemon, machineInit, initSlots, init, hotLoaded, hotLoad, hasSlot, hasProperty, getProperty, get, hasStructuralFeature, getStructuralFeatureNames, hasDaemonWithTarget, hasDaemonWithIdAndTarget, hasDaemonWithId, hasDaemonNamed, fire, destroyDaemon, daemonWithIdAndTarget, daemonWithId, daemonNamed, daemonsActive, daemons, allDaemonsWithTarget, allDaemonsWithId, compositeValues, allCompositeValuesAndSelf, allCompositeValues, addStructuralFeature, addPersistentDaemon, addMultiDaemon, addDaemon. From Element: pprint, pprint, pprint, writeXMLFile, writeXMLFile, writeXML, lift, toSnapshot, toSnapshot, allHTMLEntries, allHTMLPackages, toHTML, writeHTML, writeHTML, writeHTMLAllEntries, writeHTMLAllPackages, writeHTMLIndex, writeHTMLOverview, yield, toString, systemId, setOf, send, save2, save, removeDaemon, removeDaemon, println, print, oclIsKindOf, oclIsTypeOf, noOperationFound, isTypeOf, isReallyKindOf, init, init, of, isKindOf, addTo, checkConstraints, copy, deleteRecursive, die, edit, equals, error, ferror, hashCode. |