32 #ifndef _QORE_OBJECTMETHODREFERENCE_H 34 #define _QORE_OBJECTMETHODREFERENCE_H 38 class AbstractParseObjectMethodReferenceNode :
public ParseNode {
47 DLLLOCAL AbstractParseObjectMethodReferenceNode(
const QoreProgramLocation* loc) : ParseNode(loc,
NT_OBJMETHREF) {
50 DLLLOCAL
virtual ~AbstractParseObjectMethodReferenceNode() {
54 str.
sprintf(
"object method reference (%p)",
this);
62 getAsString(*rv, foff, xsink);
67 DLLLOCAL
virtual const char* getTypeName()
const {
68 return "object method reference";
72 class ParseObjectMethodReferenceNode :
public AbstractParseObjectMethodReferenceNode {
80 DLLLOCAL
virtual ~ParseObjectMethodReferenceNode();
82 DLLLOCAL
virtual const QoreTypeInfo* getTypeInfo()
const {
83 return callReferenceTypeInfo;
94 DLLLOCAL ParseObjectMethodReferenceNode(
const QoreProgramLocation* loc,
QoreValue n_exp,
char* n_method);
95 DLLLOCAL
virtual void parseInitImpl(
QoreValue& val, LocalVar* oflag,
int pflag,
int& lvids,
const QoreTypeInfo*& typeInfo);
98 class ParseSelfMethodReferenceNode :
public AbstractParseObjectMethodReferenceNode {
103 DLLLOCAL ~ParseSelfMethodReferenceNode() {
106 DLLLOCAL
virtual void parseInitImpl(
QoreValue& val, LocalVar* oflag,
int pflag,
int& lvids,
const QoreTypeInfo*& typeInfo);
108 DLLLOCAL
virtual const QoreTypeInfo* getTypeInfo()
const {
109 return callReferenceTypeInfo;
117 DLLLOCAL ParseSelfMethodReferenceNode(
const QoreProgramLocation* loc,
char* n_method) : AbstractParseObjectMethodReferenceNode(loc), method(n_method), meth(0) {
121 DLLLOCAL ParseSelfMethodReferenceNode(
const QoreProgramLocation* loc,
const QoreMethod* m) : AbstractParseObjectMethodReferenceNode(loc), meth(m) {
125 class ParseScopedSelfMethodReferenceNode :
public AbstractParseObjectMethodReferenceNode {
130 DLLLOCAL
virtual ~ParseScopedSelfMethodReferenceNode();
136 DLLLOCAL
virtual void parseInitImpl(
QoreValue& val, LocalVar* oflag,
int pflag,
int& lvids,
const QoreTypeInfo*& typeInfo);
137 DLLLOCAL
virtual const QoreTypeInfo* getTypeInfo()
const {
138 return callReferenceTypeInfo;
142 DLLLOCAL ParseScopedSelfMethodReferenceNode(
const QoreProgramLocation* loc, NamedScope *n_nscope);
DLLEXPORT int sprintf(const char *fmt,...)
this will concatentate a formatted string to the existing string according to the format string and t...
Qore's string type supported by the QoreEncoding class.
Definition: QoreString.h:81
defines a Qore-language class
Definition: QoreClass.h:239
const qore_type_t NT_OBJMETHREF
type value for AbstractParseObjectMethodReferenceNode
Definition: node_types.h:67
The main value class in Qore, designed to be passed by value.
Definition: QoreValue.h:262
container for holding Qore-language exception information and also for registering a "thread_exit" ca...
Definition: ExceptionSink.h:46
provides a mutually-exclusive thread lock
Definition: QoreThreadLock.h:47
a method in a QoreClass
Definition: QoreClass.h:125