26 #ifndef _QORE_QOREPROGRAM_H
28 #define _QORE_QOREPROGRAM_H
30 #include <qore/AbstractPrivateData.h>
35 #define QP_WARN_NONE 0
36 #define QP_WARN_WARNING_MASK_UNCHANGED (1 << 0)
37 #define QP_WARN_DUPLICATE_LOCAL_VARS (1 << 1)
38 #define QP_WARN_UNKNOWN_WARNING (1 << 2)
39 #define QP_WARN_UNDECLARED_VAR (1 << 3)
40 #define QP_WARN_DUPLICATE_GLOBAL_VARS (1 << 4)
41 #define QP_WARN_UNREACHABLE_CODE (1 << 5)
42 #define QP_WARN_NONEXISTENT_METHOD_CALL (1 << 6)
43 #define QP_WARN_INVALID_OPERATION (1 << 7)
44 #define QP_WARN_CALL_WITH_TYPE_ERRORS (1 << 8)
45 #define QP_WARN_RETURN_VALUE_IGNORED (1 << 9)
46 #define QP_WARN_DEPRECATED (1 << 10)
47 #define QP_WARN_EXCESS_ARGS (1 << 11)
48 #define QP_WARN_DUPLICATE_HASH_KEY (1 << 12)
49 #define QP_WARN_UNREFERENCED_VARIABLE (1 << 13)
50 #define QP_WARN_DUPLICATE_BLOCK_VARS (1 << 14)
51 #define QP_WARN_MODULE_ONLY (1 << 15)
52 #define QP_WARN_ALL -1
54 #define QP_WARN_MODULES (QP_WARN_UNREACHABLE_CODE|QP_WARN_NONEXISTENT_METHOD_CALL|QP_WARN_INVALID_OPERATION|QP_WARN_CALL_WITH_TYPE_ERRORS|QP_WARN_RETURN_VALUE_IGNORED|QP_WARN_DUPLICATE_HASH_KEY|QP_WARN_DUPLICATE_BLOCK_VARS)
56 #define QP_WARN_DEFAULT (QP_WARN_UNKNOWN_WARNING|QP_WARN_MODULES|QP_WARN_DEPRECATED)
59 DLLEXPORT
extern const char** qore_warnings;
62 DLLEXPORT
extern unsigned qore_num_warnings;
65 DLLEXPORT
int get_warning_code(
const char* str);
75 class FunctionCallNode;
76 class AbstractStatement;
77 class UnresolvedProgramCallReferenceNode;
80 class UserFunctionVariant;
82 class QoreParseTypeInfo;
84 class AbstractQoreZoneInfo;
85 class qore_program_private;
96 friend class qore_program_private_base;
97 friend class qore_program_private;
100 qore_program_private* priv;
106 DLLLOCAL QoreProgram& operator=(
const QoreProgram&);
176 DLLEXPORT
void parseAndRun(FILE *fp,
const char* name);
188 DLLEXPORT
void parseAndRun(
const char* str,
const char* name);
225 DLLEXPORT
void parseAndRunClass(FILE *fp,
const char* name,
const char* classname);
238 DLLEXPORT
void parseAndRunClass(
const char* str,
const char* name,
const char* classname);
297 DLLEXPORT
void parse(
const char* str,
const char* lstr,
ExceptionSink* xsink,
ExceptionSink* warn_sink,
int warn_mask,
const char* source,
int offset);
533 DLLEXPORT
const AbstractQoreZoneInfo *
currentTZ()
const;
536 DLLEXPORT
void setTZ(
const AbstractQoreZoneInfo *n_TZ);
567 DLLEXPORT
void parseDefine(
const char* str,
const char* val);
569 DLLLOCAL
QoreProgram(QoreProgram* pgm, int64 po,
bool ec =
false,
const char* ecn = 0);
571 DLLLOCAL LocalVar *createLocalVar(
const char* name,
const QoreTypeInfo *typeInfo);
577 DLLLOCAL
void depRef();
579 DLLLOCAL
void addFile(
char* f);
581 DLLLOCAL
void parseSetIncludePath(
const char* path);
582 DLLLOCAL
const char* parseGetIncludePath()
const;
590 DLLLOCAL
const LVList* getTopLevelLVList()
const;
598 DLLLOCAL
bool parseExceptionRaised()
const;
635 #endif // _QORE_QOREPROGRAM_H