147 nothing
define(
string def,
auto val);
533 nothing
importFunction(
string func,
string new_name, *softbool inject);
1022 *hash<ExceptionInfo>
parse(
string code,
string label, *softint warning_mask, *
string source, *softint offset, softbool format_label =
True);
1080 *hash<ExceptionInfo>
parseCommit(
int warning_mask);
1131 *hash<ExceptionInfo>
parsePending(
string code,
string label, *softint warning_mask, *
string source, *softint offset, softbool format_label =
True);
const PO_BROKEN_LOOP_STATEMENT
allows for old pre-Qore 0.8.13 handling of break and continue
Definition: QC_Program.dox.h:1523
const PO_NEW_STYLE
Set a more C++ or Java type programming style; prohibits usage of the "$" character and also assumes ...
Definition: QC_Program.dox.h:1568
nothing importGlobalVariable(string varname, bool readonly=False)
Imports a global variable into the program object's space.
const PO_NO_USER_CLASSES
Prohibits user classes from being imported into the new Program object.
Definition: QC_Program.dox.h:1811
const WARN_UNREACHABLE_CODE
Indicates that code cannot be reached (for example; code in the same local block after an uncondition...
Definition: QC_Program.dox.h:1981
*string getScriptPath()
Returns the current script directory and filename if known, otherwise returns NOTHING.
const DOM_EXTERNAL_INFO
provides access to external information (ex: hostname, pid, process uid, etc)
Definition: QC_Program.dox.h:1353
const DomainStringMap
Maps from functional domain strings to functional domain bitfield integer codes.
Definition: QC_Program.dox.h:1451
const PO_LOCK_WARNINGS
Disallows changes to the warning mask.
Definition: QC_Program.dox.h:1562
const WARN_DUPLICATE_BLOCK_VARS
Enables a warning when a program declares a local variable more than once in the same block; note tha...
Definition: QC_Program.dox.h:1925
importSystemClasses()
imports system classes into a Program container at runtime; will throw an exception if the Program wa...
TimeZone getTimeZone()
Returns the default local time zone for the object.
*string source
the source object or file name tag (used when multiple source objects are defined from the same sourc...
Definition: QC_Program.dox.h:20
const PO_NO_THREAD_CLASSES
Disallows access to any thread classes.
Definition: QC_Program.dox.h:1770
auto callFunction(string name,...)
Calls a function in the program object and returns the return value.
const PO_NO_SUBROUTINE_DEFS
Disallows subroutine (function) definitions.
Definition: QC_Program.dox.h:1734
const PO_NO_REFLECTION
Disallows access to reflection.
Definition: QC_Program.dox.h:1729
const DOM_THREAD_CONTROL
provides the ability to check or manipulate threads (including starting new threads)
Definition: QC_Program.dox.h:1421
const PO_FREE_OPTIONS
mask of options that have no effect on code access or code safety but just affect programming style
Definition: QC_Program.dox.h:1547
nothing importHashDecl(string name, *string new_name)
Imports a typed hash declaration into the program object's space.
nothing setParseOptions(softint opt=PO_DEFAULT)
Sets parse options in the parse option mask for the Program object.
const ParseOptionCmdStringMap
Maps from parse option strings to parse option integer codes. Names are in form used in script or on ...
Definition: QC_Program.dox.h:1873
const PO_NO_EXTERNAL_ACCESS
Prohibits any external access.
Definition: QC_Program.dox.h:1617
const DOM_INJECTION
provides functionality related to code / dependency injection
Definition: QC_Program.dox.h:1375
const DOM_THREAD_INFO
provides access to information regarding threading (tid, active threads, etc)
Definition: QC_Program.dox.h:1427
Program objects allow Qore programs to support subprograms with the option to restrict capabilities,...
Definition: QC_Program.dox.h:56
const WARN_NONEXISTENT_METHOD_CALL
Indicates that the embedded code is calling an unknown method in a class.
Definition: QC_Program.dox.h:1965
*hash< auto > getAllDefines()
Retrieves all parse defines in the current Program.
const PO_NO_NEW
Disallows use of the new operator.
Definition: QC_Program.dox.h:1719
const ParseOptionCmdCodeMap
Maps from parse option code values (as string keys) to parse option names. Names are in form used in ...
Definition: QC_Program.dox.h:1867
const PO_REQUIRE_PROTOTYPES
Requires all function and method parameters and return types to have type declarations.
Definition: QC_Program.dox.h:1830
const PO_NO_SYSTEM_API
Prohibits any code from being inherited into the Program object, including the system API.
Definition: QC_Program.dox.h:1744
nothing replaceParseOptions(softint opt)
Replaces the parse options for the Program object.
const PO_ASSUME_LOCAL
Assume local variable scope when variables are first referenced if no my or our is present.
Definition: QC_Program.dox.h:1493
ProgramControl getProgram()
Get ProgramControl.
const DOM_DEBUGGER
provides debugging functionality
Definition: QC_Program.dox.h:1343
int line
the starting source line number
Definition: QC_Program.dox.h:16
const DOM_GUI
provides GUI functionality
Definition: QC_Program.dox.h:1371
const WARN_RETURN_VALUE_IGNORED
Enables a warning when a function or method call is made with no side effects and the return value is...
Definition: QC_Program.dox.h:1969
code getCallReference(string identifier)
resolve the string as a call reference in the given Program
const DOM_THREAD_CLASS
provides thread control functionality
Definition: QC_Program.dox.h:1415
const True
logical True
Definition: qc_qore.dox.h:98
const PO_NO_USER_API
Prohibits any user code from being inherited into the Program object.
Definition: QC_Program.dox.h:1806
const PO_NO_GUI
Disallows access to functionality that draws graphics to the display.
Definition: QC_Program.dox.h:1642
nothing setTimeZone(TimeZone zone)
Sets the default local time zone for the object.
const DOM_EXTERNAL_PROCESS
provides external process control functionality (can affect) start) or stop external processes)
Definition: QC_Program.dox.h:1359
loadApplyToPrivateUserModule(string name, int warning_mask=WARN_MODULES)
Loads a Qore user module privately into the given Program container at run-time; after this call the ...
const DOM_MODULE
provides access to external modules
Definition: QC_Program.dox.h:1387
const PO_NO_DATABASE
Disallows access to database functionality.
Definition: QC_Program.dox.h:1603
int getProgramId()
Get program id.
const DOM_EMBEDDED_LOGIC
provides dynamic parsing functionality
Definition: QC_Program.dox.h:1347
const DOM_REFLECTION
provides reflection functionality
Definition: QC_Program.dox.h:1403
const PO_ALLOW_RETURNS
Allows the use of the deprecated returns keyword.
Definition: QC_Program.dox.h:1476
nothing importClass(string cls, *string new_name, *softbool inject, int module_visibility=CSP_UNCHANGED)
Imports a class into the program object's space; any calls to the imported class's code will run with...
int offset
the offset line in the source (for when multiple source objects are defined from the same source)
Definition: QC_Program.dox.h:18
nothing setTimeZoneUTCOffset(softint seconds_east)
Sets the default time zone for the Program object based on the number of seconds east of UTC; for zon...
const PO_NO_CHILD_PO_RESTRICTIONS
Allows child program objects to have fewer parse restrictions (i.e. more capabilies) than the parent ...
Definition: QC_Program.dox.h:1588
const PO_ALLOW_WEAK_REFERENCES
Allows the use of the weak assignment operator (:=).
Definition: QC_Program.dox.h:1487
*hash< ExceptionInfo > parsePending(string code, string label, *softint warning_mask, *string source, *softint offset, softbool format_label=True)
Parses the text passed to pending lists in the Program object; does not resolve all references or com...
const PO_BROKEN_OPERATORS
allows for old pre-Qore 0.8.12 broken runtime parsing of multi-character operators with spaces
Definition: QC_Program.dox.h:1529
copy()
Throws an exception to prevent objects of this class from being copied.
const False
logical False
Definition: qc_qore.dox.h:96
const WARN_INVALID_OPERATION
Indicates that the embedded code performs some operation that is guaranteed to produce no result (for...
Definition: QC_Program.dox.h:1945
auto getGlobalVariable(string varname, *reference< bool > rexists)
Returns a the value of the global variable identified by the first string argument.
const WARN_CALL_WITH_TYPE_ERRORS
Enables warnings when the parser determines that the argument types of a function or method call are ...
Definition: QC_Program.dox.h:1903
const PO_REQUIRE_OUR
Requires global variables to be declared with our before use.
Definition: QC_Program.dox.h:1822
auto callFunctionArgs(string name, *softlist< auto > vargs)
Calls a function in the program object giving the arguments to the function as a list and returns the...
const WARN_ALL
Enables all warnings.
Definition: QC_Program.dox.h:1893
const PO_NO_UNCONTROLLED_APIS
disallow access to "uncontrolled APIs" like external language bindings or direct generic system call ...
Definition: QC_Program.dox.h:1796
The ProgramControl class provides safe information about a Qore program.
Definition: QC_ProgramControl.dox.h:45
const PO_BROKEN_LIST_PARSING
allows for old pre-Qore 0.8.12 broken list rewriting in the parser
Definition: QC_Program.dox.h:1511
const PO_NO_INHERIT_USER_CLASSES
Prohibits user classes from being imported into the new Program object.
Definition: QC_Program.dox.h:1672
const WARN_DEPRECATED
Enables a warning when deprecated code is used.
Definition: QC_Program.dox.h:1921
const PO_NO_INHERIT_GLOBAL_VARS
Precludes global variables from being inherited into the new Program object.
Definition: QC_Program.dox.h:1644
bool existsFunction(string name)
Checks if a user function exists in the program object.
nothing issueModuleCmd(string module, string cmd)
issues a module command for the given module; the module is loaded into the current Program object if...
const PO_NO_CLASS_DEFS
Disallows class definitions.
Definition: QC_Program.dox.h:1593
bool setThreadInit(*code init)
Sets a call reference or closure to run every time a new thread is started.
list< int > getThreadList()
returns a list of thread IDs active in this Program
const PO_POSITIVE_OPTIONS
mask of all parse options allowing for more freedom (instead of less)
Definition: QC_Program.dox.h:1817
nothing disableParseOptions(softint opt)
Removes the given parse options to the current parse option mask.
const PO_REQUIRE_TYPES
Requires all function and method parameters, return types, variables, and object members to have type...
Definition: QC_Program.dox.h:1837
nothing lockOptions()
Locks parse options so that they cannot be changed.
const WARN_DUPLICATE_HASH_KEY
Enables a warning when an immediate hash is declared and at least one of the keys is repeated.
Definition: QC_Program.dox.h:1933
const PO_NO_INHERIT_SYSTEM_CLASSES
Prohibits system classes from being imported into the new Program object.
Definition: QC_Program.dox.h:1650
const PO_NO_INHERIT_SYSTEM_HASHDECLS
Prohibits system hashdecls from being imported into the new Program object.
Definition: QC_Program.dox.h:1666
nothing importFunction(string func)
Imports a function into the program object's space; any calls to the imported function will run with ...
The TimeZone class provides access to time zone functionality.
Definition: QC_TimeZone.dox.h:11
const PO_ALLOW_BARE_REFS
Prohibits the use of the '$' character in variable names, method calls, and object member references.
Definition: QC_Program.dox.h:1457
const PO_NO_GLOBAL_VARS
Disallows the use of global variables.
Definition: QC_Program.dox.h:1637
const PO_NO_THREADS
Prohibits access to all threading information.
Definition: QC_Program.dox.h:1765
nothing setGlobalVarValue(string name, auto value)
set the value of a global variable
*string getScriptName()
Returns the current script name as a string or NOTHING if not set.
bool isDefined(string def)
Returns True if the given parse define is defined in the current Program (does not have to have a val...
softlist< string > getUserFunctionList()
Returns a list of strings of all user functions defined in the program object.
const PO_NO_LOCALE_CONTROL
Disallows access to functionality that can change locale parameters.
Definition: QC_Program.dox.h:1695
const PO_NO_FILESYSTEM
Disallows access to the filesystem.
Definition: QC_Program.dox.h:1632
*hash< ExceptionInfo > loadUserModuleWithProgramWarn(string name, Qore::Program pgm, int warning_mask=WARN_MODULES)
Loads a Qore user module into the Program object at run-time using the given Program object as the co...
const WARN_NONE
Represents no warning.
Definition: QC_Program.dox.h:1959
const CSP_SETPUB
Imports the object with public visibility.
Definition: QC_Program.dox.h:1323
*hash< ExceptionInfo > loadApplyToPrivateUserModuleWarn(string name, int warning_mask=WARN_MODULES)
Loads a Qore user module privately into the given Program container at run-time; after this call the ...
loadUserModuleWithProgram(string name, Qore::Program pgm, int warning_mask=WARN_MODULES)
Loads a Qore user module into the Program object at run-time using the given Program object as the co...
const WARN_BROKEN_LOGIC_PRECEDENCE
This warns before expressions affected by %broken-logic-precedence.
Definition: QC_Program.dox.h:1899
bool builtin
if True then the code is builtin and there is no user source location
Definition: QC_Program.dox.h:10
const PO_NO_TRANSIENT
Disallows the transient.
Definition: QC_Program.dox.h:1790
const PO_NO_API
Prohibits any code from being inherited into the Program object, including the system API.
Definition: QC_Program.dox.h:1583
const WARN_DUPLICATE_LOCAL_VARS
Enables a warning when a local variable with the same name is declared in a subblock (ie another loca...
Definition: QC_Program.dox.h:1937
const PO_NO_NAMESPACE_DEFS
Disallows new namespace definitions.
Definition: QC_Program.dox.h:1705
const PO_NO_INHERIT_USER_FUNC_VARIANTS
Precludes public user function variants from being inherited into the new Program object.
Definition: QC_Program.dox.h:1680
nothing setScriptPath(*string path)
Sets (or clears) the script path (directory and filename) for the object.
const PO_STRICT_BOOLEAN_EVAL
Sets strict mathematical boolean evaluation runtime mode (the qore default prior to v0....
Definition: QC_Program.dox.h:1849
const PO_NO_SYSTEM_FUNC_VARIANTS
Prohibits builtin/system function variants from being imported into the new Program object.
Definition: QC_Program.dox.h:1754
const PO_DEFAULT
This option is the empty option, meaning no options are set.
Definition: QC_Program.dox.h:1543
const DOM_FILESYSTEM
provides access to the filesystem
Definition: QC_Program.dox.h:1365
const PO_BROKEN_LOGIC_PRECEDENCE
allows for old pre-Qore 0.8.12 precedence of logical and bitwise operators
Definition: QC_Program.dox.h:1517
const PO_NO_PROCESS_CONTROL
Disallows access to functions that would affect the current process (exit(), exec(),...
Definition: QC_Program.dox.h:1724
nothing define(string def, auto val)
Sets a parse define for the current Program.
nothing setTimeZoneRegion(string region)
Sets the default local time zone for the object from a path to a zoneinfo time zone region file.
const PO_NO_IO
Prohibits all terminal and file I/O and GUI operations.
Definition: QC_Program.dox.h:1690
const PO_NO_CONSTANT_DEFS
Disallows constant definitions.
Definition: QC_Program.dox.h:1598
auto run()
Runs the program and optionally returns a value if the top-level code exits with a return statement.
nothing parseCommit()
Commits and pending code processed with Program::parsePending() to the Program object after resolving...
*string file
the file name or parse label for the code
Definition: QC_Program.dox.h:14
const DOM_TERMINAL_IO
provides terminal I/O functionality
Definition: QC_Program.dox.h:1409
const PO_NO_SYSTEM_CLASSES
Prohibits system classes from being imported into the new Program object.
Definition: QC_Program.dox.h:1749
const DOM_DATABASE
provides access to databases
Definition: QC_Program.dox.h:1339
list< hash< auto > > findFunctionVariants(string function)
finds all variants of a function or class method and returns a list of the results
const PO_STRICT_ARGS
Prohibits access to builtin functions and methods flagged with RT_NOOP and also causes errors to be r...
Definition: QC_Program.dox.h:1843
const WARN_UNDECLARED_VAR
Indicates that the embedded code referenced an undeclared variable that will be assumed to be a globa...
Definition: QC_Program.dox.h:1973
hash< auto > getGlobalVars()
returns a hash of global variables
nothing parseRollback()
Removes all partially or fully-parsed code from the object along with other builtin objects; a Progra...
importSystemHashDecls()
imports system hashdecls into a Program container at runtime; will throw an exception if the Program ...
const WARN_UNKNOWN_WARNING
Indicates that the embedded code tried to enable or disable an unknown warning.
Definition: QC_Program.dox.h:1977
nothing undefine(string def)
Unsets a parse define for the current Program.
importSystemApi()
imports system classes and functions into a Program container at runtime; will throw an exception if ...
const PO_LOCKDOWN
Sets very restrictive access; this restriction is designed to allow code to only execute logic,...
Definition: QC_Program.dox.h:1557
source location information
Definition: QC_Program.dox.h:8
int getParseOptions()
Returns the current binary-or'ed parse option mask for the Program object.
const DOM_UNCONTROLLED_API
provides unchecked access to system functionality that could bypass Qore's sandboxing controls
Definition: QC_Program.dox.h:1433
const WARN_UNREFERENCED_VARIABLE
This warning is raised when a variable is declared in a block but never referenced.
Definition: QC_Program.dox.h:1985
const PO_BROKEN_SPRINTF
Enables broken sprintf() handling where no argument is treated diffferently than NOTHING.
Definition: QC_Program.dox.h:1541
const PO_NO_INHERIT_SYSTEM_CONSTANTS
Prohibits system constants from being imported into the new Program object.
Definition: QC_Program.dox.h:1656
const PO_NO_DEBUGGING
Forbids debugging of the current Program object; when this option is set, debuggers cannot attach to ...
Definition: QC_Program.dox.h:1609
loadApplyToUserModule(string name, *softbool reinject, int warning_mask=WARN_MODULES, bool reexport=False)
Loads a Qore user module into the given Program container at run-time; after this call the Program ob...
destructor()
Waits for all threads to finish executing, then deletes all global variables, dereferences the intern...
auto getDefine(string def)
Retrieves the value of the given parse define in the current Program.
const PO_NO_EXTERNAL_PROCESS
Disallows any access to external processes (with system(), backquote(), exec(), etc)
Definition: QC_Program.dox.h:1627
*string getScriptDir()
Returns the current script directory as a string or NOTHING if not set.
const DOM_LOCALE_CONTROL
provides access to functionality that changes locale information
Definition: QC_Program.dox.h:1381
const PO_STRICT_TYPES
Sets strict type checking and automatically sets default values for lvalues with type restrictions fo...
Definition: QC_Program.dox.h:1855
const PO_NO_NETWORK
Disallows access to network functionality.
Definition: QC_Program.dox.h:1710
*hash< ExceptionInfo > parse(string code, string label, *softint warning_mask, *string source, *softint offset, softbool format_label=True)
Parses the string argument and adds the code to the Program object.
const PO_NO_INHERIT_USER_CONSTANTS
Prohibits user constants from being imported into the new Program object.
Definition: QC_Program.dox.h:1678
const PO_NO_TOP_LEVEL_STATEMENTS
Disallows top level code.
Definition: QC_Program.dox.h:1785
const PO_NO_MODULES
Disallows loading modules with the %requires directive or at runtime with load_module()
Definition: QC_Program.dox.h:1700
int endline
the ending source line number
Definition: QC_Program.dox.h:12
list< string > getParseOptionStringList()
returns a list of parse option strings for the program object
importSystemConstants()
imports system constants into a Program container at runtime; will throw an exception if the Program ...
const ParseOptionStringMap
Maps from parse option strings to parse option bitfield integer codes.
Definition: QC_Program.dox.h:1885
loadModule(string name, int warning_mask=WARN_MODULES)
Loads a Qore module into the Program object at run-time.
const PO_ALLOW_DEBUGGER
Allows the use of functionality required to implement a debugger, mainly via DebugProgram.
Definition: QC_Program.dox.h:1462
*hash< ExceptionInfo > loadApplyToUserModuleWarn(string name, *softbool reinject, int warning_mask=WARN_MODULES, bool reexport=False)
Loads a Qore user module into the given Program container at run-time; after this call the Program ob...
main Qore-language namespace
Definition: Pseudo_QC_All.dox.h:3
const CSP_SETPRIV
Imports the object with private visibility.
Definition: QC_Program.dox.h:1321
const CSP_UNCHANGED
Imports the object with the same module visibility.
Definition: QC_Program.dox.h:1325
const ParseOptionCodeMap
Maps from parse option code values (as string keys) to parse option names.
Definition: QC_Program.dox.h:1879
const DOM_PROCESS_CONTROL
provides process control functionality (can affect or stop the current process)
Definition: QC_Program.dox.h:1399
const WARN_EXCESS_ARGS
Enables a warning when a function or method call is made with more arguments than are used by the fun...
Definition: QC_Program.dox.h:1941
const PO_IN_MODULE
Only set by the system when in a user module Program.
Definition: QC_Program.dox.h:1551
const WARN_MODULES
The default warning mask for user modules.
Definition: QC_Program.dox.h:1957
const PO_ALLOW_STATEMENT_NO_EFFECT
Allows for old pre-Qore 0.9 top-level statements having no effect.
Definition: QC_Program.dox.h:1481
const PO_NO_INHERIT_USER_HASHDECLS
Prohibits user hashdecls from being imported into the new Program object.
Definition: QC_Program.dox.h:1684
const PO_NO_TERMINAL_IO
Disallows access to reading from and/or writing to the terminal.
Definition: QC_Program.dox.h:1759
const WARN_WARNING_MASK_UNCHANGED
This warning means that the embedded code tried to change the warning mask, but it was locked,...
Definition: QC_Program.dox.h:1989
const PO_NO_EMBEDDED_LOGIC
Prohibits embedded logic from being used.
Definition: QC_Program.dox.h:1611
importSystemFunctions()
imports system functions into a Program container at runtime; will throw an exception if the Program ...
*hash< ExceptionInfo > loadModuleWarn(string name, int warning_mask=WARN_MODULES)
Loads a Qore module into the Program object at run-time.
const WARN_DEFAULT
The default warning mask.
Definition: QC_Program.dox.h:1917
const PO_ALLOW_INJECTION
Allows code/dependency injections in the contained Program object.
Definition: QC_Program.dox.h:1470
const PO_NO_EXTERNAL_INFO
Disallows access to functionality that provides information about the computing environment.
Definition: QC_Program.dox.h:1622
const DOM_NETWORK
provides network functionality
Definition: QC_Program.dox.h:1393
constructor(softint po=PO_DEFAULT)
Creates the program object and optionally sets program capabilities (parse options)
const PO_NO_INHERIT_SYSTEM_FUNC_VARIANTS
Prohibits builtin/system function variants from being imported into the new Program object.
Definition: QC_Program.dox.h:1662
const PO_NO_THREAD_CONTROL
Disallows access to any thread-control functions and thread-relevant statements and operators (for ex...
Definition: QC_Program.dox.h:1775
const PO_BROKEN_CAST
Allows for old pre-Qore 0.9.4 broken cast<> operator behavior where NOTHING was silently accepted.
Definition: QC_Program.dox.h:1499
const DomainCodeMap
Maps from functional domain bitfield code values (as string keys) to functional domain names.
Definition: QC_Program.dox.h:1445
const PO_STRONG_ENCAPSULATION
disallows out-of-line class and namespace declarations
Definition: QC_Program.dox.h:1861
const PO_BROKEN_INT_ASSIGNMENTS
allows for old pre-Qore 0.8.12 broken runtime int assignments where runtime type errors were ignored
Definition: QC_Program.dox.h:1505
const WARN_DUPLICATE_GLOBAL_VARS
Indicates that the embedded code has declared the same global variable more than once.
Definition: QC_Program.dox.h:1929
const PO_NO_THREAD_INFO
Disallows access to functionality that provides information about threading.
Definition: QC_Program.dox.h:1780
const PO_BROKEN_REFERENCES
allows for old pre-Qore 0.8.13 handling of reference and *reference
Definition: QC_Program.dox.h:1535