edu.vub.at.objects.natives.grammar
Class AGAssignField
java.lang.Object
edu.vub.at.objects.natives.NATNil
edu.vub.at.objects.natives.NATByCopy
edu.vub.at.objects.natives.grammar.NATAbstractGrammar
edu.vub.at.objects.natives.grammar.AGAssignField
- All Implemented Interfaces:
- ATAbstractGrammar, ATAssignField, ATAssignment, ATConversions, ATExpression, ATNil, ATObject, ATStatement, java.io.Serializable
- public final class AGAssignField
- extends NATAbstractGrammar
- implements ATAssignField
- Author:
- tvc
The native implementation of a field assignment AG element.
Examples:
o.x := 5
1.+ := m()
- See Also:
- Serialized Form
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_asExpression, base_asFarReference, base_asField, base_asHandler, base_asMessage, base_asMessageCreation, 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_isMessageCreation, 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_asMessageCreation, 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_isMessageCreation, base_isMethod, base_isMirror, base_isSplice, base_isStripe, base_isSymbol, base_isTable, base_isUnquoteSplice, base_isVariableAssignment, isAmbientTalkObject, isJavaObjectUnderSymbiosis, isNativeBoolean, isNativeField, isNativeText |
rcvExp_
private final ATExpression rcvExp_
fieldName_
private final ATSymbol fieldName_
valueExp_
private final ATExpression valueExp_
AGAssignField
public AGAssignField(ATExpression rcv,
ATSymbol nam,
ATExpression val)
base_getReceiverExpression
public ATExpression base_getReceiverExpression()
- Specified by:
base_getReceiverExpression
in interface ATAssignField
base_getFieldName
public ATSymbol base_getFieldName()
- Specified by:
base_getFieldName
in interface ATAssignField
base_getValueExpression
public ATExpression base_getValueExpression()
- Specified by:
base_getValueExpression
in interface ATAssignField
meta_eval
public ATObject meta_eval(ATContext ctx)
throws InterpreterException
- 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.
AGASSFIELD(rcv,nam,val).eval(ctx) = rcv.eval(ctx).assignField(nam, val.eval(ctx))
- Specified by:
meta_eval
in interface ATObject
- Overrides:
meta_eval
in class NATNil
- Returns:
- the new value of the field
- Throws:
InterpreterException
meta_quote
public ATObject meta_quote(ATContext ctx)
throws InterpreterException
- AGASSFIELD(rcv,nam,val).quote(ctx) = AGASSFIELD(rcv.quote(ctx), nam.quote(ctx), val.quote(ctx))
- Specified by:
meta_quote
in interface ATObject
- Overrides:
meta_quote
in class NATNil
- Throws:
InterpreterException
meta_print
public NATText meta_print()
throws InterpreterException
- Description copied from interface:
ATObject
- Prints out the object in a human-readable way.
- Specified by:
meta_print
in interface ATObject
- Overrides:
meta_print
in class NATNil
- Throws:
InterpreterException