|
|||||||||||
PREV NEXT | FRAMES NO FRAMES |
Uses of InterpreterException in edu.vub.at |
Methods in edu.vub.at with parameters of type InterpreterException | |
private static void |
IAT.handleATException(InterpreterException e)
|
Methods in edu.vub.at that throw InterpreterException | |
protected void |
AmbientTalkTestCase.evaluateInput(java.lang.String input,
ATContext ctx)
|
private static ATAbstractGrammar |
IAT.parseInitFile()
|
static ATObject |
AmbientTalkTest.evalSnippet(java.lang.Class forTestClass,
java.lang.String name,
ATContext inContext)
Loads and evaluates the content of a code snippet file and returns the resulting AmbientTalk ATObject. |
NATNil |
OBJUnit.base_echo_(ATObject message)
|
ATObject |
OBJUnit.base_unittest_(ATClosure code)
The unittest: primitive, implemented as base-level code. |
Uses of InterpreterException in edu.vub.at.actors |
Methods in edu.vub.at.actors that throw InterpreterException | |
ATObject |
ATMailbox.base_enqueue(ATObject value)
|
ATObject |
ATMailbox.base_dequeue()
|
ATTable |
ATMailbox.base_flush()
Clears the content of the mailbox (i.e. mailbox becomes empty) and return all current messages in a fresh table, which is no longer causally connected to this mailbox. |
ATObject |
ATAsyncMessage.base_getSender()
Signifies the object on behalf of which this asynchronous message is sent. |
ATObject |
ATAsyncMessage.base_getReceiver()
Messages also have an explicitly named receiver, which may either be a local object, or a representative of an object inside another actor. |
ATObject |
ATAsyncMessage.base_process(ATActorMirror inActor)
This method is responsible for processing the message in a certain actor. |
ATNil |
ATObservable.base_fire_withArgs_(ATSymbol event,
NATTable arguments)
Fires an event with the given arguments. |
ATAsyncMessage |
ATActorMirror.base_createMessage(ATObject sender,
ATSymbol selector,
ATTable arguments)
Creates a first-class message in the language. |
ATObject |
ATActorMirror.base_send(ATAsyncMessage message)
This method implements the default asynchronous message sending semantics for this particular actor. |
ATObject |
ATActorMirror.base_provide(ATStripe topic,
ATObject service)
This mechanism is the most basic mechanism to provide a service. |
ATObject |
ATActorMirror.base_require(ATStripe topic,
ATClosure handler,
ATBoolean bool)
This mechanism is the most basic mechanism to require a service. |
ATObject |
ATActorMirror.base_install_(ATClosure code)
def protocol := install: { code } Installs a meta-object protocol into this actor. |
ATTable |
ATFarReference.meta_retractUnsentMessages()
Retracts all of the outgoing messages buffered in this far object reference by passing them in a table. |
Uses of InterpreterException in edu.vub.at.actors.id |
Methods in edu.vub.at.actors.id that throw InterpreterException | |
boolean |
ATObjectID.isFar()
|
Uses of InterpreterException in edu.vub.at.actors.natives |
Methods in edu.vub.at.actors.natives that throw InterpreterException | |
abstract ATObject |
SharedActorField.initialize()
Hook to be overridden in order to initialize the field which should be installed in every actor's lexical root object. |
void |
SerializationTest.testParseTreeSerialization()
|
void |
SerializationTest.testCoercerSerialization()
Tests whether a coercer correctly implements writeReplace to return the principal to serialize, instead of the coercer itself. |
NATLocalFarRef |
ReceptionistsSet.exportObject(ATObject object)
Export a local object such that it now has a unique global identifier which can be distributed to other actors. |
void |
ReceptionistsSet.addClient(ATObject service,
ATFarReference client)
Invoked whenever another actor is passed a reference to an object offering a service on this actor. |
void |
ReceptionistsSet.removeClient(ATObject service,
ATFarReference client)
Called upon the collection of a service on a remote device, or possibly when the conditions negotiated for the use of the service (e.g. its lease period) have expired. |
protected ATObject |
NATRemoteFarRef.transmit(ATAsyncMessage message)
|
ATTable |
NATRemoteFarRef.meta_retractUnsentMessages()
|
void |
NATRemoteFarRef.onDisconnection(ATClosure listener)
|
void |
NATRemoteFarRef.onReconnection(ATClosure listener)
|
protected ATObject |
NATLocalFarRef.transmit(ATAsyncMessage passedMessage)
|
ATTable |
NATLocalFarRef.meta_retractUnsentMessages()
The 'outbox' of a far reference to a local actor is always empty. |
ATObject |
NATFarReference.meta_resolve()
After deserialization, ensure that only one unique remote reference exists for my target. |
ATObject |
NATFarReference.meta_receive(ATAsyncMessage message)
|
protected abstract ATObject |
NATFarReference.transmit(ATAsyncMessage passedMessage)
|
ATObject |
NATFarReference.meta_invoke(ATObject receiver,
ATSymbol atSelector,
ATTable arguments)
|
ATBoolean |
NATFarReference.meta_respondsTo(ATSymbol atSelector)
|
ATObject |
NATFarReference.meta_doesNotUnderstand(ATSymbol selector)
|
ATObject |
NATFarReference.meta_clone()
References to objects hosted by another actor are forced to be unique. |
ATObject |
NATFarReference.meta_newInstance(ATTable initargs)
Cannot create a new instance using a farObject, this should be done either by sending rather than invoking new(args) such that the correct method is triggered or by invoking newInstance on a farMirror, which will send the call as well. |
ATObject |
NATFarReference.meta_extend(ATClosure code)
TODO(discuss) Think about extending objects of another actor. |
ATObject |
NATFarReference.meta_share(ATClosure code)
TODO(discuss) Think about sharing objects of another actor. |
ATObject |
NATFarReference.meta_select(ATObject receiver,
ATSymbol selector)
|
ATObject |
NATFarReference.meta_lookup(ATSymbol selector)
|
ATNil |
NATFarReference.meta_defineField(ATSymbol name,
ATObject value)
|
ATNil |
NATFarReference.meta_assignField(ATObject receiver,
ATSymbol name,
ATObject value)
|
ATNil |
NATFarReference.meta_assignVariable(ATSymbol name,
ATObject value)
|
ATBoolean |
NATFarReference.meta_isCloneOf(ATObject original)
|
ATBoolean |
NATFarReference.meta_isRelatedTo(ATObject object)
|
ATNil |
NATFarReference.meta_addField(ATField field)
|
ATNil |
NATFarReference.meta_addMethod(ATMethod method)
|
ATField |
NATFarReference.meta_grabField(ATSymbol fieldName)
|
ATMethod |
NATFarReference.meta_grabMethod(ATSymbol methodName)
|
ATTable |
NATFarReference.meta_listFields()
|
ATTable |
NATFarReference.meta_listMethods()
|
NATText |
NATFarReference.meta_print()
|
ATObject |
NATFarReference.meta_getDynamicParent()
|
ATObject |
NATFarReference.meta_getLexicalParent()
|
ATTable |
NATFarReference.meta_getStripes()
The stripes of a far reference are the stripes of the remote object it points to, plus the FarReference stripe. |
NATText |
NATFarReference.NATDisconnectionSubscription.meta_print()
|
NATText |
NATFarReference.NATReconnectionSubscription.meta_print()
|
ATObject |
NATAsyncMessage.base_getSender()
|
ATObject |
NATAsyncMessage.base_getReceiver()
|
ATObject |
NATAsyncMessage.base_process(ATActorMirror inActor)
|
ATObject |
NATAsyncMessage.base_sendTo(ATObject receiver,
ATObject sender)
To evaluate an asynchronous message send, an asynchronous invoke is performed on the receiver object. |
NATText |
NATAsyncMessage.meta_print()
|
static NATLocalFarRef |
NATActorMirror.createActor(ELVirtualMachine host,
Packet parametersPkt,
Packet initcodePkt,
ATActorMirror actorMirror)
Creates a new actor on the specified host Virtual Machine. |
static NATLocalFarRef |
NATActorMirror.createEmptyActor(ELVirtualMachine host,
ATActorMirror actorMirror)
Auxiliary creation method to create an actor with an empty behaviour. |
ATAsyncMessage |
NATActorMirror.base_createMessage(ATObject sender,
ATSymbol selector,
ATTable arguments)
|
ATObject |
NATActorMirror.base_provide(ATStripe topic,
ATObject service)
|
ATObject |
NATActorMirror.base_require(ATStripe topic,
ATClosure handler,
ATBoolean isPermanent)
|
ATObject |
NATActorMirror.meta_clone()
|
ATObject |
NATActorMirror.meta_newInstance(ATTable initargs)
actor.new(closure) => same effect as evaluating 'actor: closure' |
NATText |
NATActorMirror.meta_print()
|
ATObject |
NATActorMirror.meta_send(ATAsyncMessage msg)
To send a message msg to a receiver object rcv: - if rcv is a local reference, schedule accept(msg) in my incoming event queue - if rcv is a far reference, schedule msg in far reference's outbox |
ATObject |
NATActorMirror.meta_receive(ATAsyncMessage msg)
|
ATTable |
NATActorMirror.meta_getStripes()
|
ATObject |
NATActorMirror.base_send(ATAsyncMessage message)
When default base-level objects send an asynchronous message, they delegate this responsibility to their actor by means of this base-level method. |
ATObject |
NATActorMirror.base_install_(ATClosure code)
def install: { code } |
NATText |
NATActorMirror.NATPublication.meta_print()
|
NATText |
NATActorMirror.NATSubscription.meta_print()
|
NATText |
NATActorMirror.NATProtocol.meta_print()
|
ATTable |
ELFarReference.retractUnsentMessages()
|
NATLocalFarRef |
ELActor.export(ATObject object)
Export the given local object such that it is now remotely accessible via the returned object id. |
protected void |
ELActor.initRootObject()
Initialises the root using the contents of the init file stored by the hosting virtual machine. |
protected void |
ELActor.initSharedFields()
Initialises various fields in the lexical root of the actor, which are defined in the context of every actor. |
ATObject |
ELActor.sync_event_eval(ATAbstractGrammar ast)
This method should only be used for purposes such as the IAT shell or unit testing. |
private ELActor |
DistributionTest.setUpActor(ELVirtualMachine host)
|
Constructors in edu.vub.at.actors.natives that throw InterpreterException | |
NATFarReference.NATDisconnectionSubscription(NATFarReference reference,
ATClosure handler)
|
|
NATFarReference.NATReconnectionSubscription(NATFarReference reference,
ATClosure handler)
|
|
NATAsyncMessage(ATObject sender,
ATSymbol sel,
ATTable arg)
|
|
NATAsyncMessage(ATObject sdr,
ATObject rcv,
ATSymbol sel,
ATTable arg)
|
|
NATActorMirror.NATPublication(ELDiscoveryActor discoveryActor,
ATStripe topic,
ATObject service,
DiscoveryManager.Publication pub)
|
|
NATActorMirror.NATSubscription(ELDiscoveryActor discoveryActor,
ATStripe topic,
ATClosure handler,
DiscoveryManager.Subscription sub)
|
|
NATActorMirror.NATProtocol(ELActor eventLoop,
ATActorMirror newMirror)
|
Uses of InterpreterException in edu.vub.at.actors.net |
Methods in edu.vub.at.actors.net that throw InterpreterException | |
ATObject |
OBJNetwork.meta_resolve()
After deserialization, ensure that the network object remains unique. |
NATText |
OBJNetwork.meta_print()
|
Uses of InterpreterException in edu.vub.at.eval |
Methods in edu.vub.at.eval that throw InterpreterException | |
protected abstract void |
PartialBinder.bind(ATObject[] arguments,
ATContext inContext,
PartialBinder.BindClosure binder)
Bind the given actual arguments to the formal parameters encapsulated by this partial bind function. |
static void |
PartialBinder.defineParamsForArgs(PartialBinder residual,
ATContext context,
ATTable arguments)
Bind all of the given parameters as newly defined slots in the given scope to the given arguments. |
static void |
PartialBinder.assignArgsToParams(PartialBinder residual,
ATContext context,
ATTable arguments)
Assign all of the formal parameter names in the scope object to the given arguments The scope is defined as the lexical scope of the given context. |
static PartialBinder |
PartialBinder.calculateResidual(java.lang.String forFunction,
ATTable parameters)
Performs the partial evaluation of the binding algorithm given the formal parameters. |
void |
PartialBinder.BindClosure.bindParamToArg(ATObject inScope,
ATSymbol param,
ATObject arg)
|
void |
InvocationStack.methodInvoked(ATExpression methodInvocation,
ATObject receiver,
ATMessage message)
|
static NATText |
Evaluator.printElements(ATObject[] els,
java.lang.String start,
java.lang.String sep,
java.lang.String stop)
Auxiliary function used to print the elements of a table using various separators. |
static NATText |
Evaluator.printElements(NATTable tab,
java.lang.String start,
java.lang.String sep,
java.lang.String stop)
Auxiliary function used to print the elements of a table using various separators. |
static NATText |
Evaluator.printAsStatements(ATTable tab)
|
static NATText |
Evaluator.printAsList(ATTable tab)
|
static NATTable |
Evaluator.evaluateArguments(NATTable args,
ATContext ctx)
This function is called whenever arguments to a function, message, method need to be evaluated. |
private static void |
Evaluator.bindArguments(java.lang.String funnam,
ATContext context,
ATTable parameters,
ATTable arguments,
Evaluator.BindClosure binder)
Deprecated. use partial evalation using PartialBinder.bind(ATObject[], ATContext, edu.vub.at.eval.PartialBinder.BindClosure) instead. |
static void |
Evaluator.defineParamsForArgs(java.lang.String funnam,
ATContext context,
ATTable parameters,
ATTable arguments)
Deprecated. use partial evalation using PartialBinder.bind(ATObject[], ATContext, edu.vub.at.eval.PartialBinder.BindClosure) instead. |
static void |
Evaluator.assignArgsToParams(java.lang.String funnam,
ATContext context,
ATTable parameters,
ATTable arguments)
Deprecated. use partial evalation using PartialBinder.bind(ATObject[], ATContext, edu.vub.at.eval.PartialBinder.BindClosure) instead. |
static NATTable |
Evaluator.evalMandatoryPars(ATTable formals,
ATContext ctx)
Given a formal parameter list, this auxiliary method returns a new table consisting of the values of the bindings of the mandatory parameters of formals within the context ctx. |
void |
Evaluator.BindClosure.bindParamToArg(ATObject inScope,
ATSymbol param,
ATObject arg)
|
Uses of InterpreterException in edu.vub.at.exceptions |
Subclasses of InterpreterException in edu.vub.at.exceptions | |
class |
XArityMismatch
XArityMismatch is thrown during function application when actual arguments are bound to formal parameters and there are either too many or too few actual arguments supplied. |
class |
XClassNotFound
Raised when a request to load a class via a JavaPackage failed. |
class |
XDuplicateSlot
An XDuplicateSlot exception is raised when a field or a method is added to an object that already contains a field or method with the same name. |
class |
XIllegalApplication
XIllegalApplication is thrown when a natively implemented method is applied incorrectly. |
class |
XIllegalArgument
An XIllegalArgument exception is thrown when primitive operations on native types get passed an illegal argument value. |
class |
XIllegalIndex
An XIllegalIndex exception is thrown by the evaluator whenever an invalid value is used as the index into a table (e.g. when defining, assigning or referencing it). |
class |
XIllegalOperation
XIllegalOperation is thrown whenever an operation is requested that is a violation of the expected semantics of the interpreter. |
class |
XIllegalParameter
An XIllegalParameter exception is raised when the interpreter detects a faulty formal parameter list of a function or method when it is invoked. |
class |
XIllegalQuote
An XIllegalQuote exception is raised whenever an unquote-splice unquotation is discovered in an AG node where the resulting table cannot be spliced. |
class |
XIllegalSplice
XIllegalSplice is thrown when an @ token was not encountered in one of its legal positions namely when unquoting a table or in the argument-list of an application. |
class |
XIllegalUnquote
An XIllegalUnquote exception is raised when an unquotation is discovered in a non-quoted piece of source code. |
class |
XImportConflict
An XImportConflict exception is raised when an import: native fails because the importing object already defines one or more methods or fields available in the imported object. |
class |
XIndexOutOfBounds
An XIndexOutOfBounds exception is raised when an attempt is made to access or modify an AGTable beyond its capacity. |
class |
XIOProblem
The class XIOProblem is mainly a wrapper class for Java IOExceptions. |
class |
XNotInstantiatable
Raised whenever a wrapped Java class cannot be instantiated because: - it has no publicly accessible constructors - it is abstract |
class |
XParseError
XParseError is thrown when illegal input is parsed by the AmbientTalk parser. |
class |
XReflectionFailure
An instance of the class XReflectionFailure is thrown when something goes wrong when dealing with mirror or mirage operations. |
class |
XSelectorNotFound
XSelectorNotFound is thrown during lookup when a particular field cannot be found. |
class |
XSymbiosisFailure
An instance of this class is raised whenever a symbiotic method invocation fails due to overloading which could not be resolved given the actual arguments. |
class |
XTypeMismatch
XTypeMismatch instances are thrown when a value conversion failed. |
class |
XUnassignableField
An XUnassignableField exception is raised whenever a variable assignment fails because the variable/field is immutable. |
class |
XUndefinedField
An XUndefinedField exception is raised whenever a variable reference lookup fails, or a field assignment lookup fails. |
class |
XUserDefined
Instances of the XUserDefined act as wrappers for ATObjects which are thrown at the ambienttalk level using the raise: primitive. |
Constructors in edu.vub.at.exceptions that throw InterpreterException | |
XSymbiosisFailure(java.lang.Object symbiont,
java.lang.String selector,
java.util.LinkedList choices,
ATObject[] atArgs)
Reports that an overloaded method could not be resolved to a unique implementation because there are multiple matches. |
|
XSymbiosisFailure(java.lang.Object symbiont,
java.lang.String selector,
ATObject[] atArgs)
Reports that an overloaded method could not be resolved to a unique implementation because there are no matches for any static types. |
|
XSymbiosisFailure(java.lang.Class failedClass,
java.lang.reflect.Constructor[] choices,
ATObject[] atArgs,
int numMatchingCtors)
Reports that an overloaded constructor could not be resolved to a unique implementation. |
|
XImportConflict(ATSymbol[] conflictingNames)
|
Uses of InterpreterException in edu.vub.at.objects |
Methods in edu.vub.at.objects that throw InterpreterException | |
ATObject |
ATMethod.base_apply(ATTable arguments,
ATContext ctx)
Applies the method to the given arguments in the given context. |
ATObject |
ATMethod.base_applyInScope(ATTable arguments,
ATContext ctx)
Applies the method to the given arguments in the given context. |
ATSymbol |
ATMethod.base_getName()
Structural access to the name of the method. |
ATTable |
ATMethod.base_getParameters()
Structural access to the parameter list of the method, which is normally a table of symbols. |
ATBegin |
ATMethod.base_getBodyExpression()
Structural access to the body of the method. |
ATSymbol |
ATStripe.base_getStripeName()
|
ATTable |
ATStripe.base_getParentStripes()
|
ATBoolean |
ATStripe.base_isSubstripeOf(ATStripe other)
|
ATBoolean |
ATHandler.base_canHandle(ATObject anException)
Used to determine whether a handler will be triggered when an exception is raised. |
ATObject |
ATHandler.base_handle(ATObject anException)
When a handler has answered that it can handle an exception, the following method is invoked, asking the handler to handle the exception. |
ATNumeric |
ATFraction.base_inc()
|
ATNumeric |
ATFraction.base_dec()
|
ATNumeric |
ATFraction.base_abs()
|
ATNumber |
ATFraction.base_round()
|
ATNumber |
ATFraction.base_floor()
|
ATNumber |
ATFraction.base_ceiling()
|
ATObject |
ATBoolean.base_ifTrue_(ATClosure cons)
|
ATObject |
ATBoolean.base_ifFalse_(ATClosure alt)
|
ATObject |
ATBoolean.base_ifTrue_ifFalse_(ATClosure cons,
ATClosure alt)
|
ATBoolean |
ATBoolean.base__opamp_(ATBoolean other)
|
ATBoolean |
ATBoolean.base__oppls_(ATBoolean other)
|
ATBoolean |
ATBoolean.base_and_(ATClosure other)
|
ATBoolean |
ATBoolean.base_or_(ATClosure other)
|
ATBoolean |
ATBoolean.base_not()
|
ATNumeric |
ATNumber.base_inc()
|
ATNumeric |
ATNumber.base_dec()
|
ATNumeric |
ATNumber.base_abs()
|
ATNil |
ATNumber.base_doTimes_(ATClosure code)
|
ATNil |
ATNumber.base_to_do_(ATNumber end,
ATClosure code)
|
ATNil |
ATNumber.base_to_step_do_(ATNumber end,
ATNumber inc,
ATClosure code)
|
ATTable |
ATNumber.base__optms__optms_(ATNumber end)
|
ATTable |
ATNumber.base__optms__optms__optms_(ATNumber end)
|
ATFraction |
ATNumber.base__opque__opque_(ATNumber nbr)
|
ATNumber |
ATNumber.base__oprem_(ATNumber n)
|
ATNumber |
ATNumber.base__opdiv__opmns_(ATNumber n)
|
ATSymbol |
ATMessage.base_getSelector()
Messages always have a selector, a symbol denoting the field or method that needs to be sought for. |
ATTable |
ATMessage.base_getArguments()
Messages may optionally have a table of arguments. |
ATNil |
ATMessage.base_setArguments(ATTable arguments)
Assigns the arguments of a first class method. |
ATObject |
ATMessage.base_sendTo(ATObject receiver,
ATObject sender)
Sends this message to a particular receiver object. |
ATSymbol |
ATField.base_getName()
|
ATObject |
ATField.base_readField()
|
ATNil |
ATField.base_writeField(ATObject newValue)
Sets the value of the field if possible |
ATObject |
ATObject.meta_send(ATAsyncMessage message)
Sends a newly created message asynchronously by this object. |
ATObject |
ATObject.meta_receive(ATAsyncMessage message)
Handles a first-class message of which it is the receiver. |
ATObject |
ATObject.meta_invoke(ATObject receiver,
ATSymbol selector,
ATTable arguments)
Invoke a method corresponding to the selector with the given arguments. |
ATBoolean |
ATObject.meta_respondsTo(ATSymbol selector)
Query an object for a given field or method which is visible to the outside world. |
ATObject |
ATObject.meta_doesNotUnderstand(ATSymbol selector)
Called when a selection fails because the selector was not found along the dynamic delegation hierarchy. |
ATObject |
ATObject.meta_pass()
Allows objects to specify how they should be passed when passed as an argument in a message sent to another actor. |
ATObject |
ATObject.meta_resolve()
When an object is deserialized after it has been passed to another actor, it is given a chance to tell the interpreter which object it represents. |
ATObject |
ATObject.meta_select(ATObject receiver,
ATSymbol selector)
Select a slot (field | method) from an object whose name corresponds to the given selector. |
ATObject |
ATObject.meta_lookup(ATSymbol selector)
Select a slot (field | method) from an object whose name corresponds to the given selector. |
ATNil |
ATObject.meta_defineField(ATSymbol name,
ATObject value)
Defines a new field in an object. |
ATNil |
ATObject.meta_assignVariable(ATSymbol name,
ATObject value)
Sets the value of the variable to the given value. |
ATNil |
ATObject.meta_assignField(ATObject receiver,
ATSymbol name,
ATObject value)
Sets the value of a field to the given value. |
ATObject |
ATObject.meta_clone()
Clone the receiver object. |
ATObject |
ATObject.meta_newInstance(ATTable initargs)
Create a new instance of the receiver object. |
ATObject |
ATObject.meta_extend(ATClosure code)
Create an is-a extension of the receiver object. |
ATObject |
ATObject.meta_share(ATClosure code)
Create a shares-a extension of the receiver object. |
ATNil |
ATObject.meta_addField(ATField field)
Adds a field slot to an object at runtime. |
ATNil |
ATObject.meta_addMethod(ATMethod method)
Adds a method slot to an object at runtime. |
ATField |
ATObject.meta_grabField(ATSymbol selector)
Queries an object for one of its field slots. |
ATMethod |
ATObject.meta_grabMethod(ATSymbol selector)
Queries an object for one of its method slots. |
ATTable |
ATObject.meta_listFields()
Queries an object for a list of all of its field slots. |
ATTable |
ATObject.meta_listMethods()
Queries an object for a list of all of its method slots. |
ATObject |
ATObject.meta_getDynamicParent()
Objects have a classical dynamic parent chain created using extension primitives. |
ATObject |
ATObject.meta_getLexicalParent()
Objects also have a lexical parent which is the scope in which their definitions are nested. |
ATObject |
ATObject.meta_eval(ATContext ctx)
Evaluates a particular parsetree with respect to a particular context. |
ATObject |
ATObject.meta_quote(ATContext ctx)
Quotes a parsetree, in other words allows the parsetree to return itself instead of evaluating. |
NATText |
ATObject.meta_print()
Prints out the object in a human-readable way. |
ATBoolean |
ATObject.meta_isRelatedTo(ATObject object)
Detects whether both objects have a common origin, in other words whether they are related through a combination of the cloning and extension operators. |
ATBoolean |
ATObject.meta_isCloneOf(ATObject original)
Detects whether this object an the passed parameter are the result of cloning from a common ancestor (possibly either one of the objects itself). |
ATBoolean |
ATObject.meta_isStripedWith(ATStripe stripe)
Tests whether the receiver object is striped with a particular stripe. |
ATTable |
ATObject.meta_getStripes()
Returns the stripes of this object. |
ATBoolean |
ATObject.base__opeql__opeql_(ATObject other)
The pointer equality == operator. |
ATObject |
ATObject.base_new(ATObject[] initargs)
The object instantiation method. |
ATObject |
ATObject.base_init(ATObject[] initargs)
The object initialisation method. |
ATObject |
ATContext.base_getLexicalScope()
Structural access to the lexical environment of the current context. |
ATObject |
ATContext.base_getSelf()
Structural access to the receiver (self pseudovariable) in the current context. |
ATContext |
ATContext.base_withLexicalEnvironment(ATObject scope)
|
ATContext |
ATContext.base_withDynamicReceiver(ATObject self)
|
ATNumber |
ATTable.base_getLength()
|
ATObject |
ATTable.base_at(ATNumber index)
|
ATObject |
ATTable.base_atPut(ATNumber index,
ATObject value)
|
ATBoolean |
ATTable.base_isEmpty()
|
ATNil |
ATTable.base_each_(ATClosure clo)
Apply a closure to each element of the table |
ATTable |
ATTable.base_map_(ATClosure clo)
Map a closure over each element of the table, resulting in a new table. |
ATObject |
ATTable.base_with_collect_(ATObject init,
ATClosure clo)
Collect all elements of the table by combining them using the given closure. |
ATTable |
ATTable.base_filter_(ATClosure clo)
Keep only those elements of the table for which the closure evaluates to true. |
ATObject |
ATTable.base_find_(ATClosure clo)
Return the index of the first element for which the given predicate returns true. |
ATText |
ATTable.base_implode()
Implode the receiver table of characters into a text string |
ATText |
ATTable.base_join(ATText txt)
Join all the text elements of the receiver table into a text string where the argument is used as a separator |
ATTable |
ATTable.base_select(ATNumber start,
ATNumber stop)
Select a subrange of the table: idx: 1 2 3 4 5 [a, b, c, d, e].select(2,4) => [b, c, d] |
ATTable |
ATTable.base__oppls_(ATTable other)
[1,2,3] + [4,5] => [1,2,3,4,5] |
ATObject |
ATMirror.base_getBase()
Provides access to the AmbientTalk language value this mirror reflects upon. |
ATTable |
ATText.base_explode()
|
ATTable |
ATText.base_split(ATText separator)
|
ATNil |
ATText.base_find_do_(ATText regexp,
ATClosure consumer)
|
ATText |
ATText.base_replace_by_(ATText regexp,
ATClosure transformer)
|
ATText |
ATText.base_toUpperCase()
|
ATText |
ATText.base_toLowerCase()
|
ATNumber |
ATText.base_length()
|
ATText |
ATText.base__oppls_(ATObject other)
|
ATNumber |
ATText.base__opltx__opeql__opgtx_(ATText other)
|
ATBoolean |
ATText.base__optil__opeql_(ATText other)
|
ATMethod |
ATClosure.base_getMethod()
Structural access to the encapsulated method. |
ATContext |
ATClosure.base_getContext()
Structural access to the scope of the closure. |
ATObject |
ATClosure.base_apply(ATTable args)
Applies the closure to the given arguments, already wrapped in a table. |
ATObject |
ATClosure.base_applyInScope(ATTable args,
ATObject scope)
Applies the closure to the given arguments, already wrapped in a table. |
ATObject |
ATClosure.base_whileTrue_(ATClosure body)
Allows AmbientTalk programmers to write { booleanCondition }.whileTrue: { body } which will execute body as long as the boolean condition evaluates to true. |
ATObject |
ATClosure.base_escape()
{ |quit| ... quit(val) ... }.escape() The escape control construct passes to its receiver block a function which when invoked, immediately transfers control back to the caller of escape, returning the value passed to quit. |
ATFraction |
ATNumeric.base_cos()
|
ATFraction |
ATNumeric.base_sin()
|
ATFraction |
ATNumeric.base_tan()
|
ATFraction |
ATNumeric.base_log()
|
ATFraction |
ATNumeric.base_sqrt()
|
ATFraction |
ATNumeric.base_expt(ATNumeric pow)
|
ATNumeric |
ATNumeric.base__oppls_(ATNumeric other)
|
ATNumeric |
ATNumeric.base_addNumber(ATNumber other)
|
ATNumeric |
ATNumeric.base_addFraction(ATFraction other)
|
ATNumeric |
ATNumeric.base__opmns_(ATNumeric other)
|
ATNumeric |
ATNumeric.base_subtractNumber(ATNumber other)
|
ATNumeric |
ATNumeric.base_subtractFraction(ATFraction other)
|
ATNumeric |
ATNumeric.base__optms_(ATNumeric other)
|
ATNumeric |
ATNumeric.base_timesNumber(ATNumber other)
|
ATNumeric |
ATNumeric.base_timesFraction(ATFraction other)
|
ATNumeric |
ATNumeric.base__opdiv_(ATNumeric other)
|
ATNumeric |
ATNumeric.base_divideNumber(ATNumber other)
|
ATNumeric |
ATNumeric.base_divideFraction(ATFraction other)
|
ATNumeric |
ATNumeric.base__opltx__opeql__opgtx_(ATNumeric other)
|
ATNumeric |
ATNumeric.base_gequalsNumber(ATNumber other)
|
ATNumeric |
ATNumeric.base_gequalsFraction(ATFraction other)
|
ATBoolean |
ATNumeric.base__opltx_(ATNumeric other)
|
ATBoolean |
ATNumeric.base__opgtx_(ATNumeric other)
|
ATBoolean |
ATNumeric.base__opltx__opeql_(ATNumeric other)
|
ATBoolean |
ATNumeric.base__opgtx__opeql_(ATNumeric other)
|
ATBoolean |
ATNumeric.base__opeql_(ATNumeric other)
|
ATBoolean |
ATNumeric.base__opnot__opeql_(ATNumeric other)
|
Uses of InterpreterException in edu.vub.at.objects.coercion |
Uses of InterpreterException in edu.vub.at.objects.grammar |
Methods in edu.vub.at.objects.grammar that throw InterpreterException | |
ATText |
ATSymbol.base_getText()
Transform a symbol into a string. |
ATTable |
ATSymbol.base__opmns__opgtx_(ATObject obj)
Used during import: declarations to conveniently denote aliases for names. |
Uses of InterpreterException in edu.vub.at.objects.mirrors |
Methods in edu.vub.at.objects.mirrors with parameters of type InterpreterException | |
static ATObject |
Reflection.upExceptionCreation(InterpreterException jRcvr,
ATTable atInitargs)
|
Methods in edu.vub.at.objects.mirrors that throw InterpreterException | |
protected void |
ReflectiveAccessTest.evaluateInput(java.lang.String input,
ATContext ctx)
|
void |
ReflectionTest.testUpSelector()
|
static ATSymbol |
Reflection.downBaseLevelSelector(java.lang.String jSelector)
Transforms a Java selector prefixed with base_ into an AmbientTalk selector without the prefix. |
static ATSymbol |
Reflection.downMetaLevelSelector(java.lang.String jSelector)
Transforms a Java selector prefixed with meta_ into an AmbientTalk selector without the prefix. |
static ATSymbol |
Reflection.downBaseFieldAccessSelector(java.lang.String jSelector)
Transforms a Java selector prefixed with base_get into an equivalent AmbientTalk selector. |
static ATSymbol |
Reflection.downBaseFieldMutationSelector(java.lang.String jSelector)
Transforms a Java selector prefixed with base_set into an equivalent AmbientTalk selector. |
static ATSymbol |
Reflection.downMetaFieldAccessSelector(java.lang.String jSelector)
Transforms a Java selector prefixed with meta_get into an equivalent AmbientTalk selector Example: downMetaFieldAccessSelector("meta_getReceiver") => ATSymbol("receiver") |
static ATSymbol |
Reflection.downMetaFieldMutationSelector(java.lang.String jSelector)
Transforms a Java selector prefixed with meta_set into an equivalent AmbientTalk selector. |
static ATSymbol |
Reflection.downFieldName(java.lang.String jName)
A field name "Field" passed from the Java to the AmbientTalk level undergoes the following transformations: - the same transformations applicable to downSelector |
static java.lang.String |
Reflection.upSelector(ATSymbol atSelector)
A selector passed from the AmbientTalk to the Java level undergoes the following transformations: - any colons (:) are replaced by underscores (_) - any operator symbol is replaced by _op{code}_ where code is generated as follows: Operator codes are: + -> pls - -> mns * -> tms / -> div \ -> bsl & -> and ! |
static java.lang.String |
Reflection.upBaseLevelSelector(ATSymbol atSelector)
Transforms an AmbientTalk selector into a Java-level selector prefixed with base_. |
static java.lang.String |
Reflection.upMetaLevelSelector(ATSymbol atSelector)
Transforms an AmbientTalk selector into a Java-level selector prefixed with meta_. |
static java.lang.String |
Reflection.upMagicLevelSelector(ATSymbol atSelector)
Transforms an AmbientTalk selector into a Java-level selector prefixed with magic_. |
static java.lang.String |
Reflection.upFieldName(ATSymbol atName)
A field name "field" passed from the AmbientTalk to the Java level undergoes the following transformations: - the same transformations applicable to upSelector |
static java.lang.String |
Reflection.upBaseFieldAccessSelector(ATSymbol atName)
Transforms an AmbientTalk selector into an equivalent Java selector uppercased and prefixed with "base_get". |
static java.lang.String |
Reflection.upBaseFieldMutationSelector(ATSymbol atName)
Transforms an AmbientTalk selector into an equivalent Java selector uppercased and prefixed with "base_set". |
static java.lang.String |
Reflection.upMetaFieldAccessSelector(ATSymbol atName)
Transforms an AmbientTalk selector into an equivalent Java selector uppercased and prefixed with "meta_get". |
static java.lang.String |
Reflection.upMetaFieldMutationSelector(ATSymbol atName)
Transforms an AmbientTalk selector into an equivalent Java selector uppercased and prefixed with "meta_set". |
static java.lang.String |
Reflection.upMagicFieldAccessSelector(ATSymbol atName)
Transforms an AmbientTalk selector into an equivalent Java selector uppercased and prefixed with "meta_get". |
static java.lang.String |
Reflection.upMagicFieldMutationSelector(ATSymbol atName)
Transforms an AmbientTalk selector into an equivalent Java selector uppercased and prefixed with "meta_set". |
static ATField |
Reflection.downField(ATObject natObject,
ATSymbol atSelector,
java.lang.String getPrefix,
java.lang.String setPrefix)
Constructs an AmbientTalk ATField from a pair of accessor/mutator methods of a Java object. |
static ATField |
Reflection.downBaseLevelField(ATObject natObject,
ATSymbol atSelector)
|
static ATField |
Reflection.downMetaLevelField(ATObject natObject,
ATSymbol atSelector)
|
static ATMethod |
Reflection.downMethod(ATObject natObject,
java.lang.String jSelector,
ATSymbol origName)
Constructs an AmbientTalk ATMethod from a Java method. |
static ATMethod |
Reflection.downBaseLevelMethod(ATObject natObject,
ATSymbol atSelector)
|
static ATMethod |
Reflection.downMetaLevelMethod(ATObject natObject,
ATSymbol atSelector)
|
static ATObject |
Reflection.downInvocation(ATObject atRcvr,
java.lang.reflect.Method jMethod,
ATObject[] jArgs)
downInvocation takes an implicit Java invocation and turns it into an explicit AmbientTalk invocation process. |
static ATObject |
Reflection.upInvocation(ATObject atOrigRcvr,
java.lang.String jSelector,
ATTable atArgs)
upInvocation takes an explicit AmbientTalk method invocation and turns it into an implicitly performed Java invocation. |
static boolean |
Reflection.upRespondsTo(ATObject jRcvr,
java.lang.String jSelector)
upRespondsTo transforms an explicit AmbientTalk respondsTo meta-level request into an implicit check whether the given jRcvr java object has a method corresponding to the given selector, prefixed with base_ |
static ATObject |
Reflection.upFieldSelection(ATObject atOrigRcvr,
java.lang.String jSelector)
upFieldSelection takes an explicit AmbientTalk field selection and turns it into an implicitly performed Java selection by invoking a getter method, if such a getter method exists. |
static ATObject |
Reflection.upFieldAssignment(ATObject atOrigRcvr,
java.lang.String jSelector,
ATObject value)
upFieldAssignment takes an explicit AmbientTalk field assignment and turns it into an implicitly performed Java field assignment by invoking a mutator method, if such a method exists. |
static NativeClosure |
Reflection.upMethodSelection(ATObject atOrigRcvr,
java.lang.String jSelector,
ATSymbol origSelector)
upMethodSelection takes an explicit AmbientTalk field selection and checks whether a Java method exists that matches the selector. |
static ATObject |
Reflection.upInstanceCreation(ATObject jRcvr,
ATTable atInitargs)
upInstanceCreation takes an explicit AmbientTalk 'new' invocation and turns it into an implicit Java instance creation by calling a constructor. |
static ATObject |
Reflection.upExceptionCreation(InterpreterException jRcvr,
ATTable atInitargs)
|
static ATObject |
Reflection.downObject(ATObject metaObject)
Pass an AmbientTalk meta-level object into the base-level |
static ATField[] |
Reflection.downBaseLevelFields(ATObject atObj)
Returns, for a given AmbientTalk object atObj, an array of NativeField objects corresponding to all non-static methods of that object's Java class, where each method's name is prefixed with 'base_get' |
static ATField[] |
Reflection.downMetaLevelFields(ATObject atObj)
Returns, for a given AmbientTalk object atObj, an array of NativeField objects corresponding to all non-static methods of that object's Java class, where each method's name is prefixed with 'meta_get' |
static ATMethod[] |
Reflection.downBaseLevelMethods(ATObject atObj)
Returns, for a given AmbientTalk object atObj, an array of NativeMethod objects corresponding to all non-static methods of that object's class, where each method's name: - is prefixed with 'base_' - is not prefixed with 'base_get' - is not prefixed with 'base_set' |
static ATMethod[] |
Reflection.downMetaLevelMethods(ATObject natObj)
Returns, for a given AmbientTalk object natObj, an array of NativeMethod objects corresponding to all non-static methods of that object's class, where each method's name: - is prefixed with 'meta_' - is not prefixed with 'meta_get' - is not prefixed with 'meta_set' |
ATSymbol |
PrimitiveMethod.base_getName()
|
ATTable |
PrimitiveMethod.base_getParameters()
|
abstract ATObject |
PrimitiveMethod.base_apply(ATTable arguments,
ATContext ctx)
|
ATObject |
PrimitiveMethod.base_applyInScope(ATTable arguments,
ATContext ctx)
|
NATText |
PrimitiveMethod.meta_print()
|
ATTable |
PrimitiveMethod.meta_getStripes()
|
ATObject |
OBJMirrorRoot.meta_invoke(ATObject receiver,
ATSymbol atSelector,
ATTable arguments)
The effect of invoking methods on a mirror (through meta_invoke) consists of checking whether the requested functionality is provided as a meta-operation by the principal that is wrapped by this mirror. |
ATObject |
OBJMirrorRoot.meta_clone()
OBJMirrorRoot is a singleton object. |
protected ATObject |
OBJMirrorRoot.createChild(ATClosure code,
boolean parentPointerType)
|
ATObject |
OBJMirrorRoot.meta_select(ATObject receiver,
ATSymbol atSelector)
The effect of selecting fields or methods on a mirror (through meta_select) consists of checking whether the requested selector matches a field of the principal wrapped by this mirror. |
ATNil |
OBJMirrorRoot.meta_assignField(ATObject receiver,
ATSymbol name,
ATObject value)
The effect of assigning a field on a mirror can be twofold. |
ATObject |
OBJMirrorRoot.meta_resolve()
After deserialization, ensure that the mirror root remains unique. |
ATTable |
OBJMirrorRoot.meta_getStripes()
|
ATNil |
NATMirage.magic_addMethod(ATMethod method)
|
ATNil |
NATMirage.magic_assignField(ATObject receiver,
ATSymbol selector,
ATObject value)
|
NATMirage |
NATMirage.magic_clone()
|
protected NATObject |
NATMirage.createClone(FieldMap map,
java.util.Vector state,
java.util.LinkedList customFields,
MethodDictionary methodDict,
ATObject dynamicParent,
ATObject lexicalParent,
byte flags,
ATStripe[] stripes)
|
ATNil |
NATMirage.magic_defineField(ATSymbol name,
ATObject value)
|
ATObject |
NATMirage.magic_extend(ATClosure code)
|
ATMethod |
NATMirage.magic_getMethod(ATSymbol selector)
|
ATObject |
NATMirage.magic_invoke(ATObject receiver,
ATSymbol selector,
ATTable arguments)
|
ATTable |
NATMirage.magic_listMethods()
|
ATObject |
NATMirage.magic_lookup(ATSymbol selector)
|
ATObject |
NATMirage.magic_newInstance(ATTable initargs)
|
NATText |
NATMirage.magic_print()
|
ATBoolean |
NATMirage.magic_respondsTo(ATSymbol selector)
|
ATObject |
NATMirage.magic_select(ATObject receiver,
ATSymbol selector)
|
ATObject |
NATMirage.magic_share(ATClosure code)
|
ATNil |
NATMirage.magic_addField(ATField field)
|
ATNil |
NATMirage.magic_assignVariable(ATSymbol name,
ATObject value)
|
ATObject |
NATMirage.magic_doesNotUnderstand(ATSymbol selector)
|
ATField |
NATMirage.magic_getField(ATSymbol selector)
|
ATTable |
NATMirage.magic_listFields()
|
ATObject |
NATMirage.magic_send(ATAsyncMessage message)
|
ATObject |
NATMirage.magic_eval(ATContext ctx)
|
ATObject |
NATMirage.magic_quote(ATContext ctx)
|
ATObject |
NATMirage.magic_getDynamicParent()
|
ATObject |
NATMirage.magic_getLexicalParent()
|
ATObject |
NATMirage.magic_pass()
|
ATObject |
NATMirage.magic_resolve()
|
ATBoolean |
NATMirage.magic_isStripedWith(ATStripe stripe)
|
ATTable |
NATMirage.magic_getStripes()
|
ATNil |
NATMirage.meta_addMethod(ATMethod method)
|
ATNil |
NATMirage.meta_assignField(ATObject receiver,
ATSymbol selector,
ATObject value)
|
ATObject |
NATMirage.meta_clone()
|
ATNil |
NATMirage.meta_defineField(ATSymbol name,
ATObject value)
|
ATObject |
NATMirage.meta_extend(ATClosure code)
|
ATMethod |
NATMirage.meta_grabMethod(ATSymbol selector)
|
ATObject |
NATMirage.meta_invoke(ATObject receiver,
ATSymbol selector,
ATTable arguments)
|
ATTable |
NATMirage.meta_listMethods()
|
ATObject |
NATMirage.meta_lookup(ATSymbol selector)
|
ATObject |
NATMirage.meta_newInstance(ATTable initargs)
|
NATText |
NATMirage.meta_print()
|
ATBoolean |
NATMirage.meta_respondsTo(ATSymbol selector)
|
ATObject |
NATMirage.meta_select(ATObject receiver,
ATSymbol selector)
|
ATObject |
NATMirage.meta_share(ATClosure code)
|
ATNil |
NATMirage.meta_addField(ATField field)
|
ATNil |
NATMirage.meta_assignVariable(ATSymbol name,
ATObject value)
|
ATObject |
NATMirage.meta_doesNotUnderstand(ATSymbol selector)
|
ATField |
NATMirage.meta_grabField(ATSymbol selector)
|
ATTable |
NATMirage.meta_listFields()
|
ATObject |
NATMirage.meta_send(ATAsyncMessage message)
|
ATObject |
NATMirage.meta_eval(ATContext ctx)
|
ATObject |
NATMirage.meta_quote(ATContext ctx)
|
ATObject |
NATMirage.meta_getDynamicParent()
|
ATObject |
NATMirage.meta_getLexicalParent()
|
ATObject |
NATMirage.meta_pass()
|
ATObject |
NATMirage.meta_resolve()
|
ATBoolean |
NATMirage.meta_isStripedWith(ATStripe stripe)
|
ATTable |
NATMirage.meta_getStripes()
|
ATMirror |
NATMirage.base_asMirror()
|
ATSymbol |
NativeMethod.base_getName()
The name of a wrapped Java method is the name of the Java method, converted to an AmbientTalk selector name. |
ATTable |
NativeMethod.base_getParameters()
The parameters of a wrapped method are represented as symbols representing the class name of the parameter type. |
ATObject |
NativeMethod.base_apply(ATTable arguments,
ATContext ctx)
|
ATObject |
NativeMethod.base_applyInScope(ATTable arguments,
ATContext ctx)
|
NATText |
NativeMethod.meta_print()
|
ATTable |
NativeMethod.meta_getStripes()
|
ATObject |
NativeField.base_readField()
|
ATNil |
NativeField.base_writeField(ATObject newValue)
|
ATObject |
NativeField.meta_newInstance(ATTable initargs)
Fields can be re-initialized when installed in an object that is being cloned. |
NATText |
NativeField.meta_print()
|
ATTable |
NativeField.meta_getStripes()
|
ATContext |
NativeClosure.base_getContext()
Overridden to allow for lazy instantiation of the context. |
ATObject |
NativeClosure.base_apply(ATTable arguments)
Apply the NativeClosure, which either gives rise to executing a native piece of code supplied by an anonymous subclass, or executes the wrapped NativeMethod. |
ATObject |
NativeClosure.base_applyInScope(ATTable args,
ATObject scope)
A NativeClosure can also be directed to execute its wrapped NativeMethod in an externally specified scope. |
NATText |
NativeClosure.meta_print()
|
ATObject |
NativeClosure.get(ATTable args,
int n)
Auxiliary method to more easily extract arguments from an ATTable |
int |
NativeClosure.getNbr(ATTable args,
int n)
|
double |
NativeClosure.getFrc(ATTable args,
int n)
|
java.lang.String |
NativeClosure.getTxt(ATTable args,
int n)
|
boolean |
NativeClosure.getBln(ATTable args,
int n)
|
java.lang.Object[] |
NativeClosure.getTab(ATTable args,
int n)
|
void |
NativeClosure.checkArity(ATTable args,
int required)
|
ATObject |
NativeAnonymousMethod.base_apply(ATTable arguments,
ATContext ctx)
It is an error to directly apply an anonymous method. |
ATObject |
NativeAnonymousMethod.base_applyInScope(ATTable arguments,
ATContext ctx)
|
NATText |
NativeAnonymousMethod.meta_print()
|
ATTable |
NativeAnonymousMethod.meta_getStripes()
|
ATObject |
NATIntrospectiveMirror.meta_invoke(ATObject receiver,
ATSymbol atSelector,
ATTable arguments)
The effect of invoking methods on a mirror (through meta_invoke) consists of checking whether the requested functionality is provided as a meta-operation by the principal that is wrapped by this mirror. |
ATObject |
NATIntrospectiveMirror.meta_select(ATObject receiver,
ATSymbol atSelector)
The effect of selecting fields or methods on a mirror (through meta_select) consists of checking whether the requested selector matches a field of the principal wrapped by this mirror. |
ATBoolean |
NATIntrospectiveMirror.meta_respondsTo(ATSymbol atSelector)
A mirror responds to a message m if and only if: - either its principal has a method named meta_m - or the mirror itself implements a method named base_m |
ATNil |
NATIntrospectiveMirror.meta_assignField(ATObject receiver,
ATSymbol name,
ATObject value)
The effect of assigning a field on a mirror can be twofold. |
ATField |
NATIntrospectiveMirror.meta_grabField(ATSymbol fieldName)
|
ATMethod |
NATIntrospectiveMirror.meta_grabMethod(ATSymbol methodName)
|
ATTable |
NATIntrospectiveMirror.meta_listFields()
Listing the fields of a mirror requires us to list all of the meta_get methods of the principal + all of the base_get methods of the mirror itself |
ATTable |
NATIntrospectiveMirror.meta_listMethods()
Listing the methods of a mirror requires us to list all of the meta_ methods of the principal (excluding meta_get/set methods) + all of the base_ methods (excluding base_get/set methods) of the mirror itself |
ATObject |
NATIntrospectiveMirror.meta_clone()
We enforce the restriction that any object has but a single IntrospectiveMirror by returning the mirror itself when asked to clone. |
NATText |
NATIntrospectiveMirror.meta_print()
|
ATTable |
NATIntrospectiveMirror.meta_getStripes()
|
ATObject |
NATIntercessiveMirror.meta_clone()
|
NATIntercessiveMirror |
NATIntercessiveMirror.magic_clone()
|
protected NATObject |
NATIntercessiveMirror.createClone(FieldMap map,
java.util.Vector state,
java.util.LinkedList customFields,
MethodDictionary methodDict,
ATObject dynamicParent,
ATObject lexicalParent,
byte flags,
ATStripe[] stripes)
|
protected ATObject |
NATIntercessiveMirror.createChild(ATClosure code,
boolean parentPointerType)
|
NATText |
NATIntercessiveMirror.meta_print()
|
ATTable |
NATIntercessiveMirror.meta_getStripes()
|
static ATObject |
JavaInterfaceAdaptor.invokeNativeATMethod(java.lang.Class jClass,
ATObject natReceiver,
java.lang.String jSelector,
ATObject[] jArguments)
Invokes a method on a Java object identified by a selector. |
static ATObject |
JavaInterfaceAdaptor.invokeNativeATMethod(java.lang.reflect.Method javaMethod,
ATObject jReceiver,
ATObject[] jArguments)
Invokes a method on a native AmbientTalk object identified by a java.lang.reflect.Method object. |
static ATObject |
JavaInterfaceAdaptor.createNativeATObject(java.lang.Class jClass,
ATObject[] jInitArgs)
Try to create a new instance of a Java class given an array of initialization arguments. |
static java.lang.reflect.Method |
JavaInterfaceAdaptor.getNativeATMethod(java.lang.Class baseInterface,
ATObject receiver,
java.lang.String methodName)
|
static java.lang.Object |
JavaInterfaceAdaptor.atObjectToPrimitiveJava(ATObject atObj,
java.lang.Class type)
|
Constructors in edu.vub.at.objects.mirrors that throw InterpreterException | |
NATMirage(FieldMap map,
java.util.Vector state,
java.util.LinkedList customFields,
MethodDictionary methodDict,
ATObject dynamicParent,
ATObject lexicalParent,
byte flags,
ATStripe[] stripes,
NATIntercessiveMirror mirror)
Constructs a new ambienttalk mirage as a clone of an existing one. |
|
NATIntercessiveMirror(FieldMap map,
java.util.Vector state,
java.util.LinkedList customFields,
MethodDictionary methodDict,
ATObject dynamicParent,
ATObject lexicalParent,
byte flags,
ATStripe[] stripes,
NATMirage base)
Constructs a new ambienttalk mirage as a clone of an existing one. |
Uses of InterpreterException in edu.vub.at.objects.natives |
Fields in edu.vub.at.objects.natives declared as InterpreterException | |
private InterpreterException |
NATException.wrappedException_
|
Methods in edu.vub.at.objects.natives that return InterpreterException | |
InterpreterException |
NATException.getWrappedException()
|
Methods in edu.vub.at.objects.natives that throw InterpreterException | |
ATObject |
SAFWorkingDirectory.initialize()
|
ATObject |
SAFSystem.initialize()
|
ATObject |
SAFLobby.initialize()
|
NATText |
OBJSystem.meta_print()
|
ATNil |
OBJSystem.base_print(ATObject[] objs)
def print(@obj) { print obj to standard output } |
ATNil |
OBJSystem.base_println(ATObject[] objs)
def println(@obj) { self.print(#[@obj, '\n']) } |
void |
StripesTest.testParentlessStripe()
|
void |
StripesTest.testPositiveSubstriping()
|
void |
StripesTest.testNegativeSubstriping()
|
void |
StripesTest.testObjectStripes()
|
private static java.util.Hashtable |
OBJLexicalRoot.preprocessAliases(ATTable aliases)
Given a table of tables, of the form [ [oldname, newname], ... ], returns a hashtable mapping the old names to the new names. |
private static java.util.HashSet |
OBJLexicalRoot.preprocessExcludes(ATTable exclusions)
Given a table of symbols, returns a hashset containing all the names. |
private static ATObject |
OBJLexicalRoot.performImport(ATObject sourceObject,
ATContext ctx,
java.util.Hashtable aliases,
java.util.HashSet exclude)
Performs the actual copying of the slots from the source object to the importing object. |
ATObject |
OBJLexicalRoot.base_if_then_(ATBoolean cond,
ATClosure consequent)
The if:then: primitive, which calls back on the boolean using ifTrue: usage: if: booleanCondition then: { consequent } |
ATObject |
OBJLexicalRoot.base_if_then_else_(ATBoolean cond,
ATClosure consequent,
ATClosure alternative)
The if:then:else primitive, which calls back on the boolean using ifTrue:ifFalse: usage: if: booleanCondition then: { consequent } else: { alternative } pseudo-implementation: booleanCondition.ifTrue: { consequent } ifFalse: { alternative } |
ATObject |
OBJLexicalRoot.base_while_do_(ATClosure condition,
ATClosure body)
The while:do: primitive, which calls back on the closure using whileTrue: usage: while: { condition } do: { body } pseudo-implementation: { condition }.whileTrue: { body } |
ATObject |
OBJLexicalRoot.base_foreach_in_(ATClosure body,
ATTable tab)
The foreach:in: primitive, which calls back on the table using each: usage: foreach: { |v| body } in: [ table ] pseudo-implementation: [ table ].each: { |v| body } |
ATObject |
OBJLexicalRoot.base_do_if_(ATClosure body,
ATBoolean condition)
The do:if: primitive, which in Ruby terminology is a 'statement modifier' usage: do: { body } if: condition pseudo-implementation: condition.ifTrue: { body } |
ATObject |
OBJLexicalRoot.base_do_unless_(ATClosure body,
ATBoolean condition)
The do:unless: primitive, which in Ruby terminology is a 'statement modifier' usage: do: { body } unless: condition pseudo-implementation: condition.ifFalse: { body } |
ATObject |
OBJLexicalRoot.base_let_(ATClosure body)
The let: primitive, which allows for the easy creation of temporary local variables. |
ATObject |
OBJLexicalRoot.base_actor_(ATClosure code)
actor: { code } == actor: { code } mirroredBy: |
ATActorMirror |
OBJLexicalRoot.base_getActor()
actor => a reference to a mirror on the current actor |
ATObject |
OBJLexicalRoot.base_export_as_(ATObject object,
ATStripe topic)
export: object as: topic => object becomes discoverable by objects in other actors via topic returns a publication object that can be used to cancel the export |
ATObject |
OBJLexicalRoot.base_when_discovered_(ATStripe topic,
ATClosure handler)
when: topic discovered: { code } => when an object is exported by another actor under topic, trigger the code returns a subscription object that can be used to cancel the handler Once the code block has run once, it will not be triggered again. |
ATObject |
OBJLexicalRoot.base_whenever_discovered_(ATStripe topic,
ATClosure handler)
whenever: topic discovered: { code } => when an object is exported by another actor under topic, trigger the code returns a subscription object that can be used to cancel the handler The code block can be fired multiple times. |
ATObject |
OBJLexicalRoot.base_when_disconnected_(ATFarReference farReference,
ATClosure listener)
when: farReference disconnected: { code } => when the remote reference is broken due to network disconnections, trigger the code returns a subscription object that can be used to cancel the listener |
ATObject |
OBJLexicalRoot.base_when_reconnected_(ATFarReference farReference,
ATClosure listener)
when: farReference reconnected: { code } => when the remote reference is reinstated after a network disconnection, trigger the code returns a subscription object that can be used to cancel the listener |
ATTable |
OBJLexicalRoot.base_retract_(ATFarReference farReference)
retract: farReference => retract all currently unsent messages from the far reference's outbox This has the side effect that the returned messages will *not* be sent automatically anymore, the programmer is responsible to resend all messages that still need to be sent by hand. |
ATObject |
OBJLexicalRoot.base_extend_with_(ATObject parent,
ATClosure code)
The extend:with: primitive, which delegates to the extend meta operation on the parent object. |
ATObject |
OBJLexicalRoot.base_object_(ATClosure code)
The object: primitive, implemented as base-level code. |
ATObject |
OBJLexicalRoot.base_isolate_(ATClosure code)
isolate: { code } => create an isolate object Equivalent to: object: { code } stripedWith: [ at.stripes.Isolate ] |
ATObject |
OBJLexicalRoot.base_share_with_(ATObject parent,
ATClosure code)
The share:with: primitive, which delegates to the share meta operation on the parent object. |
ATObject |
OBJLexicalRoot.base_reflect_(ATObject reflectee)
The reflect: primitive, which returns a mirror on an object. |
ATObject |
OBJLexicalRoot.base_clone_(ATObject original)
The clone: primitive, which returns a clone of an object. |
ATObject |
OBJLexicalRoot.base_mirror_(ATClosure code)
The mirror: primitive, which allows creating custom mirrors which can be used to allow intercessive reflection on objects created from this mirror. |
ATObject |
OBJLexicalRoot.base_object_mirroredBy_(ATClosure code,
NATIntercessiveMirror mirror)
object: { code } mirroredBy: mirror => return an object mirage initialized with code |
ATObject |
OBJLexicalRoot.base_extend_with_mirroredBy_(ATObject parent,
ATClosure code,
NATIntercessiveMirror mirror)
|
ATObject |
OBJLexicalRoot.base_share_with_mirroredBy_(ATObject parent,
ATClosure code,
NATIntercessiveMirror mirror)
|
ATBoolean |
OBJLexicalRoot.base_is_stripedWith_(ATObject object,
ATStripe stripe)
is: object stripedWith: stripe => returns true if the given object is striped with the given stripe |
ATTable |
OBJLexicalRoot.base_stripesOf_(ATObject object)
stripesOf: object => returns all of the stripes of an object |
ATObject |
OBJLexicalRoot.base_object_stripedWith_(ATClosure code,
ATTable stripes)
object: { code } stripedWith: [ s1, s2, ... ] => creates a new object tagged with the given stripes |
ATObject |
OBJLexicalRoot.base_try_usingHandlers_(ATClosure tryBlock,
ATTable exceptionHandlers)
try: { tryBlock } usingHandlers: [ handler1, handler2, ... ] Applies the given closure (to []) and handles exceptions using the given exception handlers. |
ATObject |
OBJLexicalRoot.base_try_using_(ATClosure tryBlock,
ATHandler handler)
try: { tryBlock} using: handler Ad-hoc code for one exception handler |
ATObject |
OBJLexicalRoot.base_try_using_using_(ATClosure tryBlock,
ATHandler hdl1,
ATHandler hdl2)
try: { tryBlock} using: handler1 using: handler2 Ad-hoc code for two exception handlers |
ATObject |
OBJLexicalRoot.base_try_using_using_using_(ATClosure tryBlock,
ATHandler hdl1,
ATHandler hdl2,
ATHandler hdl3)
try: { tryBlock} using: hdl1 using: hdl2 using: hdl3 Ad-hoc code for three exception handlers |
ATObject |
OBJLexicalRoot.base_try_catch_using_(ATClosure tryBlock,
ATStripe filter,
ATClosure replacementCode)
try: { tryBlock} catch: stripe using: { |e| replacementCode } 'Syntactic sugar' for one in-line handler |
ATObject |
OBJLexicalRoot.base_try_catch_using_catch_using_(ATClosure tryBlock,
ATStripe filter1,
ATClosure hdl1,
ATStripe filter2,
ATClosure hdl2)
try: { tryBlock } catch: stripe using: { |e| replacementCode } catch: stripe2 using: { |e| replacementCode2 } 'Syntactic sugar' for two in-line handlers |
ATObject |
OBJLexicalRoot.base_try_catch_using_catch_using_catch_using_(ATClosure tryBlock,
ATStripe filter1,
ATClosure hdl1,
ATStripe filter2,
ATClosure hdl2,
ATStripe filter3,
ATClosure hdl3)
try: { tryBlock } catch: stripe using: { |e| replacementCode } catch: stripe2 using: { |e| replacementCode2 } catch: stripe3 using: { |e| replacementCode3 } 'Syntactic sugar' for three in-line handlers |
ATNil |
OBJLexicalRoot.base_raise_(ATObject anExceptionObject)
raise: exception Raises an exception which can be caught by dynamically installed try-catch-using blocks. |
ATBoolean |
OBJLexicalRoot.base__opnot_(ATBoolean b)
The unary ! |
ATNumber |
OBJLexicalRoot.base__opmns_(ATNumber n)
The unary - primitive: -NBR(n) == NBR(-n) |
ATNumber |
OBJLexicalRoot.base__oppls_(ATNumber n)
The unary + primitive: +NBR(n) == NBR(n) |
ATAbstractGrammar |
OBJLexicalRoot.base_read_(ATText source)
read: "text" => parses the given string into an AST |
ATObject |
OBJLexicalRoot.base_eval_in_(ATAbstractGrammar ast,
ATObject obj)
eval: ast in: obj => evaluates the given AST in the context of the given object, returning its value |
ATText |
OBJLexicalRoot.base_print_(ATObject obj)
print: expression => string representing the expression |
ATObject |
OBJLexicalRoot.base_new(ATObject[] initargs)
Invoking root.new(args) results in an exception for reasons of safety. |
ATObject |
OBJLexicalRoot.meta_resolve()
After deserialization, ensure that the lexical root remains unique. |
NATText |
NATText.meta_print()
|
ATTable |
NATText.meta_getStripes()
|
ATTable |
NATText.base_explode()
Explodes a text string into a table of constinuent characters |
ATTable |
NATText.base_split(ATText regexp)
Split the string according to the given regular expression. |
ATNil |
NATText.base_find_do_(ATText regexp,
ATClosure consumer)
|
ATText |
NATText.base_replace_by_(ATText regexp,
ATClosure transformer)
|
ATText |
NATText.base__oppls_(ATObject other)
|
ATNumber |
NATText.base__opltx__opeql__opgtx_(ATText other)
|
ATBoolean |
NATText.base__optil__opeql_(ATText other)
|
ATObject |
NATTable.meta_eval(ATContext ctx)
To evaluate a table, evaluate all of its constituent expressions, taking special care to take into account spliced expressions. |
ATObject |
NATTable.meta_quote(ATContext ctx)
To quote a table, quote all elements of the table. |
NATText |
NATTable.meta_print()
|
ATTable |
NATTable.meta_getStripes()
|
ATObject |
NATTable.base_at(ATNumber index)
|
ATObject |
NATTable.base_atPut(ATNumber index,
ATObject value)
|
ATNil |
NATTable.base_each_(ATClosure clo)
|
ATTable |
NATTable.base_map_(ATClosure clo)
|
ATObject |
NATTable.base_with_collect_(ATObject init,
ATClosure clo)
|
ATTable |
NATTable.base_filter_(ATClosure clo)
|
ATObject |
NATTable.base_find_(ATClosure clo)
|
ATText |
NATTable.base_implode()
|
ATText |
NATTable.base_join(ATText sep)
|
ATTable |
NATTable.base_select(ATNumber first,
ATNumber last)
tab.select(start, stop) == els = [ ] ; start.to: stop do: { |i| els << tab[i] } ; els |
ATTable |
NATTable.base__oppls_(ATTable other)
|
protected int |
NATTable.extractIndex(ATNumber atIndex)
|
ATObject |
NATTable.meta_resolve()
|
ATSymbol |
NATStripe.base_getStripeName()
|
ATTable |
NATStripe.base_getParentStripes()
|
ATBoolean |
NATStripe.base_isSubstripeOf(ATStripe superstripe)
Native implementation of: def isSubstripeOf(superstripe) { (superstripe.name() == name).or: { (superstripes.find: { |sstripe| sstripe.isSubstripeOf(superstripe) }) ! |
NATText |
NATStripe.meta_print()
|
ATTable |
NATStripe.meta_getStripes()
|
ATBoolean |
NATStripe.OBJRootStripe.base_isSubstripeOf(ATStripe superstripe)
The root stripe is only a substripe of the root stripe itself |
void |
NATObjectClosureTest.testExternalMethodBindings()
NATIVE TEST: Tests whether the definition of an external method refers to the correct bindings for: - lexically accessed variables - the value of 'self' - the value of 'super' |
ATObject |
NATObjectClosureTest.AGScopeTest.meta_eval(ATContext ctx)
|
ATMethod |
NATObjectClosureTest.AGScopeTest.transformToMethodNamed(ATSymbol name)
|
ATObject |
NATObject.meta_invoke(ATObject receiver,
ATSymbol selector,
ATTable arguments)
Invocations on an object ( o.m( args ) ) are handled by looking up the requested selector in the dynamic parent chain of the receiver. |
ATBoolean |
NATObject.meta_respondsTo(ATSymbol selector)
An ambienttalk object can respond to a message if a corresponding field or method exists either in the receiver object locally, or in one of its dynamic parents. |
ATObject |
NATObject.meta_select(ATObject receiver,
ATSymbol selector)
meta_select is used to evaluate code of the form o.m. |
ATObject |
NATObject.meta_lookup(ATSymbol selector)
This method is used to evaluate code of the form selector within the scope of this object. |
ATNil |
NATObject.meta_defineField(ATSymbol name,
ATObject value)
When a new field is defined in an object, it is important to check whether or not the field map is shared between clones or not. |
ATNil |
NATObject.meta_assignField(ATObject receiver,
ATSymbol selector,
ATObject value)
meta_assignField is used to evaluate code of the form o.m := v. |
ATObject |
NATObject.meta_clone()
When cloning an object, it is first determined whether the parent has to be shared by the clone, or whether the parent must also be cloned. |
ATObject |
NATObject.meta_newInstance(ATTable initargs)
When new is invoked on an object's mirror, the object is first cloned by the mirror, after which the method named 'init' is invoked on it. |
ATObject |
NATObject.meta_extend(ATClosure code)
|
ATObject |
NATObject.meta_share(ATClosure code)
|
ATNil |
NATObject.meta_addMethod(ATMethod method)
When a method is added to an object, it is first checked whether the method does not already exist. |
ATMethod |
NATObject.meta_grabMethod(ATSymbol selector)
|
ATTable |
NATObject.meta_listMethods()
|
NATText |
NATObject.meta_print()
|
protected NATObject |
NATObject.createClone(FieldMap map,
java.util.Vector state,
java.util.LinkedList originalCustomFields,
MethodDictionary methodDict,
ATObject dynamicParent,
ATObject lexicalParent,
byte flags,
ATStripe[] stripes)
|
protected ATObject |
NATObject.createChild(ATClosure code,
boolean parentPointerType)
When creating children of objects, care must be taken that an extension of an isolate itself remains an isolate. |
ATBoolean |
NATObject.meta_isCloneOf(ATObject original)
|
ATBoolean |
NATObject.meta_isRelatedTo(ATObject object)
|
ATBoolean |
NATObject.meta_isStripedWith(ATStripe stripe)
Check whether one of the stripes of this object is a substripe of the given stripe. |
ATTable |
NATObject.meta_getStripes()
Return the stripes that were directly attached to this object. |
ATObject |
NATObject.meta_pass()
An isolate object does not return a proxy representation of itself during serialization, hence it is serialized itself. |
ATObject |
NATObject.meta_resolve()
An isolate object represents itself upon deserialization. |
private java.lang.Object |
NATObject.coerce(ATStripe requiredStripe,
java.lang.Class providedInterface)
ALL asXXX methods return a coercer object which returns a proxy of the correct interface that will 'down' subsequent Java base-level invocations to the AmbientTalk level. |
ATBoolean |
NATObject.base_asBoolean()
|
ATClosure |
NATObject.base_asClosure()
|
ATExpression |
NATObject.base_asExpression()
|
ATField |
NATObject.base_asField()
|
ATMessage |
NATObject.base_asMessage()
|
ATMethod |
NATObject.base_asMethod()
|
ATMirror |
NATObject.base_asMirror()
|
ATHandler |
NATObject.base_asHandler()
|
ATNumber |
NATObject.base_asNumber()
|
ATTable |
NATObject.base_asTable()
|
ATAsyncMessage |
NATObject.base_asAsyncMessage()
|
ATActorMirror |
NATObject.base_asActorMirror()
|
ATStripe |
NATObject.base_asStripe()
|
ATBegin |
NATObject.base_asBegin()
|
ATStatement |
NATObject.base_asStatement()
|
ATUnquoteSplice |
NATObject.base_asUnquoteSplice()
|
ATSymbol |
NATObject.base_asSymbol()
|
ATSplice |
NATObject.base_asSplice()
|
ATDefinition |
NATObject.base_asDefinition()
|
ATMessageCreation |
NATObject.base_asMessageCreation()
|
boolean |
NATObject.base_isMirror()
|
boolean |
NATObject.base_isBoolean()
|
boolean |
NATObject.base_isClosure()
|
boolean |
NATObject.base_isMethod()
|
boolean |
NATObject.base_isSplice()
|
boolean |
NATObject.base_isSymbol()
|
boolean |
NATObject.base_isTable()
|
boolean |
NATObject.base_isUnquoteSplice()
|
boolean |
NATObject.base_isStripe()
|
private ATMethod |
NATObject.getLocalMethod(ATSymbol selector)
|
private boolean |
NATObject.isLocallyStripedWith(ATStripe stripe)
Performs a stripe test for this object locally. |
static ATField[] |
NATObject.listTransitiveFields(ATObject obj)
Auxiliary method to access the fields of an object and all of its super-objects up to (but excluding) nil. |
static ATMethod[] |
NATObject.listTransitiveMethods(ATObject obj)
Auxiliary method to access the methods of an object and all of its super-objects up to (but excluding) nil. |
ATTable |
NATNumeric.meta_getStripes()
|
ATFraction |
NATNumeric.base_expt(ATNumeric pow)
NUM(n).expt(NUM(e)) => FRC(Math.pow(n,e)) |
ATBoolean |
NATNumeric.base__opltx_(ATNumeric other)
a < b iff (a <=> b) == -1 |
ATBoolean |
NATNumeric.base__opgtx_(ATNumeric other)
a > b iff (a <=> b) == +1 |
ATBoolean |
NATNumeric.base__opltx__opeql_(ATNumeric other)
a <= b iff (a <=> b) ! |
ATBoolean |
NATNumeric.base__opgtx__opeql_(ATNumeric other)
a >= b iff (a <=> b) ! |
ATBoolean |
NATNumeric.base__opeql_(ATNumeric other)
a = b iff (a <=> b) == 0 |
ATBoolean |
NATNumeric.base__opnot__opeql_(ATNumeric other)
a ! |
NATText |
NATNumber.meta_print()
|
ATTable |
NATNumber.meta_getStripes()
|
ATNil |
NATNumber.base_doTimes_(ATClosure code)
NBR(n).doTimes: { |i| code } => for i = 1 to n do code.eval(i) ; nil |
ATNil |
NATNumber.base_to_do_(ATNumber end,
ATClosure code)
NBR(start).to: NBR(stop) do: { |i| code } => for i = start to stop do code.eval(i) ; nil Also works if stop > start, in which case it becomes a downTo. |
ATNil |
NATNumber.base_to_step_do_(ATNumber end,
ATNumber inc,
ATClosure code)
NBR(start).to: NBR(stop) step: NBR(inc) do: { |i| code } => for i = start; i < stop; i++ do code.eval(i) ; nil Also works if stop > start, in which case it becomes a downTo. |
ATTable |
NATNumber.base__optms__optms_(ATNumber end)
NBR(start) ** NBR(stop) => [ start, ..., stop [ Example: 2 ** 5 => [ 2, 3, 4 ] 5 ** 2 => [ 5, 4, 3 ] |
ATTable |
NATNumber.base__optms__optms__optms_(ATNumber end)
NBR(start) *** NBR(stop) => [ start, ..., stop ] Example: 2 *** 5 => [ 2, 3, 4, 5 ] 5 *** 2 => [ 5, 4, 3, 2 ] |
ATFraction |
NATNumber.base__opque__opque_(ATNumber nbr)
NBR(start) ?? |
ATNumber |
NATNumber.base__oprem_(ATNumber n)
NBR(n) % NBR(r) => NBR(n % r) |
ATNumber |
NATNumber.base__opdiv__opmns_(ATNumber n)
NBR(n) /- NBR(d) => NBR(n / d) |
ATNumeric |
NATNumber.base__oppls_(ATNumeric other)
|
ATNumeric |
NATNumber.base_addNumber(ATNumber other)
|
ATNumeric |
NATNumber.base_addFraction(ATFraction other)
|
ATNumeric |
NATNumber.base__opmns_(ATNumeric other)
|
ATNumeric |
NATNumber.base_subtractNumber(ATNumber other)
|
ATNumeric |
NATNumber.base_subtractFraction(ATFraction other)
|
ATNumeric |
NATNumber.base__optms_(ATNumeric other)
|
ATNumeric |
NATNumber.base_timesNumber(ATNumber other)
|
ATNumeric |
NATNumber.base_timesFraction(ATFraction other)
|
ATNumeric |
NATNumber.base__opdiv_(ATNumeric other)
|
ATNumeric |
NATNumber.base_divideNumber(ATNumber other)
|
ATNumeric |
NATNumber.base_divideFraction(ATFraction other)
|
ATNumeric |
NATNumber.base__opltx__opeql__opgtx_(ATNumeric other)
|
ATNumeric |
NATNumber.base_gequalsNumber(ATNumber other)
|
ATNumeric |
NATNumber.base_gequalsFraction(ATFraction other)
|
ATObject |
NATNil.meta_send(ATAsyncMessage message)
Asynchronous messages ( o<-m( args )) sent in the context of an object o (i.e. |
ATObject |
NATNil.meta_receive(ATAsyncMessage message)
|
ATObject |
NATNil.meta_invoke(ATObject receiver,
ATSymbol atSelector,
ATTable arguments)
The default behaviour of 'delegate' for primitive non-object ambienttalk language values is to check whether the requested functionality is provided by a native Java method with the same selector, but prefixed with 'base_'. |
ATBoolean |
NATNil.meta_respondsTo(ATSymbol atSelector)
An ambienttalk language value can respond to a message if it implements a native Java method corresponding to the selector prefixed by 'base_'. |
ATObject |
NATNil.meta_doesNotUnderstand(ATSymbol selector)
By default, when a selection is not understood by a primitive object, an error is raised. |
ATObject |
NATNil.meta_select(ATObject receiver,
ATSymbol selector)
It is possible to select a method from any ambienttalk value provided that it offers the method in its provided interface. |
ATObject |
NATNil.meta_lookup(ATSymbol selector)
A lookup can only be issued at the base level by writing selector inside the scope of a particular object. |
ATNil |
NATNil.meta_defineField(ATSymbol name,
ATObject value)
|
ATNil |
NATNil.meta_assignVariable(ATSymbol name,
ATObject value)
Normally, a variable assignment cannot be performed on a native AmbientTalk object. |
ATNil |
NATNil.meta_assignField(ATObject receiver,
ATSymbol name,
ATObject value)
|
ATObject |
NATNil.meta_clone()
|
ATObject |
NATNil.meta_newInstance(ATTable initargs)
|
protected ATObject |
NATNil.createChild(ATClosure code,
boolean parentPointerType)
|
ATObject |
NATNil.meta_extend(ATClosure code)
|
ATObject |
NATNil.meta_share(ATClosure code)
|
ATNil |
NATNil.meta_addField(ATField field)
|
ATNil |
NATNil.meta_addMethod(ATMethod method)
|
ATField |
NATNil.meta_grabField(ATSymbol fieldName)
|
ATMethod |
NATNil.meta_grabMethod(ATSymbol methodName)
|
ATTable |
NATNil.meta_listFields()
|
ATTable |
NATNil.meta_listMethods()
|
ATObject |
NATNil.meta_eval(ATContext ctx)
All NATObjects which are not Abstract Grammar elements are self-evaluating. |
ATObject |
NATNil.meta_quote(ATContext ctx)
Quoting a native object returns itself, except for pure AG elements. |
NATText |
NATNil.meta_print()
|
ATObject |
NATNil.meta_getDynamicParent()
Only true extending objects have a dynamic pointer, others return nil |
ATObject |
NATNil.meta_getLexicalParent()
By default numbers, tables and so on do not have lexical parents, |
boolean |
NATNil.base_isClosure()
|
boolean |
NATNil.base_isSymbol()
|
boolean |
NATNil.base_isBoolean()
|
boolean |
NATNil.base_isTable()
|
boolean |
NATNil.base_isCallFrame()
|
boolean |
NATNil.base_isUnquoteSplice()
|
boolean |
NATNil.base_isVariableAssignment()
|
boolean |
NATNil.base_isSplice()
|
boolean |
NATNil.base_isMethod()
|
boolean |
NATNil.base_isMessageCreation()
|
boolean |
NATNil.base_isMirror()
|
boolean |
NATNil.base_isStripe()
|
ATClosure |
NATNil.base_asClosure()
|
ATSymbol |
NATNil.base_asSymbol()
|
ATTable |
NATNil.base_asTable()
|
ATBoolean |
NATNil.base_asBoolean()
|
ATNumber |
NATNil.base_asNumber()
|
ATMessage |
NATNil.base_asMessage()
|
ATField |
NATNil.base_asField()
|
ATMethod |
NATNil.base_asMethod()
|
ATMirror |
NATNil.base_asMirror()
|
ATHandler |
NATNil.base_asHandler()
|
ATStripe |
NATNil.base_asStripe()
|
ATFarReference |
NATNil.base_asFarReference()
|
ATAsyncMessage |
NATNil.base_asAsyncMessage()
|
ATActorMirror |
NATNil.base_asActorMirror()
|
ATStatement |
NATNil.base_asStatement()
|
ATDefinition |
NATNil.base_asDefinition()
|
ATExpression |
NATNil.base_asExpression()
|
ATBegin |
NATNil.base_asBegin()
|
ATMessageCreation |
NATNil.base_asMessageCreation()
|
ATUnquoteSplice |
NATNil.base_asUnquoteSplice()
|
ATAssignVariable |
NATNil.base_asVariableAssignment()
|
ATSplice |
NATNil.base_asSplice()
|
ATObject |
NATNil.base_new(ATObject[] initargs)
|
ATObject |
NATNil.base_init(ATObject[] initargs)
|
ATBoolean |
NATNil.meta_isCloneOf(ATObject original)
|
ATBoolean |
NATNil.meta_isRelatedTo(ATObject object)
|
ATBoolean |
NATNil.meta_isStripedWith(ATStripe stripe)
Native objects implement the stripe test non-recursively: only the stripes returned by meta_getStripes are tested against. |
ATTable |
NATNil.meta_getStripes()
By default, a native object (and also nil) has no stripes. |
ATObject |
NATNil.meta_pass()
This method allows objects to decide which object should be serialized in their stead when they are passed as argument in an asynchronous message send that crosses actor boundaries. |
ATObject |
NATNil.meta_resolve()
After deserialization, ensure that nil remains unique. |
ATObject |
NATNamespace.meta_doesNotUnderstand(ATSymbol selector)
For a namespace object, doesNotUnderstand triggers the querying of the local file system to load files corresponding to the missing selector. |
NATText |
NATNamespace.meta_print()
|
protected NATObject |
NATNamespace.createClone(FieldMap map,
java.util.Vector state,
java.util.LinkedList customFields,
MethodDictionary methodDict,
ATObject dynamicParent,
ATObject lexicalParent,
byte flags,
ATStripe[] stripes)
|
ATObject |
NATMethodInvocation.base_sendTo(ATObject receiver,
ATObject sender)
To evaluate a method invocation, invoke the method corresponding to the encapsulated selector to the given receiver with the encapsulated arguments. |
NATText |
NATMethodInvocation.meta_print()
|
ATObject |
NATMethod.base_apply(ATTable arguments,
ATContext ctx)
To apply a function, first bind its parameters to the evaluated arguments within a new call frame. |
ATObject |
NATMethod.base_applyInScope(ATTable arguments,
ATContext ctx)
Applies the method in the context given, without first inserting a call frame to bind parameters. |
NATText |
NATMethod.meta_print()
|
ATTable |
NATMethod.meta_getStripes()
|
ATSymbol |
NATMessage.base_getSelector()
|
ATTable |
NATMessage.base_getArguments()
|
ATNil |
NATMessage.base_setArguments(ATTable arguments)
|
ATBoolean |
NATHandler.base_canHandle(ATObject anException)
|
ATObject |
NATHandler.base_handle(ATObject anException)
|
ATTable |
NATHandler.meta_getStripes()
|
NATText |
NATFraction.meta_print()
|
ATTable |
NATFraction.meta_getStripes()
|
ATNumeric |
NATFraction.base__oppls_(ATNumeric other)
|
ATNumeric |
NATFraction.base_addNumber(ATNumber other)
|
ATNumeric |
NATFraction.base_addFraction(ATFraction other)
|
ATNumeric |
NATFraction.base__opmns_(ATNumeric other)
|
ATNumeric |
NATFraction.base_subtractNumber(ATNumber other)
|
ATNumeric |
NATFraction.base_subtractFraction(ATFraction other)
|
ATNumeric |
NATFraction.base__optms_(ATNumeric other)
|
ATNumeric |
NATFraction.base_timesNumber(ATNumber other)
|
ATNumeric |
NATFraction.base_timesFraction(ATFraction other)
|
ATNumeric |
NATFraction.base__opdiv_(ATNumeric other)
|
ATNumeric |
NATFraction.base_divideNumber(ATNumber other)
|
ATNumeric |
NATFraction.base_divideFraction(ATFraction other)
|
ATNumeric |
NATFraction.base__opltx__opeql__opgtx_(ATNumeric other)
|
ATNumeric |
NATFraction.base_gequalsNumber(ATNumber other)
|
ATNumeric |
NATFraction.base_gequalsFraction(ATFraction other)
|
ATObject |
NATField.base_readField()
|
ATNil |
NATField.base_writeField(ATObject newValue)
|
NATText |
NATField.meta_print()
|
ATObject |
NATField.meta_newInstance(ATTable initargs)
Fields can be re-initialized when installed in an object that is being cloned. |
ATTable |
NATField.meta_getStripes()
|
ATObject |
NATException.meta_newInstance(ATTable initargs)
|
ATBoolean |
NATException.meta_isRelatedTo(ATObject object)
|
ATTable |
NATException.meta_getStripes()
|
ATObject |
NATDelegation.base_sendTo(ATObject receiver,
ATObject sender)
To evaluate a delegating message send, invoke the method corresponding to the encapsulated selector with the encapsulated arguments. |
NATText |
NATDelegation.meta_print()
|
NATText |
NATContext.meta_print()
|
ATTable |
NATContext.meta_getStripes()
|
ATObject |
NATClosureMethod.base_apply(ATTable arguments,
ATContext ctx)
A closure method application acts exactly like a regular direct method application, except that the given lexical scope is disregarded and replaced by the lexical scope encapsulated by the closure method. |
ATObject |
NATClosureMethod.base_applyInScope(ATTable arguments,
ATContext ctx)
|
ATBegin |
NATClosureMethod.base_getBodyExpression()
|
ATSymbol |
NATClosureMethod.base_getName()
|
ATTable |
NATClosureMethod.base_getParameters()
|
NATText |
NATClosureMethod.meta_print()
|
ATTable |
NATClosureMethod.meta_getStripes()
|
ATObject |
NATClosure.base_apply(ATTable arguments)
To apply a closure, apply its underlying method with the context of the closure, rather than the runtime context of the invoker. |
ATObject |
NATClosure.base_applyInScope(ATTable args,
ATObject scope)
To apply a closure in a given scope, apply its underlying method with a new context constructed from the scope object. |
ATObject |
NATClosure.base_whileTrue_(ATClosure body)
receiver is a zero-argument block closure returning a boolean |
ATObject |
NATClosure.base_escape()
The following is a pseudo-code implementation of escape. |
ATContext |
NATClosure.base_getContext()
|
NATText |
NATClosure.meta_print()
|
ATTable |
NATClosure.meta_getStripes()
|
ATObject |
NATCallframe.meta_invoke(ATObject receiver,
ATSymbol selector,
ATTable arguments)
Normally, call frames are not used in receiverful method invocation expressions. |
ATBoolean |
NATCallframe.meta_respondsTo(ATSymbol selector)
respondsTo is a mechanism to ask any object o whether it would respond to the selection o.selector. |
ATObject |
NATCallframe.meta_doesNotUnderstand(ATSymbol selector)
By default, when a selection is not understood by an AmbientTalk object or call frame, an error is raised. |
ATObject |
NATCallframe.meta_select(ATObject receiver,
ATSymbol selector)
This method is used in the evaluation of the code o.m. |
ATObject |
NATCallframe.meta_lookup(ATSymbol selector)
This method is used to evaluate code of the form selector within the scope of this call frame. |
ATNil |
NATCallframe.meta_defineField(ATSymbol name,
ATObject value)
A field can be added to either a call frame or an object. |
ATNil |
NATCallframe.meta_assignVariable(ATSymbol name,
ATObject value)
A field can be assigned in either a call frame or an object. |
ATNil |
NATCallframe.meta_assignField(ATObject receiver,
ATSymbol name,
ATObject value)
Assigning a call frame's field externally is possible and is treated as if it were a variable assignment. |
ATObject |
NATCallframe.meta_clone()
|
ATObject |
NATCallframe.meta_newInstance(ATTable initargs)
|
ATObject |
NATCallframe.meta_extend(ATClosure code)
|
ATObject |
NATCallframe.meta_share(ATClosure code)
|
ATNil |
NATCallframe.meta_addField(ATField field)
|
ATNil |
NATCallframe.meta_addMethod(ATMethod method)
|
ATField |
NATCallframe.meta_grabField(ATSymbol selector)
|
ATMethod |
NATCallframe.meta_grabMethod(ATSymbol selector)
|
ATTable |
NATCallframe.meta_listFields()
|
ATTable |
NATCallframe.meta_listMethods()
|
NATText |
NATCallframe.meta_print()
|
ATObject |
NATCallframe.meta_getDynamicParent()
|
ATObject |
NATCallframe.meta_getLexicalParent()
|
ATBoolean |
NATCallframe.meta_isCloneOf(ATObject original)
|
ATBoolean |
NATCallframe.meta_isRelatedTo(ATObject object)
|
protected boolean |
NATCallframe.hasLocalField(ATSymbol selector)
|
protected boolean |
NATCallframe.hasLocalCustomField(ATSymbol selector)
|
protected ATObject |
NATCallframe.getLocalField(ATSymbol selector)
Reads out the value of either a native or a custom field. |
protected ATField |
NATCallframe.getLocalCustomField(ATSymbol selector)
|
protected boolean |
NATCallframe.setLocalField(ATSymbol selector,
ATObject value)
Set a given field if it exists. |
ATObject |
NATByRef.meta_pass()
By reference objects serialize to a proxy representation. |
ATObject |
NATByRef.meta_resolve()
By reference objects cannot be deserialized, by definition. |
ATObject |
NATByCopy.meta_pass()
When a by-copy object is asked which object to serialize in its stead, the by-copy object returns itself, so that it itself will be serialized. |
ATObject |
NATByCopy.meta_resolve()
When a by-copy object is asked which object it represents when it is deserialized, the object returns itself. |
ATTable |
NATBoolean.meta_getStripes()
|
NATText |
NATBoolean.NATTrue.meta_print()
|
ATObject |
NATBoolean.NATTrue.base_ifTrue_(ATClosure clo)
|
ATObject |
NATBoolean.NATTrue.base_ifFalse_(ATClosure clo)
|
ATObject |
NATBoolean.NATTrue.base_ifTrue_ifFalse_(ATClosure consequent,
ATClosure alternative)
|
ATBoolean |
NATBoolean.NATTrue.base__opamp_(ATBoolean other)
|
ATBoolean |
NATBoolean.NATTrue.base__oppls_(ATBoolean other)
|
ATBoolean |
NATBoolean.NATTrue.base_and_(ATClosure other)
|
ATBoolean |
NATBoolean.NATTrue.base_or_(ATClosure other)
|
NATText |
NATBoolean.NATFalse.meta_print()
|
ATObject |
NATBoolean.NATFalse.base_ifTrue_(ATClosure clo)
|
ATObject |
NATBoolean.NATFalse.base_ifFalse_(ATClosure clo)
|
ATObject |
NATBoolean.NATFalse.base_ifTrue_ifFalse_(ATClosure consequent,
ATClosure alternative)
|
ATBoolean |
NATBoolean.NATFalse.base__opamp_(ATBoolean other)
|
ATBoolean |
NATBoolean.NATFalse.base__oppls_(ATBoolean other)
|
ATBoolean |
NATBoolean.NATFalse.base_and_(ATClosure other)
|
ATBoolean |
NATBoolean.NATFalse.base_or_(ATClosure other)
|
void |
LexicalRootTest.testBasicImport()
Tests whether a basic import of fields and methods from a 'trait' object into a 'host' object works properly. |
void |
LexicalRootTest.testConflictingImport()
Tests whether conflicts are successfully detected. |
void |
LexicalRootTest.testTransitiveImport()
Tests whether traits can be transitively imported into objects. |
void |
LexicalRootTest.testImportAndAliasing()
Tests whether aliasing works properly. |
void |
LexicalRootTest.testImportAndExclusion()
Tests whether exclusion works properly. |
void |
LexicalRootTest.testImportAndAliasingAndExclusion()
Tests whether aliasing and exclusion work properly together. |
void |
CustomFieldsTest.setUp()
|
Constructors in edu.vub.at.objects.natives with parameters of type InterpreterException | |
NATException(InterpreterException wrappedException)
|
Constructors in edu.vub.at.objects.natives that throw InterpreterException | |
NATObject(FieldMap map,
java.util.Vector state,
java.util.LinkedList originalCustomFields,
MethodDictionary methodDict,
ATObject dynamicParent,
ATObject lexicalParent,
byte flags,
ATStripe[] stripes)
Constructs a new ambienttalk object as a clone of an existing object. |
|
NATNamespace(FieldMap map,
java.util.Vector state,
java.util.LinkedList customFields,
MethodDictionary methodDict,
ATObject dynamicParent,
ATObject lexicalParent,
byte flags,
ATStripe[] stripes,
java.io.File path,
java.lang.String name)
Private constructor used only for cloning |
|
NATMethodInvocation(ATSymbol sel,
ATTable arg)
|
|
NATMethod(ATSymbol name,
ATTable parameters,
ATBegin body)
|
|
NATMessage(ATSymbol sel,
ATTable arg,
ATStripe stripe)
|
|
NATDelegation(ATObject delegator,
ATSymbol sel,
ATTable arg)
|
|
NATClosureMethod(ATObject scope,
ATMethod method)
|
|
NATClosure(ATMethod method,
ATObject implementor,
ATObject receiver)
This constructor creates a closure with a bound dynamic receiver, and it is called after the succesful lookup of a receiverful message. |
Uses of InterpreterException in edu.vub.at.objects.natives.grammar |
Methods in edu.vub.at.objects.natives.grammar that throw InterpreterException | |
private void |
TestParameterBinding.ensureBound(ATSymbol var,
ATObject value)
|
private void |
TestParameterBinding.ensureBoundToTable(ATSymbol var,
ATObject[] expected)
|
void |
TestParameterBinding.setUp()
|
void |
TestParameterBinding.testZeroArity()
Tests parameter binding for 0-arity methods |
void |
TestParameterBinding.testMandatory()
Tests parameter binding for methods with mandatory arguments only. |
void |
TestParameterBinding.testTooFewMandatory()
Tests for too few mandatory arguments |
void |
TestParameterBinding.testTooManyMandatory()
Tests for too many mandatory arguments |
void |
TestParameterBinding.testMandatoryAndOptional()
Tests parameter binding for methods with mandatory arguments and optional arguments. |
void |
TestParameterBinding.testMandatoryAndDefaultOptional()
Tests parameter binding for methods with mandatory arguments and an optional argument that is not given. |
void |
TestParameterBinding.testMandatoryAndTooManyOptional()
Tests whether parameter binding fails if given too many optional arguments. |
void |
TestParameterBinding.testMandOptAndRest()
Tests application with both mandatory, optional and rest arguments |
void |
TestParameterBinding.testMandOptAndNoRest()
Tests application with mandatory and optional arguments. |
void |
TestParameterBinding.testMandNoOptAndNoRest()
Tests application with mandatory arguments. |
void |
TestParameterBinding.testOnlyOptionalArguments()
Tests application with only optional arguments, all of which are given at call time. |
void |
TestParameterBinding.testOnlyOptArgsWithOneFilledIn()
Tests application with only optional arguments, only one of which is given at call time. |
void |
TestParameterBinding.testOnlyOptArgsWithNoneFilledIn()
Tests application with only optional arguments, none of which are given at call time. |
void |
TestParameterBinding.testOneMandatoryAndNoRestArgs()
Tests application with one mandatory argument and zero rest arguments. |
void |
TestParameterBinding.testOneMandatoryAndTwoRestArgs()
Tests application with one mandatory argument and two rest arguments. |
void |
TestParameterBinding.testZeroRestArgs()
Tests only rest arguments, with none given. |
void |
TestParameterBinding.testOneRestArg()
Tests only rest arguments, with one given. |
void |
TestParameterBinding.testIllegalMandatoryAfterOptional()
Tests whether mandatory arguments specified after optional arguments results in a proper XIllegalParameter exception. |
void |
TestParameterBinding.testIllegalMandatoryAfterRest()
Tests whether mandatory arguments specified after the rest parameter results in a proper XIllegalParameter exception. |
void |
TestParameterBinding.testIllegalOptionalAfterRest()
Tests whether optional arguments specified after the rest parameter results in a proper XIllegalParameter exception. |
void |
TestParameterBinding.testMultiAssignmentWithOptionalAndRestParameters()
Tests whether optional and rest parameters also work using multiple-definition |
void |
TestEval.testDefField()
|
void |
TestEval.testDefFunction()
|
void |
TestEval.testDefTable()
|
void |
TestEval.testDefExternalMethod()
|
void |
TestEval.testDefExternalField()
|
void |
TestEval.testAssignVariable()
|
void |
TestEval.testAssignTable()
|
void |
TestEval.testAssignField()
|
void |
TestEval.testMultiAssignment()
|
void |
TestEval.testSymbolReference()
|
void |
TestEval.testTabulation()
|
void |
TestEval.testClosureLiteral()
|
void |
TestEval.testSelfReference()
|
void |
TestEval.testSuperReference()
|
void |
TestEval.testSelection()
|
void |
TestEval.testFirstClassMessage()
|
void |
TestEval.testMethodApplication()
|
void |
TestEval.testClosureApplication()
|
void |
TestEval.testMethodInvocation()
|
void |
TestEval.testDelegation()
|
void |
TestEval.testQuotation()
|
void |
TestEval.testArgumentSplicing()
|
void |
TestEval.testVariableArguments()
|
void |
TestEval.testVariableKeywordArguments()
|
void |
TestEval.testVariableMultiDefinition()
|
ATTable |
NATAbstractGrammar.meta_getStripes()
|
ATObject |
AGUnquoteSplice.meta_eval(ATContext ctx)
An unquotation cannot be evaluated, but rather gives rise to an XIllegalUnquote exception. |
ATObject |
AGUnquoteSplice.meta_quote(ATContext ctx)
Quoting a spliced unquotation means evaluating its contained expression, and returning its value as the result of the quote. |
NATText |
AGUnquoteSplice.meta_print()
|
ATObject |
AGUnquote.meta_eval(ATContext ctx)
An unquotation cannot be evaluated, but rather gives rise to an XIllegalUnquote exception. |
ATObject |
AGUnquote.meta_quote(ATContext ctx)
Quoting an unquotation means evaluating its contained expression, and returning its value as the result of the quote. |
NATText |
AGUnquote.meta_print()
|
ATObject |
AGTabulation.meta_eval(ATContext ctx)
To evaluate a tabulation, evaluate the tabulation expression to a table, evaluate the index expression into a valid index, and then access the table at the given index slot. |
ATObject |
AGTabulation.meta_quote(ATContext ctx)
Quoting a tabulation results in a new quoted tabulation AGTBL(tbl,idx).quote(ctx) = AGTBL(tbl.quote(ctx),idx.quote(ctx)) |
NATText |
AGTabulation.meta_print()
|
ATTable |
AGSymbol.base__opmns__opgtx_(ATObject obj)
|
ATObject |
AGSymbol.meta_eval(ATContext ctx)
To evaluate a symbol reference, look up the symbol in the lexical scope. |
ATObject |
AGSymbol.meta_quote(ATContext ctx)
Quoting a symbol results in the same symbol. |
NATText |
AGSymbol.meta_print()
|
ATObject |
AGSymbol.meta_resolve()
After deserialization, ensure that the symbol remains unique. |
ATObject |
AGSplice.meta_eval(ATContext ctx)
A spliced element cannot be evaluated, but rather gives rise to an XIllegalSplice exception. |
ATObject |
AGSplice.meta_quote(ATContext ctx)
Quoting a splice means quoting its contained expression, and returning a new splice. |
NATText |
AGSplice.meta_print()
|
ATObject |
AGSelf.meta_eval(ATContext ctx)
To evaluate a self reference, simply select the current self from the current evaluation context. |
ATObject |
AGSelection.meta_eval(ATContext ctx)
To evaluate a selection, evaluate the receiver expression to an object and select the slot with the given name from that object. |
ATObject |
AGSelection.meta_quote(ATContext ctx)
Quoting a selection results in a new quoted selection. |
NATText |
AGSelection.meta_print()
|
ATObject |
AGQuote.meta_eval(ATContext ctx)
To evaluate a quotation, start quoting its contained statement. |
ATObject |
AGQuote.meta_quote(ATContext ctx)
Quoting a quotation results in a bare quotation, where quotations and unquotations are left unexpanded. |
NATText |
AGQuote.meta_print()
|
ATObject |
AGMultiDefinition.meta_eval(ATContext ctx)
To evaluate a multiple definition, evaluate the right hand side to a table and bind the parameters on the left hand side to the 'arguments' of the right hand side, exactly as if they were bound during a function call. |
ATObject |
AGMultiDefinition.meta_quote(ATContext ctx)
AGMULTIDEF(par,val).quote(ctx) = AGMULTIDEF(par.quote(ctx), val.quote(ctx)) |
NATText |
AGMultiDefinition.meta_print()
|
ATObject |
AGMultiAssignment.meta_eval(ATContext ctx)
To evaluate a multiple assignment, evaluate the right hand side to a table and assign the parameters on the left hand side to the 'arguments' of the right hand side, almost as if they were bound during a function call (the parameters are assigned instead of defined). |
ATObject |
AGMultiAssignment.meta_quote(ATContext ctx)
AGMULTIASS(par,val).quote(ctx) = AGMULTIASS(par.quote(ctx), val.quote(ctx)) |
NATText |
AGMultiAssignment.meta_print()
|
ATObject |
AGMethodInvocationCreation.meta_eval(ATContext ctx)
To evaluate a first-class synchronous message creation AG element, transform the selector and evaluated arguments into a first-class MethodInvocation. |
ATObject |
AGMessageSend.meta_eval(ATContext ctx)
To evaluate a message send, evaluate the receiver expression into an object. |
ATObject |
AGMessageSend.meta_quote(ATContext ctx)
Quoting a message send returns a new quoted message send. |
NATText |
AGMessageSend.meta_print()
|
ATObject |
AGMessageCreation.meta_quote(ATContext ctx)
Quoting a message creation element returns a new quoted message creation element. |
NATText |
AGMessageCreation.meta_print()
|
ATTable |
AGExpression.meta_getStripes()
|
ATObject |
AGDelegationCreation.meta_eval(ATContext ctx)
To evaluate a first-class delegation message creation AG element, transform the selector and evaluated arguments into a first-class NATDelegation object. |
ATObject |
AGDefTable.meta_eval(ATContext ctx)
Defining a table requires evaluating its index expression to a size s, then allocating a new table of size s and finally initializing it by evaluating its initializer body s times. |
ATObject |
AGDefTable.meta_quote(ATContext ctx)
Quoting a table definition results in a new quoted table definition. |
NATText |
AGDefTable.meta_print()
|
ATObject |
AGDefStripe.meta_eval(ATContext ctx)
Defines a new stripe in the current scope. |
ATObject |
AGDefStripe.meta_quote(ATContext ctx)
Quoting a stripe definition results in a new quoted stripe definition. |
NATText |
AGDefStripe.meta_print()
|
ATObject |
AGDefFunction.meta_eval(ATContext ctx)
Defines a new function (method or closure) in the current scope. |
ATObject |
AGDefFunction.meta_quote(ATContext ctx)
Quoting a function definition results in a new quoted function definition. |
NATText |
AGDefFunction.meta_print()
|
ATObject |
AGDefField.meta_eval(ATContext ctx)
Defines a new field in the current scope. |
ATObject |
AGDefField.meta_quote(ATContext ctx)
Quoting a field definition results in a new quoted field definition. |
NATText |
AGDefField.meta_print()
|
ATObject |
AGDefExternalMethod.meta_eval(ATContext ctx)
Evaluates the receiver symbol to an object to which a new 'closure method' will be added. |
ATObject |
AGDefExternalMethod.meta_quote(ATContext ctx)
Quoting an external method definition results in a new quoted external method definition. |
NATText |
AGDefExternalMethod.meta_print()
|
ATObject |
AGDefExternalField.meta_eval(ATContext ctx)
Defines a new field in the object denoted by the receiver symbol. |
ATObject |
AGDefExternalField.meta_quote(ATContext ctx)
Quoting an external field definition results in a new quoted external field definition. |
NATText |
AGDefExternalField.meta_print()
|
ATObject |
AGClosureLiteral.meta_eval(ATContext ctx)
To evaluate a closure literal, construct a closure pairing the literal's arguments and body with the current evaluation context. |
ATObject |
AGClosureLiteral.meta_quote(ATContext ctx)
Quoting a closure literal results in a new quoted closure literal. |
NATText |
AGClosureLiteral.meta_print()
|
ATObject |
AGBegin.meta_eval(ATContext ctx)
AGBEGIN encapsulates a sequence of statements and evaluates each of these statements in turn. |
ATObject |
AGBegin.meta_quote(ATContext ctx)
AGBEGIN(statements*).quote(ctx) = AGBEGIN((statements*).quote(ctx)) |
NATText |
AGBegin.meta_print()
|
ATObject |
AGAsyncMessageCreation.meta_eval(ATContext ctx)
To evaluate an async message creation element, simply return a new native asynchronous message. |
ATObject |
AGAssignVariable.meta_eval(ATContext ctx)
To evaluate a variable assignment, evaluate the right hand side and ask the current object to assign that value to the field corresponding to the left hand side. |
ATObject |
AGAssignVariable.meta_quote(ATContext ctx)
AGASSVAR(nam,val).quote(ctx) = AGASSVAR(nam.quote(ctx), val.quote(ctx)) |
NATText |
AGAssignVariable.meta_print()
|
ATObject |
AGAssignTable.meta_eval(ATContext ctx)
To evaluate a table assignment, evaluate its table expression to a valid ATTable. |
ATObject |
AGAssignTable.meta_quote(ATContext ctx)
Quoting a table assignment results in a new quoted table assignment. |
NATText |
AGAssignTable.meta_print()
|
ATObject |
AGAssignField.meta_eval(ATContext ctx)
To evaluate a field assignment, evaluate the receiver expression, evaluate the right hand side and ask the receiver object to assign the RHS value to the field corresponding to the given field name. |
ATObject |
AGAssignField.meta_quote(ATContext ctx)
AGASSFIELD(rcv,nam,val).quote(ctx) = AGASSFIELD(rcv.quote(ctx), nam.quote(ctx), val.quote(ctx)) |
NATText |
AGAssignField.meta_print()
|
ATObject |
AGApplication.meta_eval(ATContext ctx)
To evaluate a function application, evaluate the receiver expression to a function, then evaluate the arguments to the function application eagerly and apply the function. |
ATObject |
AGApplication.meta_quote(ATContext ctx)
Quoting an application results in a new quoted application. |
NATText |
AGApplication.meta_print()
|
Constructors in edu.vub.at.objects.natives.grammar that throw InterpreterException | |
AGMultiDefinition(ATTable par,
ATExpression val)
|
|
AGMultiAssignment(ATTable par,
ATExpression val)
|
Uses of InterpreterException in edu.vub.at.objects.symbiosis |
Subclasses of InterpreterException in edu.vub.at.objects.symbiosis | |
class |
XJavaException
An XJavaException AmbientTalk native exception wraps a Java exception. |
Methods in edu.vub.at.objects.symbiosis that throw InterpreterException | |
void |
SymbiosisTest.testJLobbyPackageLoading()
Tests whether jlobby.java results in a new JavaPackage. |
void |
SymbiosisTest.testJLobbyExplicitClassLoading()
Tests whether lowercase classes can be loaded via the class method of a JavaPackage. |
void |
SymbiosisTest.testJLobbyNonexistentClassLoading()
Tests whether access to a nonexistent class gives rise to a selector not found exception. |
void |
SymbiosisTest.testJLobbyExplicitPackageLoading()
Tests whether the uppercase package 'foo.Bar' can be loaded via the package method of a JavaPackage. |
void |
SymbiosisTest.testBugfixOverloadedConstructor()
BUGFIX TEST: jlobby.java.lang.StringBuffer.new(10) failed to discriminate between constructors StringBuffer(String) and StringBuffer(int), reason was that anything native was convertible to NATText and also to String. |
void |
SymbiosisTest.testInterfacesAndStripes()
Tests whether Java interface types are correctly treated as AT/2 stripes. |
void |
SymbiosisTest.testStripedJavaObject()
Test whether JavaObject wrappers are correctly striped with all of the interfaces of the wrapped instance's class. |
static ATObject |
Symbiosis.symbioticInvocation(ATObject wrapper,
java.lang.Object symbiont,
java.lang.Class ofClass,
java.lang.String selector,
ATObject[] atArgs)
|
static ATObject |
Symbiosis.symbioticInvocation(ATObject wrapper,
java.lang.Object symbiont,
java.lang.String selector,
JavaMethod jMethod,
ATObject[] atArgs)
The Java method invocation algorithm is as follows: case of # of methods matching selector: 0 => XSelectorNotFound 1 => invoke the method OR XIllegalArgument, XArityMismatch, XReflectionFailure * => (case of # of methods with matching arity OR taking varargs: 0 => XSymbiosisFailure 1 => invoke the method OR XIllegalArgument, XReflectionFailure * => (case of # of methods matching 'default type' of the actual arguments: 0 => XSymbiosisFailure 1 => invoke OR XReflectionFailure * => XSymbiosisFailure)) A Java method takes a variable number of AT arguments <=> it has one formal parameter of type ATObject[] |
static ATObject |
Symbiosis.symbioticInstanceCreation(java.lang.Class ofClass,
ATObject[] atArgs)
Creates a new instance of a Java class. |
static ATObject |
Symbiosis.readField(java.lang.Object fromObject,
java.lang.Class ofClass,
java.lang.String fieldName)
Read a field from the given Java object reflectively. |
static ATObject |
Symbiosis.readField(java.lang.Object fromObject,
java.lang.reflect.Field f)
Read a field from the given Java object reflectively. |
static void |
Symbiosis.writeField(java.lang.Object toObject,
java.lang.Class ofClass,
java.lang.String fieldName,
ATObject value)
Write a field in the given Java object reflectively. |
static void |
Symbiosis.writeField(java.lang.Object toObject,
java.lang.reflect.Field f,
ATObject value)
Write a field in the given Java object reflectively. |
static ATObject |
Symbiosis.javaToAmbientTalk(java.lang.Object jObj)
Convert a Java object into an AmbientTalk object. |
static java.lang.Object |
Symbiosis.ambientTalkToJava(ATObject atObj,
java.lang.Class targetType)
Convert an AmbientTalk object into an equivalent Java object. |
private static ATObject |
Symbiosis.invokeUniqueSymbioticMethod(java.lang.Object symbiont,
java.lang.reflect.Method javaMethod,
java.lang.Object[] jArgs)
|
private static ATObject |
Symbiosis.invokeUniqueSymbioticConstructor(java.lang.reflect.Constructor ctor,
java.lang.Object[] jArgs)
|
private static java.lang.Object[] |
Symbiosis.atArgsToJavaArgs(ATObject[] args,
java.lang.Class[] types)
|
ATObject |
JavaPackage.meta_doesNotUnderstand(ATSymbol selector)
For a JavaPackage object, doesNotUnderstand triggers the querying of the Java classpath to load classes corresponding to the missing selector. |
NATText |
JavaPackage.meta_print()
|
protected NATObject |
JavaPackage.createClone(FieldMap map,
java.util.Vector state,
java.util.LinkedList customFields,
MethodDictionary methodDict,
ATObject dynamicParent,
ATObject lexicalParent,
byte flags,
ATStripe[] stripes)
|
ATObject |
JavaPackage.base_class(ATSymbol selector)
Allows the AT programmer to explicitly load a class. |
ATObject |
JavaPackage.base_package(ATSymbol selector)
Allows the AT programmer to explicitly load a package. |
ATObject |
JavaObject.meta_invoke(ATObject receiver,
ATSymbol atSelector,
ATTable arguments)
When a method is invoked upon a symbiotic Java object, an underlying Java method with the same name as the AmbientTalk selector is invoked. |
ATBoolean |
JavaObject.meta_respondsTo(ATSymbol atSelector)
A symbiotic Java object responds to all of the public non-static selectors of its Java class plus all of the per-instance selectors added to its AmbientTalk symbiont. |
ATObject |
JavaObject.meta_select(ATObject receiver,
ATSymbol selector)
When selecting a field from a symbiotic Java object, if the Java symbiont object's class has a non-static field with a matching selector, it is automatically read; if it has a corresponding method, the method is returned in a closure. |
ATObject |
JavaObject.meta_lookup(ATSymbol selector)
A variable lookup is resolved by first checking whether the Java object has a field with a matching name. |
ATNil |
JavaObject.meta_defineField(ATSymbol name,
ATObject value)
Fields can be defined within a symbiotic Java object. |
ATNil |
JavaObject.meta_assignVariable(ATSymbol name,
ATObject value)
Variables can be assigned within a symbiotic Java object if that object's class has a mutable field with a matching name. |
ATNil |
JavaObject.meta_assignField(ATObject receiver,
ATSymbol name,
ATObject value)
Fields can be assigned within a symbiotic Java object if that object's class has a mutable field with a matching name. |
ATObject |
JavaObject.meta_clone()
Cloning a symbiotic object is not always possible as Java has no uniform cloning semantics. |
ATObject |
JavaObject.meta_newInstance(ATTable initargs)
Invoking new on a JavaObject will exhibit the same behaviour as if new was invoked on the parent class. |
ATNil |
JavaObject.meta_addMethod(ATMethod method)
Methods can be added to a symbiotic Java object provided they do not already exist in the Java object's class. |
ATField |
JavaObject.meta_grabField(ATSymbol fieldName)
Fields can be grabbed from a symbiotic Java object. |
ATMethod |
JavaObject.meta_grabMethod(ATSymbol methodName)
Methods can be grabbed from a symbiotic Java object. |
ATTable |
JavaObject.meta_listFields()
Querying a symbiotic Java object for its fields results in a table containing both the 'native' Java fields and the fields of its AT symbiont |
ATTable |
JavaObject.meta_listMethods()
Querying a symbiotic Java object for its methods results in a table containing both all 'native' Java instance methods and the methods of its AT symbiont |
ATBoolean |
JavaObject.meta_isCloneOf(ATObject original)
|
NATText |
JavaObject.meta_print()
|
ATObject |
JavaObject.meta_pass()
Passing a Java Object wrapper to another actor has the following effect: - if the wrapped Java object is serializable, the symbiotic AmbientTalk object is treated as by copy (i.e. as an isolate) |
ATObject |
JavaObject.meta_resolve()
If the wrapped object was serializable, we may be asked to resolve ourselves. |
ATObject |
JavaMethod.base_apply(ATTable arguments,
ATContext ctx)
|
ATObject |
JavaMethod.base_applyInScope(ATTable arguments,
ATContext ctx)
|
ATBegin |
JavaMethod.base_getBodyExpression()
|
ATSymbol |
JavaMethod.base_getName()
|
ATTable |
JavaMethod.base_getParameters()
|
NATText |
JavaMethod.meta_print()
|
ATTable |
JavaMethod.meta_getStripes()
|
ATObject |
JavaField.base_readField()
|
ATNil |
JavaField.base_writeField(ATObject newValue)
|
NATText |
JavaField.meta_print()
|
ATObject |
JavaField.meta_newInstance(ATTable initargs)
Fields can be re-initialized when installed in an object that is being cloned. |
ATTable |
JavaField.meta_getStripes()
|
ATContext |
JavaClosure.base_getContext()
Overridden to allow for lazy instantiation of the context. |
NATText |
JavaClosure.meta_print()
|
ATClosure |
JavaClosure.base_cast(ATObject[] types)
For each Method in the wrapped JavaMethod's choices_, check whether it is compatible with the given types. |
ATObject |
JavaClass.meta_invoke(ATObject receiver,
ATSymbol atSelector,
ATTable arguments)
When a method is invoked upon a symbiotic Java class object, the underlying static Java method with the same name as the AmbientTalk selector is invoked. |
ATBoolean |
JavaClass.meta_respondsTo(ATSymbol atSelector)
A symbiotic Java class object responds to all of the public static selectors of its Java class plus all of the per-instance selectors added to its AmbientTalk symbiont. |
ATObject |
JavaClass.meta_select(ATObject receiver,
ATSymbol selector)
When selecting a field from a symbiotic Java class object, if the object's class has a static field with a matching selector, it is automatically read; if it has methods corresponding to the selector, they are returned in a JavaMethod wrapper, otherwise, the fields of its AT symbiont are checked. |
ATObject |
JavaClass.meta_lookup(ATSymbol selector)
A variable lookup is resolved by first checking whether the Java object has an appropriate static field with a matching name. |
ATNil |
JavaClass.meta_defineField(ATSymbol name,
ATObject value)
Fields can be defined within a symbiotic Java class object. |
ATNil |
JavaClass.meta_assignVariable(ATSymbol name,
ATObject value)
Variables can be assigned within a symbiotic Java class object if that class object has a mutable static field with a matching name. |
ATNil |
JavaClass.meta_assignField(ATObject receiver,
ATSymbol name,
ATObject value)
Fields can be assigned within a symbiotic Java class object if that class has a mutable field with a matching name. |
ATObject |
JavaClass.meta_clone()
Symbiotic Java class objects are singletons. |
ATObject |
JavaClass.meta_newInstance(ATTable initargs)
aJavaClass.new(@args) == invoke a Java constructor AmbientTalk objects can add a custom new method to the class in order to intercept instance creation. |
ATNil |
JavaClass.meta_addMethod(ATMethod method)
Methods can be added to a symbiotic Java class object provided they do not already exist in the Java class. |
ATField |
JavaClass.meta_grabField(ATSymbol fieldName)
Fields can be grabbed from a symbiotic Java class object. |
ATMethod |
JavaClass.meta_grabMethod(ATSymbol methodName)
Methods can be grabbed from a symbiotic Java class object. |
ATTable |
JavaClass.meta_listFields()
Querying a symbiotic Java class object for its fields results in a table containing both 'native' static Java fields and the fields of its AT symbiont |
ATTable |
JavaClass.meta_listMethods()
Querying a symbiotic Java class object for its methods results in a table containing both 'native' static Java methods and the methods of its AT symbiont |
ATBoolean |
JavaClass.meta_isCloneOf(ATObject original)
|
NATText |
JavaClass.meta_print()
|
ATObject |
JavaClass.meta_resolve()
A Java Class object remains unique within an actor. |
ATTable |
JavaClass.base_getParentStripes()
If this class represents an interface type, parentStripes are wrappers for all interfaces extended by this Java interface type |
ATSymbol |
JavaClass.base_getStripeName()
|
ATBoolean |
JavaClass.base_isSubstripeOf(ATStripe other)
A Java interface type used as a stripe can only be a substripe of another Java interface type used as a stripe, and only if this type is assignable to the other type. |
ATClosure |
ATJavaClosure.base_cast(ATObject[] types)
Using this method, AmbientTalk symbiotic code is able to perform manual overloaded method disambiguation. |
Constructors in edu.vub.at.objects.symbiosis that throw InterpreterException | |
JavaPackage(FieldMap map,
java.util.Vector state,
java.util.LinkedList customFields,
MethodDictionary methodDict,
ATObject dynamicParent,
ATObject lexicalParent,
byte flags,
ATStripe[] stripes,
java.lang.String path)
Private constructor used only for cloning |
Uses of InterpreterException in edu.vub.at.parser |
Methods in edu.vub.at.parser that throw InterpreterException | |
static NATAbstractGrammar |
ATParserTest.parseProgram(java.lang.String parserInput)
|
ATAbstractGrammar |
NATParser.base_parse(ATText source)
|
static ATAbstractGrammar |
NATParser.parse(java.lang.String filename,
java.io.InputStream source)
|
static ATAbstractGrammar |
NATParser.parse(java.lang.String filename,
java.lang.String source)
|
NATText |
NATParser.meta_print()
|
ATObject |
NATParser.meta_resolve()
After deserialization, ensure that the parser remains unique. |
Uses of InterpreterException in edu.vub.at.tutorial |
Methods in edu.vub.at.tutorial that throw InterpreterException | |
void |
TutorialTest.testBasicProgramming()
|
|
|||||||||||
PREV NEXT | FRAMES NO FRAMES |