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

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.AGSymbol
                      extended byedu.vub.at.objects.natives.grammar.AGSelf
All Implemented Interfaces:
ATAbstractGrammar, ATConversions, ATExpression, ATNil, ATObject, ATStatement, ATSymbol, java.io.Serializable

public final class AGSelf
extends AGSymbol

Author:
tvc The abstract grammar element denoting the symbol 'self'
See Also:
Serialized Form

Field Summary
static AGSelf _INSTANCE_
           
private static java.lang.String SELF_NAM
           
 
Fields inherited from class edu.vub.at.objects.natives.grammar.AGSymbol
 
Constructor Summary
private AGSelf()
           
 
Method Summary
 ATObject meta_eval(ATContext ctx)
          To evaluate a self reference, simply select the current self from the current evaluation context.
 ATObject meta_quote(ATContext ctx)
          Quoting a self reference results in the same self reference.
 
Methods inherited from class edu.vub.at.objects.natives.grammar.AGSymbol
alloc, base__opmns__opgtx_, base_asSymbol, base_getText, base_isSymbol, equals, hashCode, jAlloc, meta_print, meta_resolve, toString
 
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
 
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_asMessageCreation, base_asMethod, base_asMirror, base_asNumber, base_asSplice, base_asStatement, base_asStripe, 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_isTable, base_isUnquoteSplice, base_isVariableAssignment, base_new, createChild, 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, writeReplace
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, 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_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_asTable, base_asUnquoteSplice, base_asVariableAssignment, base_isBoolean, base_isCallFrame, base_isClosure, base_isFarReference, base_isMessageCreation, base_isMethod, base_isMirror, base_isSplice, base_isStripe, base_isTable, base_isUnquoteSplice, base_isVariableAssignment, isAmbientTalkObject, isJavaObjectUnderSymbiosis, isNativeBoolean, isNativeField, isNativeText
 

Field Detail

SELF_NAM

private static final java.lang.String SELF_NAM
See Also:
Constant Field Values

_INSTANCE_

public static final AGSelf _INSTANCE_
Constructor Detail

AGSelf

private AGSelf()
Method Detail

meta_eval

public ATObject meta_eval(ATContext ctx)
                   throws InterpreterException
To evaluate a self reference, simply select the current self from the current evaluation context. AGSelf().eval(ctx) = ctx.self

Specified by:
meta_eval in interface ATObject
Overrides:
meta_eval in class AGSymbol
Returns:
the value bound to this symbol in the lexical environment
Throws:
InterpreterException

meta_quote

public ATObject meta_quote(ATContext ctx)
Quoting a self reference results in the same self reference.

Specified by:
meta_quote in interface ATObject
Overrides:
meta_quote in class AGSymbol