edu.vub.at.objects.natives.grammar
Class AGMethodInvocationCreation

java.lang.Object
  extended byedu.vub.at.objects.natives.NATNil
      extended byedu.vub.at.objects.natives.NATByCopy
          extended byedu.vub.at.objects.natives.grammar.NATAbstractGrammar
              extended byedu.vub.at.objects.natives.grammar.AGExpression
                  extended byedu.vub.at.objects.natives.grammar.AGMessageCreation
                      extended byedu.vub.at.objects.natives.grammar.AGMethodInvocationCreation
All Implemented Interfaces:
ATAbstractGrammar, ATConversions, ATExpression, ATMessageCreation, ATNil, ATObject, ATStatement, java.io.Serializable

public final class AGMethodInvocationCreation
extends AGMessageCreation

Author:
tvcutsem The native implementation of a first-class message creation AG element.
See Also:
Serialized Form

Field Summary
 
Fields inherited from class edu.vub.at.objects.natives.grammar.AGMessageCreation
arguments_, selector_
 
Fields inherited from class edu.vub.at.objects.natives.NATNil
_INSTANCE_
 
Constructor Summary
AGMethodInvocationCreation(ATSymbol sel, ATTable args)
           
 
Method Summary
protected  java.lang.String getMessageToken()
          Subclasses must implement this method such that the correct messaging token can be displayed when printing an AGMessageCreation element.
 ATObject 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.
protected  ATObject newQuoted(ATSymbol quotedSel, ATTable quotedArgs)
          Subclasses must implement this method in order to return a new instance of themselves parameterized with their quoted arguments.
 
Methods inherited from class edu.vub.at.objects.natives.grammar.AGMessageCreation
base_asMessageCreation, base_getArguments, base_getSelector, base_isMessageCreation, meta_print, meta_quote
 
Methods inherited from class edu.vub.at.objects.natives.grammar.AGExpression
base_asExpression, meta_getStripes
 
Methods inherited from class edu.vub.at.objects.natives.NATByCopy
meta_pass, meta_resolve
 
Methods inherited from class edu.vub.at.objects.natives.NATNil
asAmbientTalkObject, asJavaClassUnderSymbiosis, asJavaObjectUnderSymbiosis, asNativeBoolean, asNativeException, asNativeFarReference, asNativeFraction, asNativeNumber, asNativeNumeric, asNativeTable, asNativeText, base__opeql__opeql_, base_asActorMirror, base_asAsyncMessage, base_asBegin, base_asBoolean, base_asClosure, base_asDefinition, base_asFarReference, base_asField, base_asHandler, base_asMessage, base_asMethod, base_asMirror, base_asNumber, base_asSplice, base_asStatement, base_asStripe, base_asSymbol, base_asTable, base_asUnquoteSplice, base_asVariableAssignment, base_init, base_isBoolean, base_isCallFrame, base_isClosure, base_isFarReference, base_isMethod, base_isMirror, base_isSplice, base_isStripe, base_isSymbol, base_isTable, base_isUnquoteSplice, base_isVariableAssignment, base_new, createChild, equals, isAmbientTalkObject, isJavaObjectUnderSymbiosis, isNativeBoolean, isNativeField, isNativeText, meta_addField, meta_addMethod, meta_assignField, meta_assignVariable, meta_clone, meta_defineField, meta_doesNotUnderstand, meta_extend, meta_getDynamicParent, meta_getLexicalParent, meta_grabField, meta_grabMethod, meta_invoke, meta_isCloneOf, meta_isRelatedTo, meta_isStripedWith, meta_listFields, meta_listMethods, meta_lookup, meta_newInstance, meta_receive, meta_respondsTo, meta_select, meta_send, meta_share, readResolve, toString, writeReplace
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface edu.vub.at.objects.ATObject
base__opeql__opeql_, base_init, base_new, meta_addField, meta_addMethod, meta_assignField, meta_assignVariable, meta_clone, meta_defineField, meta_doesNotUnderstand, meta_extend, meta_getDynamicParent, meta_getLexicalParent, meta_getStripes, meta_grabField, meta_grabMethod, meta_invoke, meta_isCloneOf, meta_isRelatedTo, meta_isStripedWith, meta_listFields, meta_listMethods, meta_lookup, meta_newInstance, meta_pass, meta_receive, meta_resolve, meta_respondsTo, meta_select, meta_send, meta_share
 
Methods inherited from interface edu.vub.at.objects.coercion.ATConversions
asAmbientTalkObject, asJavaClassUnderSymbiosis, asJavaObjectUnderSymbiosis, asNativeBoolean, asNativeException, asNativeFarReference, asNativeFraction, asNativeNumber, asNativeNumeric, asNativeTable, asNativeText, base_asActorMirror, base_asAsyncMessage, base_asBegin, base_asBoolean, base_asClosure, base_asDefinition, base_asExpression, base_asFarReference, base_asField, base_asHandler, base_asMessage, base_asMethod, base_asMirror, base_asNumber, base_asSplice, base_asStatement, base_asStripe, base_asSymbol, base_asTable, base_asUnquoteSplice, base_asVariableAssignment, base_isBoolean, base_isCallFrame, base_isClosure, base_isFarReference, base_isMethod, base_isMirror, base_isSplice, base_isStripe, base_isSymbol, base_isTable, base_isUnquoteSplice, base_isVariableAssignment, isAmbientTalkObject, isJavaObjectUnderSymbiosis, isNativeBoolean, isNativeField, isNativeText
 

Constructor Detail

AGMethodInvocationCreation

public AGMethodInvocationCreation(ATSymbol sel,
                                  ATTable args)
Method Detail

meta_eval

public ATObject meta_eval(ATContext ctx)
                   throws InterpreterException
To evaluate a first-class synchronous message creation AG element, transform the selector and evaluated arguments into a first-class MethodInvocation. It is important to note that the arguments are all eagerly evaluated. AGMSG(sel,arg).eval(ctx) = NATMSG(sel, map eval(ctx) over arg )

Specified by:
meta_eval in interface ATObject
Overrides:
meta_eval in class NATNil
Returns:
a first-class method invocation
Throws:
InterpreterException

newQuoted

protected ATObject newQuoted(ATSymbol quotedSel,
                             ATTable quotedArgs)
Description copied from class: AGMessageCreation
Subclasses must implement this method in order to return a new instance of themselves parameterized with their quoted arguments.

Specified by:
newQuoted in class AGMessageCreation

getMessageToken

protected java.lang.String getMessageToken()
Description copied from class: AGMessageCreation
Subclasses must implement this method such that the correct messaging token can be displayed when printing an AGMessageCreation element.

Specified by:
getMessageToken in class AGMessageCreation