32 #ifndef _QORE_SCOPEDOBJECTCALLNODE_H
34 #define _QORE_SCOPEDOBJECTCALLNODE_H
36 #include "qore/intern/FunctionCallNode.h"
37 #include "qore/intern/QoreParseListNode.h"
39 class ScopedObjectCallNode :
public AbstractFunctionCallNode {
44 DLLLOCAL
virtual const QoreTypeInfo* getTypeInfo()
const {
45 return oc ? oc->getTypeInfo() : objectTypeInfo;
53 DLLLOCAL ScopedObjectCallNode(
const QoreProgramLocation* loc, NamedScope* n, QoreParseListNode* a) : AbstractFunctionCallNode(loc,
NT_SCOPE_REF, a), name(n), oc(nullptr) {
56 DLLLOCAL ScopedObjectCallNode(
const QoreProgramLocation* loc,
const QoreClass* qc, QoreParseListNode* a) : AbstractFunctionCallNode(loc,
NT_SCOPE_REF, a), name(nullptr), oc(qc) {
59 DLLLOCAL
virtual ~ScopedObjectCallNode() {
63 DLLLOCAL
void parseInitImpl(
QoreValue& val, LocalVar* oflag,
int pflag,
int& lvids,
const QoreTypeInfo*& typeInfo);
71 str.
sprintf(
"new operator expression (class '%s')", oc ? oc->
getName() : name ? name->ostr :
"<null>",
this);
79 getAsString(*rv, foff, xsink);
89 DLLLOCAL
virtual const char* getTypeName()
const {
90 return "new object call";
94 DLLLOCAL
virtual const char* getName()
const {