Qore supports the use of parse directives in order to set parsing options, load modules, control warnings, and include other files. Parse directives that set parsing options can be used any time parse options have not been locked on a \mbox{\hyperlink{class_qore_1_1_program}{Program object}}. They are used most often when it\textquotesingle{}s not possible or desirable to set the parse options in the qore command line. The following are the recommended parse directives for Qore programming (note that Qore is moving toward establishing \mbox{\hyperlink{parse_directives_new-style}{\%new-\/style}} as the default syntax; all examples given in the Qore documentation are given assuming \mbox{\hyperlink{parse_directives_new-style}{\%new-\/style}})\+: \begin{DoxyItemize} \item \mbox{\hyperlink{parse_directives_new-style}{\%new-\/style}} \item \mbox{\hyperlink{parse_directives_strict-args}{\%strict-\/args}} \item \mbox{\hyperlink{parse_directives_require-types}{\%require-\/types}} \item \mbox{\hyperlink{parse_directives_enable-all-warnings}{\%enable-\/all-\/warnings}} \end{DoxyItemize} {\bfseries{Parse Directives}} \tabulinesep=1mm \begin{longtabu}spread 0pt [c]{*{2}{|X[-1]}|} \hline {\bfseries{Directive}} &{\bfseries{Description}} \\\cline{1-2} \mbox{\hyperlink{parse_directives_allow-bare-refs}{\%allow-\/bare-\/refs}} &Prohibits the use of the {\ttfamily \char`\"{}\$\char`\"{}} character in variable names, method calls, and object member references. This makes Qore scripts appear superficially more like C++ or Java programs.~\newline ~\newline This parse option is set by default with \mbox{\hyperlink{parse_directives_new-style}{\%new-\/style}}.~\newline ~\newline Name resolution is made in the following order when this option is set\+: local variables, class constants and static class vars (when parsing in class code), global variables, and (non-\/class) constants.~\newline ~\newline Note that \mbox{\hyperlink{expressions_implicit_arguments}{implicit arguments}} are still referenced with the {\ttfamily \char`\"{}\$\char`\"{}} character even when this parse option is set; see also \mbox{\hyperlink{parse_directives_require-dollar}{\%require-\/dollar}} ~\newline ~\newline Since Qore 0.\+8.\+1 \\\cline{1-2} \mbox{\hyperlink{parse_directives_allow-debugger}{\%allow-\/debugger}} &Allows debugging actions that could be insecure such as reading the thread local variable stack$<$br$>$~\newline Since Qore 0.\+8.\+13 \\\cline{1-2} \mbox{\hyperlink{parse_directives_allow-injection}{\%allow-\/injection}} &Allows code and dependency injections into the given \mbox{\hyperlink{class_qore_1_1_program}{Program}} object \\\cline{1-2} \mbox{\hyperlink{parse_directives_allow-returns}{\%allow-\/returns}} &Allows the use of the deprecated {\ttfamily returns} keyword$<$br$>$~\newline Since Qore 0.\+9.\+4 \\\cline{1-2} \mbox{\hyperlink{parse_directives_allow-weak-references}{\%allow-\/weak-\/references}} &Allows the use of the \mbox{\hyperlink{operators_weak_assignment_operator}{weak assignment operator (\+:=)}}~\newline ~\newline Since Qore 0.\+8.\+13 \\\cline{1-2} \mbox{\hyperlink{parse_directives_append-include-path}{\%append-\/include-\/path}} &Appends the given directories to qore\textquotesingle{}s include path; also performs environment variable substitution \\\cline{1-2} \mbox{\hyperlink{parse_directives_append-module-path}{\%append-\/module-\/path}} &Appends the given directories to qore\textquotesingle{}s module path; also performs environment variable substitution ~\newline ~\newline Since Qore 0.\+8.\+6 \\\cline{1-2} \mbox{\hyperlink{parse_directives_assume-global}{\%assume-\/global}} &Resets the default Qore behavior of assuming global variable scope when variables are first referenced if no \mbox{\hyperlink{variables_my}{my}} or \mbox{\hyperlink{variables_our}{our}} is present; use after \mbox{\hyperlink{parse_directives_assume-local}{\%assume-\/local}} to reset the default parsing behavior.~\newline ~\newline This parse option is also set with \mbox{\hyperlink{parse_directives_old-style}{\%old-\/style}} ~\newline ~\newline Since Qore 0.\+8.\+4 \\\cline{1-2} \mbox{\hyperlink{parse_directives_assume-local}{\%assume-\/local}} &Assume local variable scope when variables are first referenced if no \mbox{\hyperlink{variables_my}{my}} or \mbox{\hyperlink{variables_our}{our}} is present. When used with \mbox{\hyperlink{parse_directives_allow-bare-refs}{\%allow-\/bare-\/refs}}, local variables without \mbox{\hyperlink{variables_my}{my}} must be declared with a data type restriction (can be \mbox{\hyperlink{data_type_declarations_any_type}{any}}).~\newline ~\newline This parse option is set by default with \mbox{\hyperlink{parse_directives_new-style}{\%new-\/style}}; see also \mbox{\hyperlink{parse_directives_assume-global}{\%assume-\/global}} ~\newline ~\newline Since Qore 0.\+8.\+1 \\\cline{1-2} \mbox{\hyperlink{parse_directives_broken-cast}{\%broken-\/cast}} &Use old pre-\/0.\+9.\+4 broken \mbox{\hyperlink{operators_cast}{cast$<$$>$}} operator handling where \mbox{\hyperlink{basic_data_types_nothing}{NOTHING}} would be accepted without an error \\\cline{1-2} \mbox{\hyperlink{parse_directives_broken-int-assignments}{\%broken-\/int-\/assignments}} &Use old pre-\/0.\+8.\+12 broken \mbox{\hyperlink{data_type_declarations_int_type}{int}} and \mbox{\hyperlink{data_type_declarations_softint_type}{softint}} runtime handling where type errors were ignored at runtime \\\cline{1-2} \mbox{\hyperlink{parse_directives_broken-list-parsing}{\%broken-\/list-\/parsing}} &Use old pre-\/0.\+8.\+12 broken list parsing where certain lists without parentheses would be rewritten to make top-\/level statements like {\ttfamily list l = 1, 2, 3;} valid \\\cline{1-2} \mbox{\hyperlink{parse_directives_broken-logic-precedence}{\%broken-\/logic-\/precedence}} &Use old pre-\/0.\+8.\+12 precedence of logical and bitwise operators \\\cline{1-2} \mbox{\hyperlink{parse_directives_broken-loop-statement}{\%broken-\/loop-\/statement}} &Accept \mbox{\hyperlink{statements_break}{break}} and \mbox{\hyperlink{statements_continue}{continue}} outside of loops as with pre-\/0.\+8.\+13 \\\cline{1-2} \mbox{\hyperlink{parse_directives_broken-operators}{\%broken-\/operators}} &Accept spaces in multi-\/character operators as with pre-\/0.\+8.\+12 \\\cline{1-2} \mbox{\hyperlink{parse_directives_broken-range}{\%broken-\/range}} &Include the upper limit in \mbox{\hyperlink{group__list__functions_gaad3b9056f1b0dfef032d130c7500f517}{range()}} and \mbox{\hyperlink{group__range__functions_gad5b4d3ad3f6c36d2e714bc6ed757a507}{xrange()}} as with pre-\/0.\+9.\+5 \\\cline{1-2} \mbox{\hyperlink{parse_directives_broken-references}{\%broken-\/references}} &Do not enforce \mbox{\hyperlink{data_type_declarations_reference_type}{reference}} and \mbox{\hyperlink{data_type_declarations_reference_or_nothing_type}{$\ast$reference}} type restrictions as with pre-\/0.\+8.\+13 \\\cline{1-2} \mbox{\hyperlink{parse_directives_broken-sprintf}{\%broken-\/sprintf}} &Use pre-\/0.\+9 sprintf format handling where no argument is handled differently than \mbox{\hyperlink{basic_data_types_nothing}{NOTHING}} \\\cline{1-2} \mbox{\hyperlink{parse_directives_correct-cast}{\%correct-\/cast}} &revert the effect of the \mbox{\hyperlink{parse_directives_broken-cast}{\%broken-\/cast}} parse option \\\cline{1-2} \mbox{\hyperlink{parse_directives_correct-int-assignments}{\%correct-\/int-\/assignments}} &revert the effect of the \mbox{\hyperlink{parse_directives_broken-int-assignments}{\%broken-\/int-\/assignments}} parse option \\\cline{1-2} \mbox{\hyperlink{parse_directives_correct-list-parsing}{\%correct-\/list-\/parsing}} &revert the effect of the \mbox{\hyperlink{parse_directives_broken-list-parsing}{\%broken-\/list-\/parsing}} parse option \\\cline{1-2} \mbox{\hyperlink{parse_directives_correct-logic-precedence}{\%correct-\/logic-\/precedence}} &revert the effect of the \mbox{\hyperlink{parse_directives_broken-logic-precedence}{\%broken-\/logic-\/precedence}} parse option \\\cline{1-2} \mbox{\hyperlink{parse_directives_correct-loop-statement}{\%correct-\/loop-\/statement}} &revert the effect of the \mbox{\hyperlink{parse_directives_broken-loop-statement}{\%broken-\/loop-\/statement}} parse option \\\cline{1-2} \mbox{\hyperlink{parse_directives_correct-operators}{\%correct-\/operators}} &revert the effect of the \mbox{\hyperlink{parse_directives_broken-operators}{\%broken-\/operators}} parse option \\\cline{1-2} \mbox{\hyperlink{parse_directives_correct-range}{\%correct-\/range}} &revert the effect of the \mbox{\hyperlink{parse_directives_broken-range}{\%broken-\/range}} parse option \\\cline{1-2} \mbox{\hyperlink{parse_directives_correct-references}{\%correct-\/references}} &revert the effect of the \mbox{\hyperlink{parse_directives_broken-references}{\%broken-\/references}} parse option \\\cline{1-2} \mbox{\hyperlink{parse_directives_correct-sprintf}{\%correct-\/sprintf}} &revert the effect of the \mbox{\hyperlink{parse_directives_broken-sprintf}{\%broken-\/sprintf}} parse option \\\cline{1-2} \mbox{\hyperlink{parse_directives_define}{\%define}} &Creates and optionally sets a value for a \mbox{\hyperlink{conditional_parsing}{parse define}} ~\newline ~\newline Since Qore 0.\+8.\+3 \\\cline{1-2} \mbox{\hyperlink{parse_directives_disable-all-warnings}{\%disable-\/all-\/warnings}} &Turns off all \mbox{\hyperlink{warnings}{warnings}} \\\cline{1-2} \mbox{\hyperlink{parse_directives_disable-warning}{\%disable-\/warning}} {\itshape \mbox{\hyperlink{warnings}{warning-\/code}}} &Disables the named \mbox{\hyperlink{warnings}{warning}} until \mbox{\hyperlink{parse_directives_enable-warning}{\%enable-\/warning}} is encountered with the same code or \mbox{\hyperlink{parse_directives_enable-all-warnings}{\%enable-\/all-\/warnings}} is encountered \\\cline{1-2} \mbox{\hyperlink{parse_directives_else}{\%else}} &Allows for parsing an alternate block when used with the \mbox{\hyperlink{parse_directives_ifdef}{\%ifdef}} or \mbox{\hyperlink{parse_directives_ifndef}{\%ifndef}} parse directives (for \mbox{\hyperlink{conditional_parsing}{conditional parsing based on parse defines}}) ~\newline ~\newline Since Qore 0.\+8.\+3 \\\cline{1-2} \mbox{\hyperlink{parse_directives_enable-all-warnings}{\%enable-\/all-\/warnings}} &Turns on all \mbox{\hyperlink{warnings}{warnings}} \\\cline{1-2} \mbox{\hyperlink{parse_directives_enable-warning}{\%enable-\/warning}} {\itshape \mbox{\hyperlink{warnings}{warning-\/code}}} &Enables the named \mbox{\hyperlink{warnings}{warning}} \\\cline{1-2} \mbox{\hyperlink{parse_directives_endif}{\%endif}} &Closes a \mbox{\hyperlink{conditional_parsing}{conditionally-\/parsed}} block started by the \mbox{\hyperlink{parse_directives_ifdef}{\%ifdef}} or \mbox{\hyperlink{parse_directives_ifndef}{\%ifndef}} parse directives ~\newline ~\newline Since Qore 0.\+8.\+3 \\\cline{1-2} \mbox{\hyperlink{parse_directives_endtry}{\%endtry}} &Closes a \mbox{\hyperlink{parse_directives_try-module}{\%try-\/module}} or \mbox{\hyperlink{parse_directives_try-reexport-module}{\%try-\/reexport-\/module}} block ~\newline ~\newline Since Qore 0.\+8.\+6 \\\cline{1-2} \mbox{\hyperlink{parse_directives_exec-class}{\%exec-\/class}} {\itshape \mbox{\hyperlink{qore_classes}{class\+\_\+name}}} &Instantiates the named class as the application class; also turns on \mbox{\hyperlink{parse_directives_no-top-level}{\%no-\/top-\/level}}. If the program is read from stdin or from the command line, an argument must be given specifying the class name. Any top level statements before this directive are silently ignored \\\cline{1-2} \mbox{\hyperlink{parse_directives_ifdef}{\%ifdef}} &Opens a \mbox{\hyperlink{conditional_parsing}{conditionally-\/parsed}} block; if the given \mbox{\hyperlink{conditional_parsing}{parse define}} is defined, then the block after the \mbox{\hyperlink{parse_directives_ifdef}{\%ifdef}} is parsed until either an \mbox{\hyperlink{parse_directives_else}{\%else}} or an \mbox{\hyperlink{parse_directives_endif}{\%endif}} ~\newline ~\newline Since Qore 0.\+8.\+3 \\\cline{1-2} \mbox{\hyperlink{parse_directives_ifndef}{\%ifndef}} &Opens a \mbox{\hyperlink{conditional_parsing}{conditionally-\/parsed}} block; if the given \mbox{\hyperlink{conditional_parsing}{parse define}} is not defined, then the block after the \mbox{\hyperlink{parse_directives_ifdef}{\%ifdef}} is parsed until either an \mbox{\hyperlink{parse_directives_else}{\%else}} or an \mbox{\hyperlink{parse_directives_endif}{\%endif}} ~\newline ~\newline Since Qore 0.\+8.\+3 \\\cline{1-2} \mbox{\hyperlink{parse_directives_include}{\%include}} {\itshape file\+\_\+name} &Starts parsing {\itshape file\+\_\+name} immediately. Parsing resumes with the current input after {\itshape file\+\_\+name} has been completely parsed \\\cline{1-2} \mbox{\hyperlink{parse_directives_lockdown}{\%lockdown}} &Made up of \mbox{\hyperlink{parse_directives_no-external-access}{\%no-\/external-\/access}}, \mbox{\hyperlink{parse_directives_no-threads}{\%no-\/threads}}, and \mbox{\hyperlink{parse_directives_no-io}{\%no-\/io}}; equivalent to parse option \mbox{\hyperlink{group__parse__options_ga32ca9503dd181920af97c058d9bd1164}{Qore\+::\+PO\+\_\+\+LOCKDOWN}} and the {\ttfamily --lockdown} command line option \\\cline{1-2} \mbox{\hyperlink{parse_directives_lock-options}{\%lock-\/options}} &Prohibits further changes to parse options (equivalent to the {\ttfamily -\/}{\ttfamily -\/lock-\/options} command line option) \\\cline{1-2} \mbox{\hyperlink{parse_directives_lock-warnings}{\%lock-\/warnings}} &Prohibits further changes to the warning mask (equivalent to the {\ttfamily -\/}{\ttfamily -\/lock-\/warnings} command line option) \\\cline{1-2} \mbox{\hyperlink{parse_directives_loose-args}{\%loose-\/args}} &reverts the effect of the \mbox{\hyperlink{parse_directives_strict-args}{\%strict-\/args}} parse options \\\cline{1-2} \mbox{\hyperlink{parse_directives_loose-types}{\%loose-\/types}} &reverts the effect of the \mbox{\hyperlink{parse_directives_strict-types}{\%strict-\/types}} parse options \\\cline{1-2} \mbox{\hyperlink{parse_directives_new-style}{\%new-\/style}} &Sets both \mbox{\hyperlink{parse_directives_allow-bare-refs}{\%allow-\/bare-\/refs}} and \mbox{\hyperlink{parse_directives_assume-local}{\%assume-\/local}}. These two options together make programming in Qore superficially more like programming in C++ or Java programs; use this if you dislike programming with the {\ttfamily \char`\"{}\$\char`\"{}} sign, for example; see also \mbox{\hyperlink{parse_directives_old-style}{\%old-\/style}} ~\newline ~\newline Since Qore 0.\+8.\+1 \\\cline{1-2} \mbox{\hyperlink{parse_directives_old-style}{\%old-\/style}} &Resets default Qore parsing behavior by setting \mbox{\hyperlink{parse_directives_require-dollar}{\%require-\/dollar}} and \mbox{\hyperlink{parse_directives_assume-global}{\%assume-\/global}}; this option is the opposite of \mbox{\hyperlink{parse_directives_new-style}{\%new-\/style}} ~\newline ~\newline Since Qore 0.\+8.\+4 \\\cline{1-2} \mbox{\hyperlink{parse_directives_no-debugging}{\%no-\/debugging}} &Forbids debugging of the current \mbox{\hyperlink{class_qore_1_1_program}{Program}} object ~\newline ~\newline Since Qore 0.\+8.\+13 \\\cline{1-2} \mbox{\hyperlink{parse_directives_no-class-defs}{\%no-\/class-\/defs}} &Disallows \mbox{\hyperlink{qore_classes}{class definitions}}; equivalent to \mbox{\hyperlink{group__parse__options_ga969ab84c1a550482cbc6d24e878172e9}{Qore\+::\+PO\+\_\+\+NO\+\_\+\+CLASS\+\_\+\+DEFS}} and the {\ttfamily -\/}{\ttfamily -\/no-\/class-\/defs} command line option \\\cline{1-2} \mbox{\hyperlink{parse_directives_no-child-restrictions}{\%no-\/child-\/restrictions}} &Allows child program objects to have parse option restrictions that are not a strict subset of the parents\textquotesingle{}; equivalent to parse option \mbox{\hyperlink{group__parse__options_gaa567ec1170360b9ca111402c5179109f}{Qore\+::\+PO\+\_\+\+NO\+\_\+\+CHILD\+\_\+\+PO\+\_\+\+RESTRICTIONS}} and the {\ttfamily -\/}{\ttfamily -\/no-\/child-\/restrictions} command line option \\\cline{1-2} \mbox{\hyperlink{parse_directives_no-constant-defs}{\%no-\/constant-\/defs}} &Disallows \mbox{\hyperlink{constants}{constant definitions}}; equivalent to parse option \mbox{\hyperlink{group__parse__options_ga50a8caec03edae3600565a456c1f9c7e}{Qore\+::\+PO\+\_\+\+NO\+\_\+\+CONSTANT\+\_\+\+DEFS}} and the {\ttfamily -\/}{\ttfamily -\/no-\/constant-\/defs} command line option \\\cline{1-2} \mbox{\hyperlink{parse_directives_no-database}{\%no-\/database}} &Disallows access to database functionality (for example the \mbox{\hyperlink{class_qore_1_1_s_q_l_1_1_datasource}{Datasource class}}; equivalent to parse option \mbox{\hyperlink{group__parse__options_gac496a9d9bcf9d5c626c8c267c73a83bc}{Qore\+::\+PO\+\_\+\+NO\+\_\+\+DATABASE}} and the {\ttfamily -\/}{\ttfamily -\/no-\/database} command line option \\\cline{1-2} \mbox{\hyperlink{parse_directives_no-external-access}{\%no-\/external-\/access}} &made up of \mbox{\hyperlink{parse_directives_no-process-control}{\%no-\/process-\/control}}, \mbox{\hyperlink{parse_directives_no-network}{\%no-\/network}}, \mbox{\hyperlink{parse_directives_no-filesystem}{\%no-\/filesystem}}, \mbox{\hyperlink{parse_directives_no-database}{\%no-\/database}}, \mbox{\hyperlink{parse_directives_no-external-info}{\%no-\/external-\/info}}, and \mbox{\hyperlink{parse_directives_no-modules}{\%no-\/modules}}; equivalent to parse option \mbox{\hyperlink{group__parse__options_ga10aefe54a313d86a87fedc46820ffb02}{Qore\+::\+PO\+\_\+\+NO\+\_\+\+EXTERNAL\+\_\+\+ACCESS}} and the {\ttfamily -\/}{\ttfamily -\/no-\/external-\/access} command line option \\\cline{1-2} \mbox{\hyperlink{parse_directives_no-external-info}{\%no-\/external-\/info}} &Disallows any access to functionality that provides external information (see \mbox{\hyperlink{parse_directives_no-external-info}{\%no-\/external-\/info}} for a list of features not available with this parse option); equivalent to parse option \mbox{\hyperlink{group__parse__options_ga213aab826b55076c29ffeecebbaea237}{Qore\+::\+PO\+\_\+\+NO\+\_\+\+EXTERNAL\+\_\+\+INFO}} and the {\ttfamily -\/}{\ttfamily -\/no-\/external-\/info} command line option \\\cline{1-2} \mbox{\hyperlink{parse_directives_no-external-process}{\%no-\/external-\/process}} &Disallows any access to external processes (see \mbox{\hyperlink{parse_directives_no-external-process}{\%no-\/external-\/process}} for a list of features not available with this parse option); equivalent to parse option \mbox{\hyperlink{group__parse__options_gaab2d8faa88f066837e100152187e6368}{Qore\+::\+PO\+\_\+\+NO\+\_\+\+EXTERNAL\+\_\+\+PROCESS}} and the {\ttfamily -\/}{\ttfamily -\/no-\/external-\/process} command line option \\\cline{1-2} \mbox{\hyperlink{parse_directives_no-filesystem}{\%no-\/filesystem}} &Disallows access to the local filesystem; equivalent to parse option \mbox{\hyperlink{group__parse__options_ga5e466ed886222f0b57b0a399b455be71}{Qore\+::\+PO\+\_\+\+NO\+\_\+\+FILESYSTEM}} and the {\ttfamily -\/}{\ttfamily -\/no-\/filesystem} command line option \\\cline{1-2} \mbox{\hyperlink{parse_directives_no-global-vars}{\%no-\/global-\/vars}} &Disallows the use of global variables; equivalent to parse option \mbox{\hyperlink{group__parse__options_ga00fcb14e17ebe9073cc0b768c276cf64}{Qore\+::\+PO\+\_\+\+NO\+\_\+\+GLOBAL\+\_\+\+VARS}} and the {\ttfamily -\/}{\ttfamily -\/no-\/global-\/vars} command line option \\\cline{1-2} \mbox{\hyperlink{parse_directives_no-gui}{\%no-\/gui}} &Disallows functionality that draws graphics to the display; equivalent to parse option \mbox{\hyperlink{group__parse__options_ga005117c783de66a8635beead079f52bd}{Qore\+::\+PO\+\_\+\+NO\+\_\+\+GUI}} and the {\ttfamily -\/pno-\/gui} command line option \\\cline{1-2} \mbox{\hyperlink{parse_directives_no-io}{\%no-\/io}} &Made up of \mbox{\hyperlink{parse_directives_no-gui}{\%no-\/gui}} $|$ \mbox{\hyperlink{parse_directives_no-terminal-io}{\%no-\/terminal-\/io}} $|$ \mbox{\hyperlink{parse_directives_no-filesystem}{\%no-\/filesystem}} $|$ \mbox{\hyperlink{parse_directives_no-network}{\%no-\/network}} $|$ \mbox{\hyperlink{parse_directives_no-database}{\%no-\/database}}; equivalent to parse option \mbox{\hyperlink{group__parse__options_gabcd4198285f25da13a5883006f06a2b7}{Qore\+::\+PO\+\_\+\+NO\+\_\+\+IO}} and the {\ttfamily --no-\/io} command line option \\\cline{1-2} \mbox{\hyperlink{parse_directives_no-locale-control}{\%no-\/locale-\/control}} &Disallows access to functionality that changes locale information (see no-\/locale-\/control for a list of features not available with this parse option); equivalent to parse option \mbox{\hyperlink{group__parse__options_ga99046cc8285fb26438508cdf29b5771e}{Qore\+::\+PO\+\_\+\+NO\+\_\+\+LOCALE\+\_\+\+CONTROL}} and the {\ttfamily -\/}{\ttfamily -\/no-\/locale-\/control} command line option \\\cline{1-2} \mbox{\hyperlink{parse_directives_no-modules}{\%no-\/modules}} &Disallows loading \mbox{\hyperlink{qore_modules}{modules}} with the \mbox{\hyperlink{parse_directives_requires}{\%requires}}, \mbox{\hyperlink{parse_directives_try-module}{\%try-\/module}}, and \mbox{\hyperlink{parse_directives_try-reexport-module}{\%try-\/reexport-\/module}} parse directive or at runtime with \mbox{\hyperlink{group__misc__functions_gaf0922a51e6c5471b02a947cb0cb008ba}{load\+\_\+module()}}; equivalent to \mbox{\hyperlink{group__parse__options_gaccf9af08f7acb25e66b777dcb4c4563b}{Qore\+::\+PO\+\_\+\+NO\+\_\+\+MODULES}} and the {\ttfamily -\/pno-\/modules} command line option ~\newline ~\newline Since Qore 0.\+8.\+4 \\\cline{1-2} \mbox{\hyperlink{parse_directives_no-namespace-defs}{\%no-\/namespace-\/defs}} &Disallows new \mbox{\hyperlink{qore_namespaces}{namespace definitions}}; equivalent to \mbox{\hyperlink{group__parse__options_gaa5aaa3b96f4662b3c49bed1d1ab8ec88}{Qore\+::\+PO\+\_\+\+NO\+\_\+\+NAMESPACE\+\_\+\+DEFS}} and the {\ttfamily -\/}{\ttfamily -\/no-\/namespace-\/defs} command line option \\\cline{1-2} \mbox{\hyperlink{parse_directives_no-network}{\%no-\/network}} &Disallows access to the network; equivalent to parse option \mbox{\hyperlink{group__parse__options_ga20400e83c6271a294a48b15a8f952efa}{Qore\+::\+PO\+\_\+\+NO\+\_\+\+NETWORK}} and the {\ttfamily -\/}{\ttfamily -\/no-\/network} command line option \\\cline{1-2} \mbox{\hyperlink{parse_directives_no-new}{\%no-\/new}} &Disallows use of the \mbox{\hyperlink{operators_new}{new operator}}; equivalent to parse option \mbox{\hyperlink{group__parse__options_ga9736251c76726706da64426d899b4033}{Qore\+::\+PO\+\_\+\+NO\+\_\+\+NEW}} and the {\ttfamily -\/}{\ttfamily -\/no-\/new} command line option \\\cline{1-2} \mbox{\hyperlink{parse_directives_no-process-control}{\%no-\/process-\/control}} &Disallows access to functions that would affect the current process (see \mbox{\hyperlink{parse_directives_no-process-control}{\%no-\/process-\/control}} for a list of features not available with this parse option); equivalent to parse option \mbox{\hyperlink{group__parse__options_ga10d8e3f76c427b0f974529de572dd0ec}{Qore\+::\+PO\+\_\+\+NO\+\_\+\+PROCESS\+\_\+\+CONTROL}} and the {\ttfamily -\/}{\ttfamily -\/no-\/process-\/control} command line option \\\cline{1-2} \mbox{\hyperlink{parse_directives_no-reflection}{\%no-\/reflection}} &Disallows access to the reflection API provided by the \href{../../modules/reflection/html/index.html}{\texttt{ reflection}} module; equivalent to parse option \mbox{\hyperlink{group__parse__options_ga454fabf3a392b8fec9ee587e97a2d8e8}{Qore\+::\+PO\+\_\+\+NO\+\_\+\+REFLECTION~\newline }}~\newline Since Qore 0.\+9 \\\cline{1-2} \mbox{\hyperlink{parse_directives_no-subroutine-defs}{\%no-\/subroutine-\/defs}} &Disallows subroutine (function) definitions; equivalent to parse option \mbox{\hyperlink{group__parse__options_ga750cc2b2d325184242990c6ab60ea736}{Qore\+::\+PO\+\_\+\+NO\+\_\+\+SUBROUTINE\+\_\+\+DEFS}} and the {\ttfamily -\/}{\ttfamily -\/no-\/subroutine-\/defs} command line option \\\cline{1-2} \mbox{\hyperlink{parse_directives_no-terminal-io}{\%no-\/terminal-\/io}} &Disallows access to terminal I/O (see \mbox{\hyperlink{parse_directives_no-terminal-io}{\%no-\/terminal-\/io}} for a list of features not available with this parse option); equivalent to parse option \mbox{\hyperlink{group__parse__options_gaa92bf6eafb76a4ccf1a0d0df45b13363}{Qore\+::\+PO\+\_\+\+NO\+\_\+\+TERMINAL\+\_\+\+IO}} and the {\ttfamily -\/pno-\/terminal-\/io} command line option \\\cline{1-2} \mbox{\hyperlink{parse_directives_no-thread-classes}{\%no-\/thread-\/classes}} &Disallows access to thread classes (see \mbox{\hyperlink{parse_directives_no-thread-classes}{\%no-\/thread-\/classes}} for a list of features not available with this parse option); equivalent to parse option \mbox{\hyperlink{group__parse__options_gade963e1fbbd1f5b2c777df7221512a1b}{Qore\+::\+PO\+\_\+\+NO\+\_\+\+THREAD\+\_\+\+CLASSES}} and the {\ttfamily -\/}{\ttfamily -\/no-\/thread-\/classes} command line option \\\cline{1-2} \mbox{\hyperlink{parse_directives_no-thread-control}{\%no-\/thread-\/control}} &Disallows access to thread control operations (see \mbox{\hyperlink{parse_directives_no-thread-control}{\%no-\/thread-\/control}} for a list of features not available with this parse option); equivalent to parse option \mbox{\hyperlink{group__parse__options_ga16d8c2b85171b6673b60b5f7d0eaf5eb}{Qore\+::\+PO\+\_\+\+NO\+\_\+\+THREAD\+\_\+\+CONTROL}} and the {\ttfamily -\/}{\ttfamily -\/no-\/thread-\/control} command line option \\\cline{1-2} \mbox{\hyperlink{parse_directives_no-thread-info}{\%no-\/thread-\/info}} &Disallows any access to functionality that provides threading information (see \mbox{\hyperlink{parse_directives_no-thread-info}{\%no-\/thread-\/info}} for a list of features not available with this parse option); equivalent to parse option \mbox{\hyperlink{group__parse__options_gac379d98e62c57231c2efb7ea87c75a3a}{Qore\+::\+PO\+\_\+\+NO\+\_\+\+THREAD\+\_\+\+INFO}} and the {\ttfamily -\/}{\ttfamily -\/no-\/thread-\/info} command line option \\\cline{1-2} \mbox{\hyperlink{parse_directives_no-threads}{\%no-\/threads}} &Disallows access to all thread control operations and thread classes (equivalent to {\ttfamily -\/}{\ttfamily -\/no-\/thread-\/control} and {\ttfamily -\/}{\ttfamily -\/no-\/thread-\/classes} together); equivalent to parse option \mbox{\hyperlink{group__parse__options_ga76f3b2a173e5f06aec64ea04fc1ed515}{Qore\+::\+PO\+\_\+\+NO\+\_\+\+THREADS}} and the {\ttfamily -\/}{\ttfamily -\/no-\/threads} command line option \\\cline{1-2} \mbox{\hyperlink{parse_directives_no-top-level}{\%no-\/top-\/level}} &Disallows any further top level code; equivalent to parse option \mbox{\hyperlink{group__parse__options_ga3a99f2973e97f3986630d8204d7b91fd}{Qore\+::\+PO\+\_\+\+NO\+\_\+\+TOP\+\_\+\+LEVEL\+\_\+\+STATEMENTS}} and the {\ttfamily -\/}{\ttfamily -\/no-\/top-\/level} command line option \\\cline{1-2} \mbox{\hyperlink{parse_directives_no-transient}{\%no-\/transient}} &Removes the \mbox{\hyperlink{qore_classes_transient}{Transient Members}} keyword for backwards-\/compatibility; equivalent to parse option \mbox{\hyperlink{group__parse__options_ga4d9e69dc24ed1eed0ea11f4947cceca2}{Qore\+::\+PO\+\_\+\+NO\+\_\+\+TRANSIENT}} \\\cline{1-2} \mbox{\hyperlink{parse_directives_no-uncontrolled-apis}{\%no-\/uncontrolled-\/apis}} &Disallows access to uncontrolled APIs such as external language bindings or direct generic system call APIs that could bypass Qore\textquotesingle{}s sandboxing controls \\\cline{1-2} \mbox{\hyperlink{parse_directives_perl-bool-eval}{\%perl-\/bool-\/eval}} &Set to mimic perl\textquotesingle{}s boolean evaluation; this is the default with qore $>$= 0.\+8.\+6; prior to this version, by default qore used strict mathematic boolean evaluation, where any value converted to 0 is \mbox{\hyperlink{basic_data_types_False}{False}} and otherwise it\textquotesingle{}s is \mbox{\hyperlink{basic_data_types_True}{True}}. ~\newline ~\newline As of Qore 0.\+8.\+6+, this parse option is only needed if \mbox{\hyperlink{parse_directives_strict-bool-eval}{\%strict-\/bool-\/eval}} is set. ~\newline ~\newline When this option is set, boolean evaluation follows the same rules as \mbox{\hyperlink{class_qore_1_1zzz8valuezzz9_a3a66486cee14aa073cf90fbed5a23edd}{Qore\+::zzz8valuezzz9\+::val()}}; see also \mbox{\hyperlink{parse_directives_strict-bool-eval}{\%strict-\/bool-\/eval}}~\newline ~\newline Since Qore 0.\+8.\+6 \\\cline{1-2} \mbox{\hyperlink{parse_directives_push-parse-options}{\%push-\/parse-\/options}} &Stores parse options so that they will be restored when the current file is done parsing; use in include files to ensure parse options are set appropriately for the file being parsed \\\cline{1-2} \mbox{\hyperlink{parse_directives_require-dollar}{\%require-\/dollar}} &Resets the default Qore behavior where the use of the {\ttfamily \char`\"{}\$\char`\"{}} character in variable names, method calls, and object member references is required; use after \mbox{\hyperlink{parse_directives_allow-bare-refs}{\%allow-\/bare-\/refs}} to reset the default parsing behavior ~\newline ~\newline Since Qore 0.\+8.\+4 \\\cline{1-2} \mbox{\hyperlink{parse_directives_require-our}{\%require-\/our}} &Requires global variables to be declared with \mbox{\hyperlink{variables_our}{our}} prior to use (like perl\textquotesingle{}s {\ttfamily use strict vars} pragma); equivalent to parse option \mbox{\hyperlink{group__parse__options_ga77d54a192aeae13bac95700ab5bbb190}{Qore\+::\+PO\+\_\+\+REQUIRE\+\_\+\+OUR}} and the {\ttfamily -\/}{\ttfamily -\/require-\/our} command line option \\\cline{1-2} \mbox{\hyperlink{parse_directives_require-prototypes}{\%require-\/prototypes}} &Requires type declarations for all function and method parameters and return types. Variables and object members do not need to have type declarations; equivalent to parse option \mbox{\hyperlink{group__parse__options_ga196e048def21cb147b21a4871c4e9b29}{Qore\+::\+PO\+\_\+\+REQUIRE\+\_\+\+PROTOTYPES}} and the {\ttfamily -\/}{\ttfamily -\/require-\/prototypes} command line option ~\newline ~\newline Since Qore 0.\+8.\+0 \\\cline{1-2} \mbox{\hyperlink{parse_directives_require-types}{\%require-\/types}} &Requires type declarations for all function and method parameters, return types, variables, and object members; equivalent to parse option \mbox{\hyperlink{group__parse__options_ga66847391bb96dac88c3fee210720bbb3}{Qore\+::\+PO\+\_\+\+REQUIRE\+\_\+\+TYPES}} and the {\ttfamily -\/}{\ttfamily -\/require-\/types} command line option; also implies \mbox{\hyperlink{parse_directives_strict-args}{\%strict-\/args}} ~\newline ~\newline Since Qore 0.\+8.\+0 \\\cline{1-2} \mbox{\hyperlink{parse_directives_requires}{\%requires}}{\ttfamily \mbox{[}(reexport)\mbox{]} {\itshape feature} \mbox{[}$<$$|$$<$=$|$=$|$$>$=$|$$>$ {\itshape version}\mbox{]}} &If the named feature is not already present in Qore, then the {\ttfamily QORE\+\_\+\+MODULE\+\_\+\+DIR} environment variable is used to provide a list of directories to seach for a module with the same name ({\itshape feature}{\ttfamily \mbox{[}-\/api-\/}{\itshape x}{\ttfamily .}{\itshape y}{\ttfamily \mbox{]}.qmod} for binary modules or {\itshape feature}{\ttfamily .qm} for user modules). If the module is not found, then the qore default module directory is checked.~\newline ~\newline This directive must be used to load modules providing parse support (i.\+e. modules providing classes, constants, functions, etc that are resolved at parse time).~\newline ~\newline If version information is provided, then it is compared with the module\textquotesingle{}s version information, and if it does not match a parse exception is raised. ~\newline ~\newline See also \mbox{\hyperlink{group__misc__functions_gaf0922a51e6c5471b02a947cb0cb008ba}{Qore\+::load\+\_\+module()}} for a function providing run-\/time module loading and \mbox{\hyperlink{parse_directives_try-module}{\%try-\/module}} and \mbox{\hyperlink{parse_directives_try-reexport-module}{\%try-\/reexport-\/module}} for a similar parse directive that allows module loading errors to be handled at runtime \\\cline{1-2} \mbox{\hyperlink{parse_directives_set-time-zone}{\%set-\/time-\/zone}} &Sets the time zone for the current program from a UTC offset (with format {\ttfamily \char`\"{}+/-\/\mbox{[}00\mbox{[}\+:00\mbox{[}\+:00\mbox{]}\mbox{]}\char`\"{}}; {\ttfamily \char`\"{}\+:\char`\"{}} characters are optional) or a time zone region name (ex\+: {\ttfamily \char`\"{}\+Europe/\+Prague\char`\"{}}) ~\newline ~\newline Since Qore 0.\+8.\+3 \\\cline{1-2} \mbox{\hyperlink{parse_directives_strict-args}{\%strict-\/args}} &Prohibits access to builtin functions and methods flagged with \mbox{\hyperlink{code_flags_RUNTIME_NOOP}{RUNTIME\+\_\+\+NOOP}} and also causes errors to be raised if excess arguments are given to functions that do not access excess arguments and if a non-\/list lvalue is passed to the \mbox{\hyperlink{operators_push}{Push Operator (push)}}, \mbox{\hyperlink{operators_pop}{Pop Operator (pop)}}, or \mbox{\hyperlink{operators_shift}{Shift Operator (shift)}} ~\newline ~\newline Since Qore 0.\+8.\+0 \\\cline{1-2} \mbox{\hyperlink{parse_directives_strict-bool-eval}{\%strict-\/bool-\/eval}} &Sets qore\textquotesingle{}s default strict mathematic boolean evaluation mode, where any value converted to 0 is \mbox{\hyperlink{basic_data_types_False}{False}} and otherwise it\textquotesingle{}s is \mbox{\hyperlink{basic_data_types_True}{True}}; this was how qore behaved by default prior to v0.\+8.\+6. ~\newline ~\newline Equivalent to parse option \mbox{\hyperlink{group__parse__options_ga2fbe2a73849bb0139d8d228df0e49ea6}{Qore\+::\+PO\+\_\+\+STRICT\+\_\+\+BOOLEAN\+\_\+\+EVAL}} and the {\ttfamily -\/pstrict-\/bool-\/eval} command line option. ~\newline ~\newline See also \mbox{\hyperlink{parse_directives_perl-bool-eval}{\%perl-\/bool-\/eval}}~\newline ~\newline Since Qore 0.\+8.\+6 \\\cline{1-2} \mbox{\hyperlink{parse_directives_strict-types}{\%strict-\/types}} &Sets strict type checking and automatically sets default values for lvalues with type restrictions that have default values \\\cline{1-2} \mbox{\hyperlink{parse_directives_strong-encapsulation}{\%strong-\/encapsulation}} &Disallows out-\/of-\/line class and namespace declarations. ~\newline ~\newline Since Qore 0.\+8.\+13 \\\cline{1-2} \mbox{\hyperlink{parse_directives_try-module}{\%try-\/module}} \mbox{[}(\mbox{\hyperlink{variables_variable_declarations}{var\+\_\+decl}})\mbox{]} {\itshape feature} {\ttfamily \mbox{[}$<$$|$$<$=$|$=$|$$>$=$|$$>$} {\itshape version}{\ttfamily \mbox{]}} &If the named feature is not already present in Qore, then the {\ttfamily QORE\+\_\+\+MODULE\+\_\+\+DIR} environment variable is used to provide a list of directories to seach for a module with the same name ({\itshape feature}{\ttfamily \mbox{[}-\/api-\/}{\itshape x}{\ttfamily .}{\itshape y}{\ttfamily \mbox{]}.qmod} for binary modules or {\itshape feature}{\ttfamily .qm} for user modules). If the module is not found, then the qore default module directory is checked.~\newline ~\newline If an error occurs loading the module, then the \mbox{\hyperlink{variables_variable_declarations}{variable}} declared after {\ttfamily \%try-\/module} is instantiated with the exception information, and the code up to the \mbox{\hyperlink{parse_directives_endtry}{\%endtry}} parse declaration is parsed into the program, allowing for the qore script/program to handle module loading errors at parse time for modules that must be loaded at parse time.~\newline ~\newline If version information is provided, then it is compared with the module\textquotesingle{}s version information, and if it does not match a parse exception is raised that is handled like any other load error.~\newline ~\newline See also \mbox{\hyperlink{group__misc__functions_gaf0922a51e6c5471b02a947cb0cb008ba}{Qore\+::load\+\_\+module()}} for a function providing run-\/time module loading and \mbox{\hyperlink{parse_directives_requires}{\%requires}} for a similar declaration that does not allow for parse-\/time module loading error handling.~\newline ~\newline Since Qore 0.\+8.\+6 \\\cline{1-2} \mbox{\hyperlink{parse_directives_try-reexport-module}{\%try-\/reexport-\/module}} \mbox{[}(\mbox{\hyperlink{variables_variable_declarations}{var\+\_\+decl}})\mbox{]} {\itshape feature} {\ttfamily \mbox{[}$<$$|$$<$=$|$=$|$$>$=$|$$>$} {\itshape version}{\ttfamily \mbox{]}} &The same as \mbox{\hyperlink{parse_directives_try-module}{\%try-\/module}} except that if used in a \mbox{\hyperlink{qore_modules_user_modules}{user module}}, the module is reexported to the importing code$<$br$>$~\newline Since Qore 0.\+8.\+13 \\\cline{1-2} \end{longtabu} \hypertarget{parse_directives_allow-bare-refs}{}\doxysection{\%allow-\/bare-\/refs}\label{parse_directives_allow-bare-refs} \begin{DoxyParagraph}{Parse Directive\+:} {\ttfamily \%allow-\/bare-\/refs} \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} {\ttfamily --allow-\/bare-\/refs, -\/B} \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} \mbox{\hyperlink{group__parse__options_gaa980dd723754782db7b8be9abe77615a}{Qore\+::\+PO\+\_\+\+ALLOW\+\_\+\+BARE\+\_\+\+REFS}} \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} Prohibits the use of the {\ttfamily \char`\"{}\$\char`\"{}} character in variable names, method calls, and object member references. This makes Qore scripts appear superficially more like C++ or Java programs. This parse option is set by default with \mbox{\hyperlink{parse_directives_new-style}{\%new-\/style}} and is the opposite of \mbox{\hyperlink{parse_directives_require-dollar}{\%require-\/dollar}}.~\newline ~\newline Name resolution is made in the following order when this option is set\+: \begin{DoxyItemize} \item \mbox{\hyperlink{variables_variable_declarations}{local variables}} \item \mbox{\hyperlink{qore_classes_class_constants}{class constants}} (when parsing in class code) \item \mbox{\hyperlink{qore_classes_static_class_variables}{static class variables}} (when parsing in class code) \item \mbox{\hyperlink{variables_variable_declarations}{global variables}} \item (non-\/class) \mbox{\hyperlink{constants}{constants}} ~\newline ~\newline \end{DoxyItemize} \end{DoxyParagraph} \begin{DoxyNote}{Note} \begin{DoxyItemize} \item when using this option (or \mbox{\hyperlink{parse_directives_new-style}{\%new-\/style) the lack of {\ttfamily } \$}} characters in variable names makes it necessary to declare local variables before using them \item ref implicit\+\_\+arguments \char`\"{}implicit arguments\char`\"{} are still referenced with the {\ttfamily \char`\"{}\$\char`\"{}} character even when this parse option is set. \end{DoxyItemize} \end{DoxyNote} \begin{DoxySince}{Since} Qore 0.\+8.\+1 \end{DoxySince} \begin{DoxySeeAlso}{See also} \mbox{\hyperlink{parse_directives_require-dollar}{\%require-\/dollar}} \end{DoxySeeAlso} \DoxyHorRuler{0} \hypertarget{parse_directives_allow-debugger}{}\doxysection{\%allow-\/debugger}\label{parse_directives_allow-debugger} \begin{DoxyParagraph}{Parse Directive\+:} {\ttfamily \%allow-\/debugger} \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} n/a \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} \mbox{\hyperlink{group__parse__options_gad0d38cd46f08bf4210d4010204269cc9}{Qore\+::\+PO\+\_\+\+ALLOW\+\_\+\+DEBUGGER}} \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} Allows access to functionality that can be used to debug other \mbox{\hyperlink{class_qore_1_1_program}{Program}} containers. Mainly related to classes\+: \begin{DoxyItemize} \item \mbox{\hyperlink{class_qore_1_1_breakpoint}{Qore\+::\+Breakpoint}} \item \mbox{\hyperlink{class_qore_1_1_debug_program}{Qore\+::\+Debug\+Program}} \item \mbox{\hyperlink{class_qore_1_1_program_control}{Qore\+::\+Program\+Control}} \end{DoxyItemize} \end{DoxyParagraph} \begin{DoxySince}{Since} Qore 0.\+8.\+13 \end{DoxySince} \DoxyHorRuler{0} \hypertarget{parse_directives_allow-injection}{}\doxysection{\%allow-\/injection}\label{parse_directives_allow-injection} \begin{DoxyParagraph}{Parse Directive\+:} {\ttfamily \%allow-\/injection} \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} {\ttfamily -\/pallow-\/injection} \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} \mbox{\hyperlink{group__parse__options_ga1c78ca9bda4b8f5b2ad669c48fe0368d}{Qore\+::\+PO\+\_\+\+ALLOW\+\_\+\+INJECTION}} \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} Allows for code and dependency injections in the given \mbox{\hyperlink{class_qore_1_1_program}{Program}} object. \end{DoxyParagraph} \begin{DoxySeeAlso}{See also} \begin{DoxyItemize} \item \mbox{\hyperlink{class_qore_1_1_program_abf634534cb29157d05aab5ff3ffd6bea}{Qore\+::\+Program\+::import\+Class()}} \item \mbox{\hyperlink{class_qore_1_1_program_a9a2e3da4029c50643169cbb72e57f494}{Qore\+::\+Program\+::import\+Function()}} \item \mbox{\hyperlink{class_qore_1_1_program_a300ffe0abd0b09cc39feb637a9bab9ba}{Qore\+::\+Program\+::load\+Apply\+To\+User\+Module()}} \item \mbox{\hyperlink{class_qore_1_1_program_a88ead6a191a58736b49e794f3220869f}{Qore\+::\+Program\+::load\+User\+Module\+With\+Program()}} \item \mbox{\hyperlink{group__misc__functions_ga59d94b7cc4dfcc6e39030097458b8afe}{Qore\+::load\+\_\+user\+\_\+module\+\_\+with\+\_\+program()}} \end{DoxyItemize} \end{DoxySeeAlso} \begin{DoxySince}{Since} Qore 0.\+8.\+12 \end{DoxySince} \DoxyHorRuler{0} \hypertarget{parse_directives_allow-returns}{}\doxysection{\%allow-\/returns}\label{parse_directives_allow-returns} \begin{DoxyParagraph}{Parse Directive\+:} {\ttfamily \%allow-\/returns} \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} {\ttfamily -\/pallow-\/returns} \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} \mbox{\hyperlink{group__parse__options_ga740012ab51f05f39efc31eab365138e8}{Qore\+::\+PO\+\_\+\+ALLOW\+\_\+\+RETURNS}} \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} Allows the use of the deprecated {\ttfamily returns} keyword. \end{DoxyParagraph} \begin{DoxySince}{Since} Qore 0.\+9.\+4 \end{DoxySince} \DoxyHorRuler{0} \hypertarget{parse_directives_allow-weak-references}{}\doxysection{\%allow-\/weak-\/references}\label{parse_directives_allow-weak-references} \begin{DoxyParagraph}{Parse Directive\+:} {\ttfamily \%allow-\/weak-\/references} \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} {\ttfamily -\/pallow-\/weak-\/references} \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} \mbox{\hyperlink{group__parse__options_ga7cbf296853bb3a9d7cd1cf3a3e9556a5}{Qore\+::\+PO\+\_\+\+ALLOW\+\_\+\+WEAK\+\_\+\+REFERENCES}} \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} Allows the use of the \mbox{\hyperlink{operators_weak_assignment_operator}{weak assignment operator (\+:=)}}. \end{DoxyParagraph} \begin{DoxySeeAlso}{See also} \begin{DoxyItemize} \item \mbox{\hyperlink{operators_weak_assignment_operator}{Weak Reference Assignment Operator (\+:=)}} \end{DoxyItemize} \end{DoxySeeAlso} \begin{DoxySince}{Since} Qore 0.\+8.\+13 \end{DoxySince} \DoxyHorRuler{0} \hypertarget{parse_directives_append-include-path}{}\doxysection{\%append-\/include-\/path}\label{parse_directives_append-include-path} \begin{DoxyParagraph}{Parse Directive\+:} {\ttfamily \%append-\/include-\/path} {\itshape dir1\mbox{[}\+:dir2...\mbox{]}} \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} n/a \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} n/a \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} Appends the given directories to qore\textquotesingle{}s include path; also performs environment variable substitution. Only directories that exist and are readable are added to the include path. \end{DoxyParagraph} \begin{DoxySeeAlso}{See also} \mbox{\hyperlink{parse_directives_append-module-path}{\%append-\/module-\/path}} \end{DoxySeeAlso} \DoxyHorRuler{0} \hypertarget{parse_directives_append-module-path}{}\doxysection{\%append-\/module-\/path}\label{parse_directives_append-module-path} \begin{DoxyParagraph}{Parse Directive\+:} {\ttfamily \%append-\/module-\/path} {\itshape dir1\mbox{[}\+:dir2...\mbox{]}} \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} n/a \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} n/a \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} Appends the given directories to qore\textquotesingle{}s module path; also performs environment variable substitution. Only directories that exist and are readable are added to the module path. \end{DoxyParagraph} \begin{DoxySince}{Since} Qore 0.\+8.\+6 \end{DoxySince} \begin{DoxySeeAlso}{See also} \mbox{\hyperlink{parse_directives_append-include-path}{\%append-\/include-\/path}} \end{DoxySeeAlso} \DoxyHorRuler{0} \hypertarget{parse_directives_assume-global}{}\doxysection{\%assume-\/global}\label{parse_directives_assume-global} \begin{DoxyParagraph}{Parse Directive\+:} {\ttfamily \%assume-\/global} \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} n/a \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} n/a \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} Resets the default Qore behavior of assuming global variable scope when variables are first referenced if no \mbox{\hyperlink{variables_my}{my}} or \mbox{\hyperlink{variables_our}{our}} is present; use after \mbox{\hyperlink{parse_directives_assume-local}{\%assume-\/local}} to reset the default parsing behavior. This parse option is also set with \mbox{\hyperlink{parse_directives_old-style}{\%old-\/style}} \end{DoxyParagraph} \begin{DoxySince}{Since} Qore 0.\+8.\+4 \end{DoxySince} \begin{DoxySeeAlso}{See also} \mbox{\hyperlink{parse_directives_assume-local}{\%assume-\/local}} \end{DoxySeeAlso} \DoxyHorRuler{0} \hypertarget{parse_directives_assume-local}{}\doxysection{\%assume-\/local}\label{parse_directives_assume-local} \begin{DoxyParagraph}{Parse Directive\+:} {\ttfamily \%assume-\/local} \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} {\ttfamily -\/}{\ttfamily -\/assume-\/local} \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} \mbox{\hyperlink{group__parse__options_gac68aaa1c322a68a213b5101265aea716}{Qore\+::\+PO\+\_\+\+ASSUME\+\_\+\+LOCAL}} \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} Assume local variable scope when variables are first referenced if no \mbox{\hyperlink{variables_my}{my}} or \mbox{\hyperlink{variables_our}{our}} is present. When used with \mbox{\hyperlink{parse_directives_allow-bare-refs}{\%allow-\/bare-\/refs}}, local variables without \mbox{\hyperlink{variables_my}{my}} must be declared with a data type restriction (can be any). This parse option is set by default with \mbox{\hyperlink{parse_directives_new-style}{\%new-\/style}} and is the opposite of \mbox{\hyperlink{parse_directives_assume-global}{\%assume-\/global}} \end{DoxyParagraph} \begin{DoxySince}{Since} Qore 0.\+8.\+1 \end{DoxySince} \begin{DoxySeeAlso}{See also} \mbox{\hyperlink{parse_directives_assume-global}{\%assume-\/global}} \end{DoxySeeAlso} \DoxyHorRuler{0} \hypertarget{parse_directives_broken-cast}{}\doxysection{\%broken-\/cast}\label{parse_directives_broken-cast} \begin{DoxyParagraph}{Parse Directive\+:} {\ttfamily \%broken-\/cast} \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} {\ttfamily -\/pbroken-\/cast} \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} \mbox{\hyperlink{group__parse__options_gaad25cc6a2b8ede564839d12622d90398}{Qore\+::\+PO\+\_\+\+BROKEN\+\_\+\+CAST}} \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} Use old pre-\/0.\+9.\+4 broken \mbox{\hyperlink{operators_cast}{cast$<$$>$}} operator handling where \mbox{\hyperlink{basic_data_types_nothing}{NOTHING}} would be accepted without an error \end{DoxyParagraph} \begin{DoxySeeAlso}{See also} \mbox{\hyperlink{parse_directives_correct-cast}{\%correct-\/cast}} \end{DoxySeeAlso} \begin{DoxySince}{Since} Qore 0.\+9.\+4 \end{DoxySince} \DoxyHorRuler{0} \hypertarget{parse_directives_broken-int-assignments}{}\doxysection{\%broken-\/int-\/assignments}\label{parse_directives_broken-int-assignments} \begin{DoxyParagraph}{Parse Directive\+:} {\ttfamily \%broken-\/int-\/assignments} \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} {\ttfamily -\/pbroken-\/int-\/assignments} \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} \mbox{\hyperlink{group__parse__options_ga54b775d7caa51bc86591ff0bb9454463}{Qore\+::\+PO\+\_\+\+BROKEN\+\_\+\+INT\+\_\+\+ASSIGNMENTS}} \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} Use old pre-\/0.\+8.\+12 broken \mbox{\hyperlink{data_type_declarations_int_type}{int}} and \mbox{\hyperlink{data_type_declarations_softint_type}{softint}} runtime handling where type errors were ignored at runtime. \end{DoxyParagraph} \begin{DoxySeeAlso}{See also} \mbox{\hyperlink{parse_directives_correct-int-assignments}{\%correct-\/int-\/assignments}} \end{DoxySeeAlso} \begin{DoxySince}{Since} Qore 0.\+8.\+12 \end{DoxySince} \DoxyHorRuler{0} \hypertarget{parse_directives_broken-list-parsing}{}\doxysection{\%broken-\/list-\/parsing}\label{parse_directives_broken-list-parsing} \begin{DoxyParagraph}{Parse Directive\+:} {\ttfamily \%broken-\/list-\/parsing} \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} {\ttfamily -\/pbroken-\/list-\/parsing} \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} \mbox{\hyperlink{group__parse__options_ga0d64d3a06cb049d7a50bdeaefb236245}{Qore\+::\+PO\+\_\+\+BROKEN\+\_\+\+LIST\+\_\+\+PARSING}} \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} Use old pre-\/0.\+8.\+12 broken list parsing where certain lists without parentheses would be rewritten to make top-\/level statements like {\ttfamily list l = 1, 2, 3;} valid. \end{DoxyParagraph} \begin{DoxySeeAlso}{See also} \mbox{\hyperlink{parse_directives_correct-list-parsing}{\%correct-\/list-\/parsing}} \end{DoxySeeAlso} \begin{DoxySince}{Since} Qore 0.\+8.\+12 \end{DoxySince} \DoxyHorRuler{0} \hypertarget{parse_directives_broken-logic-precedence}{}\doxysection{\%broken-\/logic-\/precedence}\label{parse_directives_broken-logic-precedence} \begin{DoxyParagraph}{Parse Directive\+:} {\ttfamily \%broken-\/logic-\/precedence} \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} {\ttfamily -\/pbroken-\/logic-\/precedence} \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} \mbox{\hyperlink{group__parse__options_ga83f83114a31c6c0367370557650f4ae2}{Qore\+::\+PO\+\_\+\+BROKEN\+\_\+\+LOGIC\+\_\+\+PRECEDENCE}} \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} Use old pre-\/0.\+8.\+12 precedence where the \mbox{\hyperlink{operators_logical_and_operator}{\&\&}} had the same precedence as \mbox{\hyperlink{operators_logical_or_operator}{$\vert$$\vert$}} and all three bitwise operators ( \mbox{\hyperlink{operators_bitwise_and_operator}{\&}}, \mbox{\hyperlink{operators_bitwise_or_operator}{$\vert$}}, \mbox{\hyperlink{operators_bitwise_xor_operator}{$^\wedge$}}) shared the same precedence. \end{DoxyParagraph} An example of impact of \mbox{\hyperlink{parse_directives_broken-logic-precedence}{\%broken-\/logic-\/precedence}} directive\+: \begin{DoxyItemize} \item with \mbox{\hyperlink{parse_directives_broken-logic-precedence}{\%broken-\/logic-\/precedence}}\+: \begin{DoxyCode}{0} \DoxyCodeLine{\mbox{\hyperlink{group__boolean__constants_ga3ba2df91713a6249449347131ea526c3}{True}} \(\backslash\)|\(\backslash\)| \mbox{\hyperlink{group__boolean__constants_ga9da2b9a8003cd3788e48305f8a00540f}{False}} \&\& \mbox{\hyperlink{group__boolean__constants_ga9da2b9a8003cd3788e48305f8a00540f}{False}} = \mbox{\hyperlink{group__boolean__constants_ga9da2b9a8003cd3788e48305f8a00540f}{False}}} \DoxyCodeLine{1 \(\backslash\)| 2 \string^ 3 \& 5 = 0} \end{DoxyCode} \item without \mbox{\hyperlink{parse_directives_broken-logic-precedence}{\%broken-\/logic-\/precedence}} (or with \mbox{\hyperlink{parse_directives_correct-logic-precedence}{\%correct-\/logic-\/precedence}})\+: \begin{DoxyCode}{0} \DoxyCodeLine{\mbox{\hyperlink{group__boolean__constants_ga3ba2df91713a6249449347131ea526c3}{True}} \(\backslash\)|\(\backslash\)| \mbox{\hyperlink{group__boolean__constants_ga9da2b9a8003cd3788e48305f8a00540f}{False}} \&\& \mbox{\hyperlink{group__boolean__constants_ga9da2b9a8003cd3788e48305f8a00540f}{False}} = \mbox{\hyperlink{group__boolean__constants_ga3ba2df91713a6249449347131ea526c3}{True}}} \DoxyCodeLine{1 \(\backslash\)| 2 \string^ 3 \& 5 = 3} \end{DoxyCode} \end{DoxyItemize} \begin{DoxySeeAlso}{See also} \mbox{\hyperlink{parse_directives_correct-logic-precedence}{\%correct-\/logic-\/precedence}} \end{DoxySeeAlso} \begin{DoxySince}{Since} Qore 0.\+8.\+12 \end{DoxySince} \DoxyHorRuler{0} \hypertarget{parse_directives_broken-loop-statement}{}\doxysection{\%broken-\/loop-\/statement}\label{parse_directives_broken-loop-statement} \begin{DoxyParagraph}{Parse Directive\+:} {\ttfamily \%broken-\/loop-\/statement} \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} {\ttfamily -\/}{\ttfamily -\/broken-\/loop-\/statement} \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} \mbox{\hyperlink{group__parse__options_ga80bef77e62dead678bbb426794f5f337}{Qore\+::\+PO\+\_\+\+BROKEN\+\_\+\+LOOP\+\_\+\+STATEMENT}} \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} Use old pre-\/0.\+8.\+13 handling of break/continue\+: continue statements in a switch behave like a break statement, both \mbox{\hyperlink{statements_break}{break}} and \mbox{\hyperlink{statements_continue}{continue}} behave like \mbox{\hyperlink{statements_return}{return}} when used outside of a loop. \end{DoxyParagraph} \begin{DoxySince}{Since} Qore 0.\+8.\+13 \end{DoxySince} \DoxyHorRuler{0} \hypertarget{parse_directives_broken-operators}{}\doxysection{\%broken-\/operators}\label{parse_directives_broken-operators} \begin{DoxyParagraph}{Parse Directive\+:} {\ttfamily \%broken-\/operators} \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} {\ttfamily -\/pbroken-\/operators} \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} \mbox{\hyperlink{group__parse__options_ga6647f2e40ae673ba85d42f9df6199472}{Qore\+::\+PO\+\_\+\+BROKEN\+\_\+\+OPERATORS}} \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} Accept spaces in the following multi-\/character operators for backwards compatibility with Qore before 0.\+8.\+12\+: \begin{DoxyItemize} \item \mbox{\hyperlink{operators_logical_less_than_or_equals_operator}{$<$=}} \item \mbox{\hyperlink{operators_logical_greater_than_or_equals_operator}{$>$=}} \item \mbox{\hyperlink{operators_logical_comparison_operator}{$<$=$>$}} \item \mbox{\hyperlink{operators_logical_absolute_equality_operator}{===}} \item \mbox{\hyperlink{operators_logical_absolute_inequality_operator}{!==}} \item \mbox{\hyperlink{operators_logical_and_operator}{\&\&}} \item \mbox{\hyperlink{operators_logical_or_operator}{$\vert$$\vert$}} \item \mbox{\hyperlink{operators_plus_equals_operator}{+=}} \item \mbox{\hyperlink{operators_minus_equals_operator}{-\/=}} \item \mbox{\hyperlink{operators_and_equals_operator}{\&=}} \item \mbox{\hyperlink{operators_or_equals_operator}{$\vert$=}} \item \mbox{\hyperlink{operators_modulo_equals_operator}{\%=}} \item \mbox{\hyperlink{operators_multiply_equals_operator}{$\ast$=}} \item \mbox{\hyperlink{operators_divide_equals_operator}{/=}} \item \mbox{\hyperlink{operators_xor_equals_operator}{$^\wedge$=}} \item \mbox{\hyperlink{operators_shift_left_equals_operator}{$<$$<$=}} \item \mbox{\hyperlink{operators_shift_right_equals_operator}{$>$$>$=}} \item \mbox{\hyperlink{operators_logical_inequality_operator}{!=}} \item \mbox{\hyperlink{operators_shift_right_operator}{$>$$>$}} \item \mbox{\hyperlink{operators_shift_left_operator}{$<$$<$}} \end{DoxyItemize} \end{DoxyParagraph} For example, when this parse directive is not set, the following is a bug\+: \begin{DoxyCode}{0} \DoxyCodeLine{int i = 1;} \DoxyCodeLine{i+ =4;} \end{DoxyCode} When this parse directive is set; the above code is accepted. \begin{DoxySeeAlso}{See also} \mbox{\hyperlink{parse_directives_correct-operators}{\%correct-\/operators}} \end{DoxySeeAlso} \begin{DoxySince}{Since} Qore 0.\+8.\+12 \end{DoxySince} \DoxyHorRuler{0} \hypertarget{parse_directives_broken-range}{}\doxysection{\%broken-\/range}\label{parse_directives_broken-range} \begin{DoxyParagraph}{Parse Directive\+:} {\ttfamily \%broken-\/range} \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} {\ttfamily -\/}{\ttfamily -\/pbroken-\/range} \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} \mbox{\hyperlink{group__parse__options_ga2366150e3caff6cacf79d83d77cee113}{Qore\+::\+PO\+\_\+\+BROKEN\+\_\+\+RANGE}} \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} Include the upper limit in \mbox{\hyperlink{group__list__functions_gaad3b9056f1b0dfef032d130c7500f517}{range()}} and \mbox{\hyperlink{group__range__functions_gad5b4d3ad3f6c36d2e714bc6ed757a507}{xrange()}} as with Qore before 0.\+9.\+5 \end{DoxyParagraph} \begin{DoxySeeAlso}{See also} \mbox{\hyperlink{parse_directives_correct-range}{\%correct-\/range}} \end{DoxySeeAlso} \begin{DoxySince}{Since} Qore 0.\+9.\+5 \end{DoxySince} \DoxyHorRuler{0} \hypertarget{parse_directives_broken-references}{}\doxysection{\%broken-\/references}\label{parse_directives_broken-references} \begin{DoxyParagraph}{Parse Directive\+:} {\ttfamily \%broken-\/references} \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} {\ttfamily -\/}{\ttfamily -\/pbroken-\/references} \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} \mbox{\hyperlink{group__parse__options_ga889aa80f8ab33266c165478b5fe3c279}{Qore\+::\+PO\+\_\+\+BROKEN\+\_\+\+REFERENCES}} \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} Do not enforce \mbox{\hyperlink{data_type_declarations_reference_type}{reference}} and \mbox{\hyperlink{data_type_declarations_reference_or_nothing_type}{$\ast$reference}} type restrictions as with pre-\/0.\+8.\+13; when this option is in effect, the \mbox{\hyperlink{data_type_declarations_reference_type}{reference}} and \mbox{\hyperlink{data_type_declarations_reference_or_nothing_type}{$\ast$reference}} type restrictions are ignored and have no type restrictions. \end{DoxyParagraph} \begin{DoxySince}{Since} Qore 0.\+8.\+3 \end{DoxySince} \DoxyHorRuler{0} \hypertarget{parse_directives_broken-sprintf}{}\doxysection{\%broken-\/sprintf}\label{parse_directives_broken-sprintf} \begin{DoxyParagraph}{Parse Directive\+:} {\ttfamily \%broken-\/sprintf} \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} {\ttfamily -\/}{\ttfamily -\/pbroken-\/sprintf} \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} \mbox{\hyperlink{group__parse__options_ga46fa5284de5681ab4c8e8cb842f35fff}{Qore\+::\+PO\+\_\+\+BROKEN\+\_\+\+SPRINTF}} \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} Use pre-\/0.\+9 sprintf format handling where no argument is handled differently than \mbox{\hyperlink{basic_data_types_nothing}{NOTHING}} \end{DoxyParagraph} \begin{DoxySeeAlso}{See also} \mbox{\hyperlink{parse_directives_correct-sprintf}{\%correct-\/sprintf}} \end{DoxySeeAlso} \begin{DoxySince}{Since} Qore 0.\+9 \end{DoxySince} \DoxyHorRuler{0} \hypertarget{parse_directives_correct-cast}{}\doxysection{\%correct-\/cast}\label{parse_directives_correct-cast} \begin{DoxyParagraph}{Parse Directive\+:} n/a \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} n/a \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} n/a \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} Reverts the effect of the \mbox{\hyperlink{parse_directives_broken-cast}{\%broken-\/cast}} parse option. \end{DoxyParagraph} \begin{DoxySeeAlso}{See also} \mbox{\hyperlink{parse_directives_broken-cast}{\%broken-\/cast}} \end{DoxySeeAlso} \begin{DoxySince}{Since} Qore 0.\+9.\+4 \end{DoxySince} \DoxyHorRuler{0} \hypertarget{parse_directives_correct-int-assignments}{}\doxysection{\%correct-\/int-\/assignments}\label{parse_directives_correct-int-assignments} \begin{DoxyParagraph}{Parse Directive\+:} n/a \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} n/a \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} n/a \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} Reverts the effect of the \mbox{\hyperlink{parse_directives_broken-int-assignments}{\%broken-\/int-\/assignments}} parse option. \end{DoxyParagraph} \begin{DoxySeeAlso}{See also} \mbox{\hyperlink{parse_directives_broken-int-assignments}{\%broken-\/int-\/assignments}} \end{DoxySeeAlso} \begin{DoxySince}{Since} Qore 0.\+8.\+12.\+10 \end{DoxySince} \DoxyHorRuler{0} \hypertarget{parse_directives_correct-list-parsing}{}\doxysection{\%correct-\/list-\/parsing}\label{parse_directives_correct-list-parsing} \begin{DoxyParagraph}{Parse Directive\+:} n/a \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} n/a \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} n/a \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} Reverts the effect of the \mbox{\hyperlink{parse_directives_broken-list-parsing}{\%broken-\/list-\/parsing}} parse option. \end{DoxyParagraph} \begin{DoxySeeAlso}{See also} \mbox{\hyperlink{parse_directives_broken-list-parsing}{\%broken-\/list-\/parsing}} \end{DoxySeeAlso} \begin{DoxySince}{Since} Qore 0.\+8.\+12.\+10 \end{DoxySince} \DoxyHorRuler{0} \hypertarget{parse_directives_correct-logic-precedence}{}\doxysection{\%correct-\/logic-\/precedence}\label{parse_directives_correct-logic-precedence} \begin{DoxyParagraph}{Parse Directive\+:} n/a \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} n/a \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} n/a \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} Reverts the effect of the \mbox{\hyperlink{parse_directives_broken-logic-precedence}{\%broken-\/logic-\/precedence}} parse option. \end{DoxyParagraph} \begin{DoxySeeAlso}{See also} \mbox{\hyperlink{parse_directives_broken-logic-precedence}{\%broken-\/logic-\/precedence}} \end{DoxySeeAlso} \begin{DoxySince}{Since} Qore 0.\+8.\+12.\+10 \end{DoxySince} \DoxyHorRuler{0} \hypertarget{parse_directives_correct-loop-statement}{}\doxysection{\%correct-\/loop-\/statement}\label{parse_directives_correct-loop-statement} \begin{DoxyParagraph}{Parse Directive\+:} {\ttfamily \%correct-\/loop-\/statement} \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} n/a \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} n/a \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} Reverts the effect of the \mbox{\hyperlink{parse_directives_broken-loop-statement}{\%broken-\/loop-\/statement}} parse option. \end{DoxyParagraph} \begin{DoxySeeAlso}{See also} \mbox{\hyperlink{parse_directives_broken-loop-statement}{\%broken-\/loop-\/statement}} \end{DoxySeeAlso} \begin{DoxySince}{Since} Qore 0.\+8.\+13 \end{DoxySince} \DoxyHorRuler{0} \hypertarget{parse_directives_correct-operators}{}\doxysection{\%correct-\/operators}\label{parse_directives_correct-operators} \begin{DoxyParagraph}{Parse Directive\+:} {\ttfamily \%correct-\/operators} \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} n/a \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} n/a \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} Reverts the effect of the \mbox{\hyperlink{parse_directives_broken-operators}{\%broken-\/operators}} parse option. \end{DoxyParagraph} \begin{DoxySeeAlso}{See also} \mbox{\hyperlink{parse_directives_broken-operators}{\%broken-\/operators}} \end{DoxySeeAlso} \begin{DoxySince}{Since} Qore 0.\+8.\+12.\+10 \end{DoxySince} \DoxyHorRuler{0} \hypertarget{parse_directives_correct-range}{}\doxysection{\%correct-\/range}\label{parse_directives_correct-range} \begin{DoxyParagraph}{Parse Directive\+:} {\ttfamily \%correct-\/range} \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} n/a \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} n/a \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} Reverts the effect of the \mbox{\hyperlink{parse_directives_broken-range}{\%broken-\/range}} parse option. \end{DoxyParagraph} \begin{DoxySeeAlso}{See also} \mbox{\hyperlink{parse_directives_broken-range}{\%broken-\/range}} \end{DoxySeeAlso} \begin{DoxySince}{Since} Qore 0.\+9.\+5 \end{DoxySince} \DoxyHorRuler{0} \hypertarget{parse_directives_correct-references}{}\doxysection{\%correct-\/references}\label{parse_directives_correct-references} \begin{DoxyParagraph}{Parse Directive\+:} {\ttfamily \%correct-\/references} \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} n/a \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} n/a \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} Reverts the effect of the \mbox{\hyperlink{parse_directives_broken-references}{\%broken-\/references}} parse option. \end{DoxyParagraph} \begin{DoxySeeAlso}{See also} \mbox{\hyperlink{parse_directives_broken-references}{\%broken-\/references}} \end{DoxySeeAlso} \begin{DoxySince}{Since} Qore 0.\+8.\+13 \end{DoxySince} \DoxyHorRuler{0} \hypertarget{parse_directives_correct-sprintf}{}\doxysection{\%correct-\/sprintf}\label{parse_directives_correct-sprintf} \begin{DoxyParagraph}{Parse Directive\+:} {\ttfamily \%correct-\/sprintf} \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} n/a \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} n/a \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} Reverts the effect of the \mbox{\hyperlink{parse_directives_broken-sprintf}{\%broken-\/sprintf}} parse option. \end{DoxyParagraph} \begin{DoxySeeAlso}{See also} \mbox{\hyperlink{parse_directives_broken-sprintf}{\%broken-\/sprintf}} \end{DoxySeeAlso} \begin{DoxySince}{Since} Qore 0.\+9 \end{DoxySince} \DoxyHorRuler{0} \hypertarget{parse_directives_define}{}\doxysection{\%define}\label{parse_directives_define} \begin{DoxyParagraph}{Parse Directive\+:} {\ttfamily \%define} \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} {\ttfamily -\/}{\ttfamily -\/define, -\/D} \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} n/a \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} Creates and optionally sets a value for a \mbox{\hyperlink{conditional_parsing}{parse define}} \end{DoxyParagraph} \begin{DoxySince}{Since} Qore 0.\+8.\+3 \end{DoxySince} \DoxyHorRuler{0} \hypertarget{parse_directives_disable-all-warnings}{}\doxysection{\%disable-\/all-\/warnings}\label{parse_directives_disable-all-warnings} \begin{DoxyParagraph}{Parse Directive\+:} {\ttfamily \%disable-\/all-\/warnings} \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} n/a, warnings are disabled by default \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} n/a \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} Disables all warnings while parsing. See \mbox{\hyperlink{warnings}{Warnings}} for more information. \end{DoxyParagraph} \DoxyHorRuler{0} \hypertarget{parse_directives_disable-warning}{}\doxysection{\%disable-\/warning}\label{parse_directives_disable-warning} \begin{DoxyParagraph}{Parse Directive\+:} {\ttfamily \%disable-\/warning} \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} n/a, warnings are disabled by default \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} n/a \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} Disables the named warning while parsing. See \mbox{\hyperlink{warnings}{Warnings}} for more information. \end{DoxyParagraph} \DoxyHorRuler{0} \hypertarget{parse_directives_else}{}\doxysection{\%else}\label{parse_directives_else} \begin{DoxyParagraph}{Parse Directive\+:} {\ttfamily \%else} \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} n/a \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} n/a \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} Allows for parsing an alternate block when used with the \mbox{\hyperlink{parse_directives_ifdef}{\%ifdef}} or \mbox{\hyperlink{parse_directives_ifndef}{\%ifndef}} parse directives (for \mbox{\hyperlink{conditional_parsing}{conditional parsing}} based on parse defines) \end{DoxyParagraph} \begin{DoxySince}{Since} Qore 0.\+8.\+3 \end{DoxySince} \DoxyHorRuler{0} \hypertarget{parse_directives_enable-all-warnings}{}\doxysection{\%enable-\/all-\/warnings}\label{parse_directives_enable-all-warnings} \begin{DoxyParagraph}{Parse Directive\+:} {\ttfamily \%enable-\/all-\/warnings} \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} {\ttfamily -\/}{\ttfamily -\/enable-\/all-\/warnings, -\/W} \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} n/a \end{DoxyParagraph} \begin{DoxyParagraph}{Description} Enables all warnings while parsing. See \mbox{\hyperlink{warnings}{Warnings}} for more information. \end{DoxyParagraph} \DoxyHorRuler{0} \hypertarget{parse_directives_enable-warning}{}\doxysection{\%enable-\/warning}\label{parse_directives_enable-warning} \begin{DoxyParagraph}{Parse Directive\+:} {\ttfamily \%enable-\/warning} \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} {\ttfamily -\/}{\ttfamily -\/enable-\/warning, -\/w} \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} n/a \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} Enables the named warning while parsing. See \mbox{\hyperlink{warnings}{Warnings}} for more information. \end{DoxyParagraph} \DoxyHorRuler{0} \hypertarget{parse_directives_endif}{}\doxysection{\%endif}\label{parse_directives_endif} \begin{DoxyParagraph}{Parse Directive\+:} {\ttfamily \%endif} \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} n/a \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} n/a \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} Closes a conditionally-\/parsed block started by the \mbox{\hyperlink{parse_directives_ifdef}{\%ifdef}} or \mbox{\hyperlink{parse_directives_ifndef}{\%ifndef}} parse directives (for \mbox{\hyperlink{conditional_parsing}{conditional parsing}} based on parse defines) \end{DoxyParagraph} \begin{DoxySince}{Since} Qore 0.\+8.\+3 \end{DoxySince} \DoxyHorRuler{0} \hypertarget{parse_directives_endtry}{}\doxysection{\%endtry}\label{parse_directives_endtry} \begin{DoxyParagraph}{Parse Directive\+:} {\ttfamily \%endtry} \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} n/a \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} n/a \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} Closes a \mbox{\hyperlink{parse_directives_try-module}{\%try-\/module}} or \mbox{\hyperlink{parse_directives_try-reexport-module}{\%try-\/reexport-\/module}} block \end{DoxyParagraph} \begin{DoxySince}{Since} Qore 0.\+8.\+6 \end{DoxySince} \DoxyHorRuler{0} \hypertarget{parse_directives_exec-class}{}\doxysection{\%exec-\/class}\label{parse_directives_exec-class} \begin{DoxyParagraph}{Parse Directive\+:} {\ttfamily \%exec-\/class} \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} {\ttfamily -\/}{\ttfamily -\/exec-\/class, -\/x} \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} n/a \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} Executes the named class as the application class and turns on \mbox{\hyperlink{parse_directives_no-top-level}{\%no-\/top-\/level}} as well. Any top level statements before this directive are silently ignored. \end{DoxyParagraph} \begin{DoxySeeAlso}{See also} \mbox{\hyperlink{group__misc__functions_ga51444e624e7ba2b2ecfb45dd49e6db42}{Qore\+::set\+\_\+return\+\_\+value()}} \end{DoxySeeAlso} \DoxyHorRuler{0} \hypertarget{parse_directives_ifdef}{}\doxysection{\%ifdef}\label{parse_directives_ifdef} \begin{DoxyParagraph}{Parse Directive\+:} {\ttfamily \%ifdef} \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} n/a \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} n/a \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} Opens a conditionally-\/parsed block; if the given \mbox{\hyperlink{conditional_parsing}{parse define}} is defined, then the block after the {\ttfamily \%ifdef} is parsed until either an \mbox{\hyperlink{parse_directives_else}{\%else}} or an \mbox{\hyperlink{parse_directives_endif}{\%endif}} \end{DoxyParagraph} \begin{DoxySince}{Since} Qore 0.\+8.\+3 \end{DoxySince} \DoxyHorRuler{0} \hypertarget{parse_directives_ifndef}{}\doxysection{\%ifndef}\label{parse_directives_ifndef} \begin{DoxyParagraph}{Parse Directive\+:} {\ttfamily \%ifndef} \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} n/a \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} n/a \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} Opens a conditionally-\/parsed block; if the given \mbox{\hyperlink{conditional_parsing}{parse define}} is not defined, then the block after the {\ttfamily \%ifndef} is parsed until either an \mbox{\hyperlink{parse_directives_else}{\%else}} or an \mbox{\hyperlink{parse_directives_endif}{\%endif}} \end{DoxyParagraph} \begin{DoxySince}{Since} Qore 0.\+8.\+3 \end{DoxySince} \DoxyHorRuler{0} \hypertarget{parse_directives_include}{}\doxysection{\%include}\label{parse_directives_include} \begin{DoxyParagraph}{Parse Directive\+:} {\ttfamily \%include} \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} n/a \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} n/a \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} Includes a file to be parsed. If the path is not absolute (i.\+e. starting with {\ttfamily \char`\"{}\char`\"{}/"{}}), then files are searched first in the directory of the currently-\/executing script (if known), then in each path in the environment variable {\ttfamily QORE\+\_\+\+INCLUDE\+\_\+\+DIR}.~\newline If the first character of the include target is {\ttfamily \textquotesingle{}\$\textquotesingle{}}, then environment variable substitution is performed on the leading environment variable \end{DoxyParagraph} \begin{DoxySince}{Since} Qore 0.\+8.\+9 added environment variable substitution \end{DoxySince} \DoxyHorRuler{0} \hypertarget{parse_directives_lockdown}{}\doxysection{\%lockdown}\label{parse_directives_lockdown} \begin{DoxyParagraph}{Parse Directive\+:} {\ttfamily \%lockdown} \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} {\ttfamily -\/}{\ttfamily -\/lockdown} \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} \mbox{\hyperlink{group__parse__options_ga32ca9503dd181920af97c058d9bd1164}{Qore\+::\+PO\+\_\+\+LOCKDOWN}} \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} The most restrictive parse restriction, making any external access, threading, i/o, etc illegal. Made up of \mbox{\hyperlink{parse_directives_no-external-access}{\%no-\/external-\/access}}, \mbox{\hyperlink{parse_directives_no-threads}{\%no-\/threads}}, and \mbox{\hyperlink{parse_directives_no-io}{\%no-\/io}} \end{DoxyParagraph} \DoxyHorRuler{0} \hypertarget{parse_directives_lock-options}{}\doxysection{\%lock-\/options}\label{parse_directives_lock-options} \begin{DoxyParagraph}{Parse Directive\+:} {\ttfamily \%lock-\/options} \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} {\ttfamily -\/}{\ttfamily -\/lock-\/options, -\/K} \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} n/a \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} Prohibits further changes to parse options. \end{DoxyParagraph} \DoxyHorRuler{0} \hypertarget{parse_directives_lock-warnings}{}\doxysection{\%lock-\/warnings}\label{parse_directives_lock-warnings} \begin{DoxyParagraph}{Parse Directive\+:} {\ttfamily \%lock-\/warnings} \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} {\ttfamily -\/}{\ttfamily -\/lock-\/warnings, -\/A} \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} \mbox{\hyperlink{group__parse__options_ga1d039ccd02b93ddb1d5c8a7c1470167b}{Qore\+::\+PO\+\_\+\+LOCK\+\_\+\+WARNINGS}} \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} Prohibits further changes to the warning mask. \end{DoxyParagraph} \DoxyHorRuler{0} \hypertarget{parse_directives_loose-args}{}\doxysection{\%loose-\/args}\label{parse_directives_loose-args} \begin{DoxyParagraph}{Parse Directive\+:} {\ttfamily \%loose-\/args} \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} n/a \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} n/a \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} Reverts the effect of the \mbox{\hyperlink{parse_directives_strict-args}{\%strict-\/args}} parse option. \end{DoxyParagraph} \begin{DoxySeeAlso}{See also} \mbox{\hyperlink{parse_directives_loose-args}{\%loose-\/args}} \end{DoxySeeAlso} \DoxyHorRuler{0} \hypertarget{parse_directives_loose-types}{}\doxysection{\%loose-\/types}\label{parse_directives_loose-types} \begin{DoxyParagraph}{Parse Directive\+:} {\ttfamily \%loose-\/types} \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} n/a \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} Reverts the effect of the \mbox{\hyperlink{parse_directives_strict-types}{\%strict-\/types}} parse option. \end{DoxyParagraph} \begin{DoxySeeAlso}{See also} strict-\/types \char`\"{}\%strict-\/types\char`\"{} \end{DoxySeeAlso} \begin{DoxySince}{Since} Qore 0.\+9.\+4 \end{DoxySince} \DoxyHorRuler{0} \hypertarget{parse_directives_new-style}{}\doxysection{\%new-\/style}\label{parse_directives_new-style} \begin{DoxyParagraph}{Parse Directive\+:} {\ttfamily \%new-\/style} \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} {\ttfamily -\/}{\ttfamily -\/new-\/style, -\/n} \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} \mbox{\hyperlink{group__parse__options_ga2d794c7a304d97cae92a819b1aa21e15}{Qore\+::\+PO\+\_\+\+NEW\+\_\+\+STYLE}} \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} Sets both \mbox{\hyperlink{parse_directives_allow-bare-refs}{\%allow-\/bare-\/refs}} and \mbox{\hyperlink{parse_directives_assume-local}{\%assume-\/local}}. These two options together make programming in Qore superficially more like programming in C++ or Java programs; use this if you dislike programming with the {\ttfamily \char`\"{}\$\char`\"{}} sign, for example. \end{DoxyParagraph} \begin{DoxySeeAlso}{See also} \mbox{\hyperlink{parse_directives_old-style}{\%old-\/style}} \end{DoxySeeAlso} \begin{DoxyNote}{Note} \begin{DoxyItemize} \item Qore is moving toward establishing \mbox{\hyperlink{parse_directives_new-style}{\%new-\/style}} as the default syntax; all examples given in the Qore documentation are given assuming \mbox{\hyperlink{parse_directives_new-style}{\%new-\/style}}. \item when using this option (or \mbox{\hyperlink{parse_directives_allow-bare-refs}{\%allow-\/bare-\/refs) the lack of {\ttfamily } \$}} characters in variable names makes it necessary to declare local variables before using them \end{DoxyItemize} \end{DoxyNote} \begin{DoxySince}{Since} Qore 0.\+8.\+1 \end{DoxySince} \DoxyHorRuler{0} \hypertarget{parse_directives_old-style}{}\doxysection{\%old-\/style}\label{parse_directives_old-style} \begin{DoxyParagraph}{Parse Directive\+:} {\ttfamily \%old-\/style} \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} n/a \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} n/a \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} Resets default Qore parsing behavior by setting \mbox{\hyperlink{parse_directives_require-dollar}{\%require-\/dollar}} and \mbox{\hyperlink{parse_directives_assume-global}{\%assume-\/global}}; this option has the opposite effect of \mbox{\hyperlink{parse_directives_new-style}{\%new-\/style}} \end{DoxyParagraph} \begin{DoxySeeAlso}{See also} \mbox{\hyperlink{parse_directives_new-style}{\%new-\/style}} \end{DoxySeeAlso} \begin{DoxySince}{Since} Qore 0.\+8.\+4 \end{DoxySince} \DoxyHorRuler{0} \hypertarget{parse_directives_no-debugging}{}\doxysection{\%no-\/debugging}\label{parse_directives_no-debugging} \begin{DoxyParagraph}{Parse Directive\+:} {\ttfamily \%no-\/debugging} \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} n/a \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} \mbox{\hyperlink{group__parse__options_ga36ecb26e0659608fc8d35bf9c9a3b5b2}{Qore\+::\+PO\+\_\+\+NO\+\_\+\+DEBUGGING}} \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} Forbids debugging of the current \mbox{\hyperlink{class_qore_1_1_program}{Program}} object; when this parse option is set, debuggers cannot attach to the \mbox{\hyperlink{class_qore_1_1_program}{Program}} object. \end{DoxyParagraph} \begin{DoxySince}{Since} Qore 0.\+8.\+13 \end{DoxySince} \DoxyHorRuler{0} \hypertarget{parse_directives_no-child-restrictions}{}\doxysection{\%no-\/child-\/restrictions}\label{parse_directives_no-child-restrictions} \begin{DoxyParagraph}{Parse Directive\+:} {\ttfamily \%no-\/child-\/restrictions} \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} {\ttfamily -\/}{\ttfamily -\/no-\/child-\/restrictions, -\/I} \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} \mbox{\hyperlink{group__parse__options_gaa567ec1170360b9ca111402c5179109f}{Qore\+::\+PO\+\_\+\+NO\+\_\+\+CHILD\+\_\+\+PO\+\_\+\+RESTRICTIONS}} \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} Allows child program objects to have parse option restrictions that are not a strict subset of the parents\textquotesingle{}. \end{DoxyParagraph} \DoxyHorRuler{0} \hypertarget{parse_directives_no-class-defs}{}\doxysection{\%no-\/class-\/defs}\label{parse_directives_no-class-defs} \begin{DoxyParagraph}{Parse Directive\+:} {\ttfamily \%no-\/class-\/defs} \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} {\ttfamily -\/}{\ttfamily -\/no-\/class-\/defs} \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} \mbox{\hyperlink{group__parse__options_ga969ab84c1a550482cbc6d24e878172e9}{Qore\+::\+PO\+\_\+\+NO\+\_\+\+CLASS\+\_\+\+DEFS}} \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} Disallows new class definitions. Any use of the reserved word {\ttfamily class} will result in a parse exception. \end{DoxyParagraph} \DoxyHorRuler{0} \hypertarget{parse_directives_no-constant-defs}{}\doxysection{\%no-\/constant-\/defs}\label{parse_directives_no-constant-defs} \begin{DoxyParagraph}{Parse Directive\+:} {\ttfamily \%no-\/constant-\/defs} \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} {\ttfamily -\/}{\ttfamily -\/no-\/constant-\/defs} \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} \mbox{\hyperlink{group__parse__options_ga50a8caec03edae3600565a456c1f9c7e}{Qore\+::\+PO\+\_\+\+NO\+\_\+\+CONSTANT\+\_\+\+DEFS}} \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} Disallows new constant definitions. Any use of the reserved word {\ttfamily const} will result in a parse exception. \end{DoxyParagraph} \DoxyHorRuler{0} \hypertarget{parse_directives_no-database}{}\doxysection{\%no-\/database}\label{parse_directives_no-database} \begin{DoxyParagraph}{Parse Directive\+:} {\ttfamily \%no-\/database} \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} {\ttfamily -\/}{\ttfamily -\/no-\/database} \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} \mbox{\hyperlink{group__parse__options_gac496a9d9bcf9d5c626c8c267c73a83bc}{Qore\+::\+PO\+\_\+\+NO\+\_\+\+DATABASE}} \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} Disallows access to database functionality. Currently this means that access to the following classes is restricted\+: \begin{DoxyItemize} \item \mbox{\hyperlink{class_qore_1_1_s_q_l_1_1_datasource}{Qore\+::\+SQL\+::\+Datasource}} \item \mbox{\hyperlink{class_qore_1_1_s_q_l_1_1_datasource_pool}{Qore\+::\+SQL\+::\+Datasource\+Pool}} \item \mbox{\hyperlink{class_qore_1_1_s_q_l_1_1_s_q_l_statement}{Qore\+::\+SQL\+::\+SQLStatement}} \end{DoxyItemize} \end{DoxyParagraph} \DoxyHorRuler{0} \hypertarget{parse_directives_no-external-access}{}\doxysection{\%no-\/external-\/access}\label{parse_directives_no-external-access} \begin{DoxyParagraph}{Parse Directive\+:} {\ttfamily \%no-\/external-\/access} \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} {\ttfamily -\/}{\ttfamily -\/no-\/external-\/access} \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} \mbox{\hyperlink{group__parse__options_ga10aefe54a313d86a87fedc46820ffb02}{Qore\+::\+PO\+\_\+\+NO\+\_\+\+EXTERNAL\+\_\+\+ACCESS}} \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} This option is made up of \mbox{\hyperlink{parse_directives_no-process-control}{\%no-\/process-\/control}}, \mbox{\hyperlink{parse_directives_no-network}{\%no-\/network}}, \mbox{\hyperlink{parse_directives_no-filesystem}{\%no-\/filesystem}}, \mbox{\hyperlink{parse_directives_no-database}{\%no-\/database}}, \mbox{\hyperlink{parse_directives_no-external-info}{\%no-\/external-\/info}}, \mbox{\hyperlink{parse_directives_no-modules}{\%no-\/modules}}, and \mbox{\hyperlink{parse_directives_no-uncontrolled-apis}{\%no-\/uncontrolled-\/apis}} \end{DoxyParagraph} \begin{DoxySeeAlso}{See also} \mbox{\hyperlink{parse_directives_lockdown}{\%lockdown}} \end{DoxySeeAlso} \DoxyHorRuler{0} \hypertarget{parse_directives_no-external-info}{}\doxysection{\%no-\/external-\/info}\label{parse_directives_no-external-info} \begin{DoxyParagraph}{Parse Directive\+:} {\ttfamily \%no-\/external-\/info} \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} {\ttfamily -\/}{\ttfamily -\/no-\/external-\/info} \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} \mbox{\hyperlink{group__parse__options_ga213aab826b55076c29ffeecebbaea237}{Qore\+::\+PO\+\_\+\+NO\+\_\+\+EXTERNAL\+\_\+\+INFO}} \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} Disallows any access to functionality that provides external information. The following features are unavailable with this option\+: \begin{DoxyItemize} \item getaddrinfo() \item getegid() \item \mbox{\hyperlink{group__env__functions_gace276d74dd56457b85b1382d71fcf041}{getenv()}} \item geteuid() \item getgid() \item getgrgid() \item getgrgid2() \item getgrnam() \item getgrnam2() \item getgroups() \item gethostbyaddr() \item gethostbyaddr\+\_\+long() \item gethostbyname() \item gethostbyname\+\_\+long() \item gethostname() \item getpid() \item getppid() \item getpwnam() \item getpwnam2() \item getpwuid() \item getpwuid2() \item getuid() \item \mbox{\hyperlink{group__env__functions_ga9ed7b7400e10b55f434d2cbc9ba18282}{unsetenv()}} \end{DoxyItemize} \end{DoxyParagraph} \DoxyHorRuler{0} \hypertarget{parse_directives_no-external-process}{}\doxysection{\%no-\/external-\/process}\label{parse_directives_no-external-process} \begin{DoxyParagraph}{Parse Directive\+:} {\ttfamily \%no-\/external-\/process} \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} {\ttfamily -\/}{\ttfamily -\/no-\/external-\/process, -\/E} \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} \mbox{\hyperlink{group__parse__options_gaab2d8faa88f066837e100152187e6368}{Qore\+::\+PO\+\_\+\+NO\+\_\+\+EXTERNAL\+\_\+\+PROCESS}} \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} Disallows any access to external processes. The following features are unavailable with this option\+: \begin{DoxyItemize} \item \mbox{\hyperlink{operators_backquote_operator}{backquote operator}} \item system() \item kill() \item exec() \item \mbox{\hyperlink{group__misc__functions_gaee11d366f841cd34c9aa6ac8c7c49577}{backquote()}} \end{DoxyItemize} \end{DoxyParagraph} \DoxyHorRuler{0} \hypertarget{parse_directives_no-filesystem}{}\doxysection{\%no-\/filesystem}\label{parse_directives_no-filesystem} \begin{DoxyParagraph}{Parse Directive\+:} {\ttfamily \%no-\/filesystem} \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} {\ttfamily -\/}{\ttfamily -\/no-\/filesystem, -\/F} \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} \mbox{\hyperlink{group__parse__options_ga5e466ed886222f0b57b0a399b455be71}{Qore\+::\+PO\+\_\+\+NO\+\_\+\+FILESYSTEM}} \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} Disallows any access to the external filesystem. The following features are unavailable with this option\+: \begin{DoxyItemize} \item \mbox{\hyperlink{class_qore_1_1_dir}{Qore\+::\+Dir}} \item \mbox{\hyperlink{class_qore_1_1_file}{Qore\+::\+File}} \item \mbox{\hyperlink{class_qore_1_1_read_only_file_a123af27d4453ee6dd5eb8d78057aab17}{Qore\+::\+File\+::hstat(string)}} \item \mbox{\hyperlink{class_qore_1_1_read_only_file_aa0e7a9d95c754b065ed043810bd32b33}{Qore\+::\+File\+::hlstat(string)}} \item \mbox{\hyperlink{class_qore_1_1_read_only_file_a62ad0f18f4c04543040b67f0e522bc46}{Qore\+::\+File\+::lstat(string)}} \item \mbox{\hyperlink{class_qore_1_1_read_only_file_a68c3b90578473bfa037039b13d154f98}{Qore\+::\+File\+::stat(string)}} \item \mbox{\hyperlink{class_qore_1_1_read_only_file_ad97d4a73c3b5bb3092a3512b5b980ceb}{Qore\+::\+File\+::statvfs(string)}} \item \mbox{\hyperlink{class_qore_1_1_ftp_client_a2b06a66db173df6bac61b1af48c7a11c}{Qore\+::\+Ftp\+Client\+::get()}} \item \mbox{\hyperlink{class_qore_1_1_ftp_client_a835c52e32ee089773d48574f297e7965}{Qore\+::\+Ftp\+Client\+::put()}} \item chdir() \item chmod() \item chown() \item getcwd() \item getcwd2() \item glob() \item hlstat() \item hstat() \item is\+\_\+bdev() \item is\+\_\+cdev() \item is\+\_\+dev() \item is\+\_\+dir() \item is\+\_\+executable() \item is\+\_\+file() \item is\+\_\+link() \item is\+\_\+pipe() \item is\+\_\+readable() \item is\+\_\+socket() \item is\+\_\+writable() \item is\+\_\+writeable() \item lchown() \item lstat() \item mkdir() \item mkfifo() \item readlink() \item rename() \item rmdir() \item stat() \item statvfs() \item unlink() \end{DoxyItemize} \end{DoxyParagraph} \DoxyHorRuler{0} \hypertarget{parse_directives_no-global-vars}{}\doxysection{\%no-\/global-\/vars}\label{parse_directives_no-global-vars} \begin{DoxyParagraph}{Parse Directive\+:} {\ttfamily \%no-\/global-\/vars} \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} {\ttfamily -\/}{\ttfamily -\/no-\/global-\/vars, -\/G} \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} \mbox{\hyperlink{group__parse__options_ga00fcb14e17ebe9073cc0b768c276cf64}{Qore\+::\+PO\+\_\+\+NO\+\_\+\+GLOBAL\+\_\+\+VARS}} \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} Disallows the use of global variables. \end{DoxyParagraph} \DoxyHorRuler{0} \hypertarget{parse_directives_no-gui}{}\doxysection{\%no-\/gui}\label{parse_directives_no-gui} \begin{DoxyParagraph}{Parse Directive\+:} {\ttfamily \%no-\/gui} \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} {\ttfamily -\/}{\ttfamily -\/no-\/gui, --set-\/parse-\/option=no-\/gui, -\/pno-\/gui} \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} \mbox{\hyperlink{group__parse__options_ga005117c783de66a8635beead079f52bd}{Qore\+::\+PO\+\_\+\+NO\+\_\+\+GUI}} \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} Disallows the use of functionality that draws graphics to the display (this functionality is not implemented in the qore library; only implemented in modules). \end{DoxyParagraph} \DoxyHorRuler{0} \hypertarget{parse_directives_no-io}{}\doxysection{\%no-\/io}\label{parse_directives_no-io} \begin{DoxyParagraph}{Parse Directive\+:} {\ttfamily \%no-\/io} \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} {\ttfamily -\/}{\ttfamily -\/no-\/io, --set-\/parse-\/option=no-\/io, -\/pno-\/io} \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} \mbox{\hyperlink{group__parse__options_gabcd4198285f25da13a5883006f06a2b7}{Qore\+::\+PO\+\_\+\+NO\+\_\+\+IO}} \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} Made up of \mbox{\hyperlink{parse_directives_no-gui}{\%no-\/gui}} $\vert$ \mbox{\hyperlink{parse_directives_no-terminal-io}{\%no-\/terminal-\/io}} $\vert$ \mbox{\hyperlink{parse_directives_no-filesystem}{\%no-\/filesystem}} $\vert$ \mbox{\hyperlink{parse_directives_no-network}{\%no-\/network}} $\vert$ \mbox{\hyperlink{parse_directives_no-database}{\%no-\/database}} $\vert$ \mbox{\hyperlink{parse_directives_no-uncontrolled-apis}{\%no-\/uncontrolled-\/apis}} \end{DoxyParagraph} \DoxyHorRuler{0} \hypertarget{parse_directives_no-locale-control}{}\doxysection{\%no-\/locale-\/control}\label{parse_directives_no-locale-control} \begin{DoxyParagraph}{Parse Directive\+:} {\ttfamily \%no-\/locale-\/control} \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} {\ttfamily -\/}{\ttfamily -\/no-\/locale-\/control, -\/P} \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} \mbox{\hyperlink{group__parse__options_ga99046cc8285fb26438508cdf29b5771e}{Qore\+::\+PO\+\_\+\+NO\+\_\+\+LOCALE\+\_\+\+CONTROL}} \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} Disallows access to functions that would affect the locale settings of the current program. The following features are unavailable with this option\+: \begin{DoxyItemize} \item \mbox{\hyperlink{class_qore_1_1_time_zone_a7e12da4b71bf101c397f06123474403f}{Qore\+::\+Time\+Zone\+::set()}} \item \mbox{\hyperlink{class_qore_1_1_time_zone_ad9b04e2df42c21fd1d67ad7b2a1e7f3f}{Qore\+::\+Time\+Zone\+::set\+UTCOffset()}} \item \mbox{\hyperlink{class_qore_1_1_time_zone_a48adb2099dca02f0484925935e044220}{Qore\+::\+Time\+Zone\+::set\+Region()}} \end{DoxyItemize} \end{DoxyParagraph} \DoxyHorRuler{0} \hypertarget{parse_directives_no-modules}{}\doxysection{\%no-\/modules}\label{parse_directives_no-modules} \begin{DoxyParagraph}{Parse Directive\+:} {\ttfamily \%no-\/modules} \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} {\ttfamily -\/pno-\/modules} \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} \mbox{\hyperlink{group__parse__options_gaccf9af08f7acb25e66b777dcb4c4563b}{Qore\+::\+PO\+\_\+\+NO\+\_\+\+MODULES}} \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} Disallows loading \mbox{\hyperlink{qore_modules}{modules}} with the \mbox{\hyperlink{parse_directives_requires}{\%requires}}, \mbox{\hyperlink{parse_directives_try-module}{\%try-\/module}}, or \mbox{\hyperlink{parse_directives_try-reexport-module}{\%try-\/reexport-\/module}} directives or at runtime with \mbox{\hyperlink{group__misc__functions_gaf0922a51e6c5471b02a947cb0cb008ba}{load\+\_\+module()}} \end{DoxyParagraph} \begin{DoxySince}{Since} Qore 0.\+8.\+4 \end{DoxySince} \DoxyHorRuler{0} \hypertarget{parse_directives_no-namespace-defs}{}\doxysection{\%no-\/namespace-\/defs}\label{parse_directives_no-namespace-defs} \begin{DoxyParagraph}{Parse Directive\+:} {\ttfamily \%no-\/namespace-\/defs} \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} {\ttfamily -\/}{\ttfamily -\/no-\/namespace-\/defs, -\/M} \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} \mbox{\hyperlink{group__parse__options_gaa5aaa3b96f4662b3c49bed1d1ab8ec88}{Qore\+::\+PO\+\_\+\+NO\+\_\+\+NAMESPACE\+\_\+\+DEFS}} \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} Disallows new \mbox{\hyperlink{qore_namespaces}{namespace definitions}}. \end{DoxyParagraph} \DoxyHorRuler{0} \hypertarget{parse_directives_no-network}{}\doxysection{\%no-\/network}\label{parse_directives_no-network} \begin{DoxyParagraph}{Parse Directive\+:} {\ttfamily \%no-\/network} \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} {\ttfamily -\/}{\ttfamily -\/no-\/network, -\/Y} \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} \mbox{\hyperlink{group__parse__options_ga20400e83c6271a294a48b15a8f952efa}{Qore\+::\+PO\+\_\+\+NO\+\_\+\+NETWORK}} \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} Disallows any access to the network. The following features are unavailable with this option\+: \begin{DoxyItemize} \item \mbox{\hyperlink{class_qore_1_1_ftp_client}{Qore\+::\+Ftp\+Client}} \item \mbox{\hyperlink{class_qore_1_1_h_t_t_p_client}{Qore\+::\+HTTPClient}} \item \mbox{\hyperlink{class_qore_1_1_socket}{Qore\+::\+Socket}} \end{DoxyItemize} \end{DoxyParagraph} \DoxyHorRuler{0} \hypertarget{parse_directives_no-new}{}\doxysection{\%no-\/new}\label{parse_directives_no-new} \begin{DoxyParagraph}{Parse Directive\+:} {\ttfamily \%no-\/new} \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} {\ttfamily -\/}{\ttfamily -\/no-\/new, -\/N} \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} \mbox{\hyperlink{group__parse__options_ga9736251c76726706da64426d899b4033}{Qore\+::\+PO\+\_\+\+NO\+\_\+\+NEW}} \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} Disallows use of the \mbox{\hyperlink{operators_new}{new operator}}. \end{DoxyParagraph} \DoxyHorRuler{0} \hypertarget{parse_directives_no-process-control}{}\doxysection{\%no-\/process-\/control}\label{parse_directives_no-process-control} \begin{DoxyParagraph}{Parse Directive\+:} {\ttfamily \%no-\/process-\/control} \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} {\ttfamily -\/}{\ttfamily -\/no-\/process-\/control, -\/P} \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} \mbox{\hyperlink{group__parse__options_ga10d8e3f76c427b0f974529de572dd0ec}{Qore\+::\+PO\+\_\+\+NO\+\_\+\+PROCESS\+\_\+\+CONTROL}} \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} Disallows access to functions that would affect the current process. The following features are unavailable with this option\+: \begin{DoxyItemize} \item abort() \item chdir() \item exit() \item fork() \item \mbox{\hyperlink{group__misc__functions_ga26bb5a87af0e8be0e661a590fb722c83}{get\+\_\+module\+\_\+option()}} \item \mbox{\hyperlink{group__misc__functions_gaf0922a51e6c5471b02a947cb0cb008ba}{load\+\_\+module()}} \item \mbox{\hyperlink{group__signal__handling__functions_gac05b9fa9ba1c302c9a34995573482a5f}{remove\+\_\+signal\+\_\+handler()}} \item setegid() \item \mbox{\hyperlink{group__env__functions_gafc5304fccb2c7903ca1ecd1015d9730a}{setenv()}} \item seteuid() \item setgid() \item setgroups() \item setsid() \item \mbox{\hyperlink{group__misc__functions_ga9034376bb44beb761d76156600b537f8}{set\+\_\+module\+\_\+option()}} \item \mbox{\hyperlink{group__signal__handling__functions_ga28cf2a280f8c3c302eeac0a46030be2d}{set\+\_\+signal\+\_\+handler()}} \item setuid() \item sleep() \item srand() \item \mbox{\hyperlink{group__threading__functions_ga23d27aeac0640b070f964f2eb9f1cc8a}{thread\+\_\+yield()}} \item umask() \item \mbox{\hyperlink{group__env__functions_ga9ed7b7400e10b55f434d2cbc9ba18282}{unsetenv()}} \item usleep() \end{DoxyItemize} \end{DoxyParagraph} \DoxyHorRuler{0} \hypertarget{parse_directives_no-reflection}{}\doxysection{\%no-\/reflection}\label{parse_directives_no-reflection} \begin{DoxyParagraph}{Parse Directive\+:} {\ttfamily \%no-\/reflection} \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} {\ttfamily -\/}{\ttfamily -\/pno-\/reflection} \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} \mbox{\hyperlink{group__parse__options_ga454fabf3a392b8fec9ee587e97a2d8e8}{Qore\+::\+PO\+\_\+\+NO\+\_\+\+REFLECTION}} \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} Disallows access to the reflection API provided by the \href{../../modules/reflection/html/index.html}{\texttt{ reflection}} module. \end{DoxyParagraph} \begin{DoxySince}{Since} Qore 0.\+9 \end{DoxySince} \DoxyHorRuler{0} \hypertarget{parse_directives_no-subroutine-defs}{}\doxysection{\%no-\/subroutine-\/defs}\label{parse_directives_no-subroutine-defs} \begin{DoxyParagraph}{Parse Directive\+:} {\ttfamily \%no-\/subroutine-\/defs} \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} {\ttfamily -\/}{\ttfamily -\/no-\/subroutine-\/defs, -\/S} \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} \mbox{\hyperlink{group__parse__options_ga750cc2b2d325184242990c6ab60ea736}{Qore\+::\+PO\+\_\+\+NO\+\_\+\+SUBROUTINE\+\_\+\+DEFS}} \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} Disallows subroutine (function) definitions. \end{DoxyParagraph} \DoxyHorRuler{0} \hypertarget{parse_directives_no-terminal-io}{}\doxysection{\%no-\/terminal-\/io}\label{parse_directives_no-terminal-io} \begin{DoxyParagraph}{Parse Directive\+:} {\ttfamily \%no-\/terminal-\/io} \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} {\ttfamily -\/}{\ttfamily -\/no-\/terminal-\/io,-\/}{\ttfamily -\/set-\/parse-\/option=no-\/terminal-\/io, -\/pno-\/terminal-\/io} \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} \mbox{\hyperlink{group__parse__options_gaa92bf6eafb76a4ccf1a0d0df45b13363}{Qore\+::\+PO\+\_\+\+NO\+\_\+\+TERMINAL\+\_\+\+IO}} \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} Disallows access to terminal input and output. The following features are unavailable with this option\+: \begin{DoxyItemize} \item \mbox{\hyperlink{class_qore_1_1_term_i_o_s}{Qore\+::\+Term\+IOS}} \item \mbox{\hyperlink{class_qore_1_1_term_i_o_s_a5374031d9a2784ca2653a36088f0a0c8}{Qore\+::\+Term\+IOS\+::get\+Window\+Size()}} \item \mbox{\hyperlink{group__io__constants_ga0cfa7aea34f3c921036623600e42b21f}{Qore\+::stdin}} \item \mbox{\hyperlink{group__io__constants_ga44ab38fe66ed7aa87731a2de976017c6}{Qore\+::stdout}} \item \mbox{\hyperlink{group__io__constants_ga697e4968984d273562f14bfed155b4a8}{Qore\+::stderr}} \item \mbox{\hyperlink{group__string__functions_ga4aeb0ae8aaf5cae9c3a4dfde8e8d92be}{f\+\_\+printf()}} \item \mbox{\hyperlink{group__string__functions_ga1d7d26076f388e311973a244850fd750}{f\+\_\+vprintf()}} \item \mbox{\hyperlink{group__string__functions_ga56e62bf88b3fa54aa9aa75508d5d6c05}{flush()}} \item \mbox{\hyperlink{group__string__functions_ga996c5d1686fbc245f0bc7a02012e6a33}{print()}} \item \mbox{\hyperlink{group__string__functions_ga32070517a9f8a70a32ef48f83a6f128e}{printf()}} \item \mbox{\hyperlink{group__string__functions_ga9729dd36419226b458d929a7d2ceb4e8}{vprintf()}} \end{DoxyItemize} \end{DoxyParagraph} \DoxyHorRuler{0} \hypertarget{parse_directives_no-thread-classes}{}\doxysection{\%no-\/thread-\/classes}\label{parse_directives_no-thread-classes} \begin{DoxyParagraph}{Parse Directive\+:} {\ttfamily \%no-\/thread-\/classes} \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} {\ttfamily -\/}{\ttfamily -\/no-\/thread-\/classes} \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} \mbox{\hyperlink{group__parse__options_gade963e1fbbd1f5b2c777df7221512a1b}{Qore\+::\+PO\+\_\+\+NO\+\_\+\+THREAD\+\_\+\+CLASSES}} \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} Disallows access to thread classes. The following features are unavailable with this option\+: \begin{DoxyItemize} \item \mbox{\hyperlink{class_qore_1_1_thread_1_1_abstract_smart_lock}{Qore\+::\+Thread\+::\+Abstract\+Smart\+Lock}} class \item \mbox{\hyperlink{class_qore_1_1_thread_1_1_auto_gate}{Qore\+::\+Thread\+::\+Auto\+Gate}} class \item \mbox{\hyperlink{class_qore_1_1_thread_1_1_auto_lock}{Qore\+::\+Thread\+::\+Auto\+Lock}} class \item \mbox{\hyperlink{class_qore_1_1_thread_1_1_auto_read_lock}{Qore\+::\+Thread\+::\+Auto\+Read\+Lock}} class \item \mbox{\hyperlink{class_qore_1_1_thread_1_1_auto_write_lock}{Qore\+::\+Thread\+::\+Auto\+Write\+Lock}} class \item \mbox{\hyperlink{class_qore_1_1_thread_1_1_condition}{Qore\+::\+Thread\+::\+Condition}} class \item \mbox{\hyperlink{class_qore_1_1_thread_1_1_counter}{Qore\+::\+Thread\+::\+Counter}} class \item \mbox{\hyperlink{class_qore_1_1_thread_1_1_gate}{Qore\+::\+Thread\+::\+Gate}} class \item \mbox{\hyperlink{class_qore_1_1_thread_1_1_mutex}{Qore\+::\+Thread\+::\+Mutex}} class \item \mbox{\hyperlink{class_qore_1_1_thread_1_1_queue}{Qore\+::\+Thread\+::\+Queue}} class \item \mbox{\hyperlink{class_qore_1_1_thread_1_1_r_w_lock}{Qore\+::\+Thread\+::\+RWLock}} class \item \mbox{\hyperlink{class_qore_1_1_thread_1_1_thread_pool}{Qore\+::\+Thread\+::\+Thread\+Pool}} class \end{DoxyItemize} \end{DoxyParagraph} \DoxyHorRuler{0} \hypertarget{parse_directives_no-thread-control}{}\doxysection{\%no-\/thread-\/control}\label{parse_directives_no-thread-control} \begin{DoxyParagraph}{Parse Directive\+:} {\ttfamily \%no-\/thread-\/control} \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} {\ttfamily -\/}{\ttfamily -\/no-\/thread-\/control, -\/R} \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} \mbox{\hyperlink{group__parse__options_ga16d8c2b85171b6673b60b5f7d0eaf5eb}{Qore\+::\+PO\+\_\+\+NO\+\_\+\+THREAD\+\_\+\+CONTROL}} \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} Disallows access to thread control operations. The following features are unavailable with this option\+: \begin{DoxyItemize} \item \mbox{\hyperlink{operators_background}{background operator}} \item \mbox{\hyperlink{statements_thread_exit}{thread\+\_\+exit statement}} \item \mbox{\hyperlink{group__threading__functions_ga67572bb3364b4af9d37226948fb680c5}{delete\+\_\+all\+\_\+thread\+\_\+data()}} \item \mbox{\hyperlink{group__threading__functions_ga7fecb4c50726c994a9cdaf1d3284e5b4}{delete\+\_\+thread\+\_\+data()}} \item \mbox{\hyperlink{group__threading__functions_ga648b002d4fc96c5cfa78ba558b3d5538}{get\+\_\+all\+\_\+thread\+\_\+data()}} \item \mbox{\hyperlink{group__threading__functions_ga1bf3fa656c5e803e9453a5ed84fd556c}{get\+\_\+thread\+\_\+data()}} \item \mbox{\hyperlink{group__threading__functions_gafa1c0f9e429a945b66fb261c7fa1b5bd}{mark\+\_\+thread\+\_\+resources()}} \item \mbox{\hyperlink{group__threading__functions_ga33a9531a01ae17fc2560f95c0b2039be}{remove\+\_\+thread\+\_\+data()}} \item \mbox{\hyperlink{group__threading__functions_gadc994316e54fdf50111018de9bd15dc6}{remove\+\_\+thread\+\_\+resource()}} \item \mbox{\hyperlink{group__threading__functions_ga496d14c02dcc992bf82fefbfe6a0d1ca}{save\+\_\+thread\+\_\+data()}} \item \mbox{\hyperlink{group__threading__functions_gadbd86685c49fd7b4960b8b21e05cb2f0}{set\+\_\+default\+\_\+thread\+\_\+stack\+\_\+size()}} \item \mbox{\hyperlink{group__threading__functions_ga321040a3e764383dd68c50d496436e87}{set\+\_\+thread\+\_\+name()}} \item \mbox{\hyperlink{group__threading__functions_ga1a1fbc371cfc8885ed78e4bff25d35b1}{set\+\_\+thread\+\_\+resource()}} \item \mbox{\hyperlink{group__threading__functions_ga421dca39ccb55b191d5d09fd98c2075a}{throw\+\_\+thread\+\_\+resource\+\_\+exceptions()}} \item \mbox{\hyperlink{group__threading__functions_ga4e62409b8a1b414276d033267e7299e4}{throw\+\_\+thread\+\_\+resource\+\_\+exceptions\+\_\+to\+\_\+mark()}} The following deprecated functions are also unavailable\+: \item \mbox{\hyperlink{group__threading__functions_ga401f0e787e79f2e4851d60b9223bb8d2}{throw\+Thread\+Resource\+Exceptions()}} \end{DoxyItemize} \end{DoxyParagraph} \DoxyHorRuler{0} \hypertarget{parse_directives_no-thread-info}{}\doxysection{\%no-\/thread-\/info}\label{parse_directives_no-thread-info} \begin{DoxyParagraph}{Parse Directive\+:} {\ttfamily \%no-\/thread-\/info} \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} {\ttfamily -\/}{\ttfamily -\/no-\/thread-\/info} \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} \mbox{\hyperlink{group__parse__options_gac379d98e62c57231c2efb7ea87c75a3a}{Qore\+::\+PO\+\_\+\+NO\+\_\+\+THREAD\+\_\+\+INFO}} \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} Disallows access to functionality that provides information about threading. The following features are unavailable with this option\+: \begin{DoxyItemize} \item \mbox{\hyperlink{group__threading__functions_gae4d42c6ab7b7fc7d9a9cb1be139f6773}{get\+\_\+all\+\_\+thread\+\_\+call\+\_\+stacks()}} \item \mbox{\hyperlink{group__threading__functions_ga648b002d4fc96c5cfa78ba558b3d5538}{get\+\_\+all\+\_\+thread\+\_\+data()}} \item \mbox{\hyperlink{group__threading__functions_ga82d1b72e32a368be71b3b91462cbe0da}{get\+\_\+default\+\_\+thread\+\_\+stack\+\_\+size()}} \item \mbox{\hyperlink{group__threading__functions_gaa97833f603fb51b23fe0bb6c22b7f95f}{get\+\_\+stack\+\_\+size()}} \item \mbox{\hyperlink{group__threading__functions_gaff3b8af236d59870ff5c6a36c17c4907}{get\+\_\+thread\+\_\+call\+\_\+stack()}} \item \mbox{\hyperlink{group__threading__functions_ga1bf3fa656c5e803e9453a5ed84fd556c}{get\+\_\+thread\+\_\+data()}} \item \mbox{\hyperlink{group__threading__functions_ga79f9cd8de9606cae29c29e3b08d234f0}{get\+\_\+thread\+\_\+name()}} \item \mbox{\hyperlink{group__threading__functions_ga95ed8e572309b44b3f5b49673238c3e6}{gettid()}} \item \mbox{\hyperlink{group__threading__functions_ga4bffba0876346fe5233ed4f5161c90d0}{num\+\_\+threads()}} \item \mbox{\hyperlink{group__threading__functions_ga113081673d536fc7bae33d2ffe523893}{thread\+\_\+list()}} The following deprecated functions are also unavailable\+: \item \mbox{\hyperlink{group__threading__functions_ga52baa4131379e22e307ae742ffbe3ee1}{get\+All\+Thread\+Call\+Stacks()}} \end{DoxyItemize} \end{DoxyParagraph} \DoxyHorRuler{0} \hypertarget{parse_directives_no-threads}{}\doxysection{\%no-\/threads}\label{parse_directives_no-threads} \begin{DoxyParagraph}{Parse Directive\+:} {\ttfamily \%no-\/threads} \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} {\ttfamily -\/}{\ttfamily -\/no-\/threads, -\/T} \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} \mbox{\hyperlink{group__parse__options_ga76f3b2a173e5f06aec64ea04fc1ed515}{Qore\+::\+PO\+\_\+\+NO\+\_\+\+THREADS}} \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} Disallows access to all thread control operations and thread classes (equivalent to \mbox{\hyperlink{parse_directives_no-thread-control}{\%no-\/thread-\/control}} and \mbox{\hyperlink{parse_directives_no-thread-classes}{\%no-\/thread-\/classes}} together). \end{DoxyParagraph} \DoxyHorRuler{0} \hypertarget{parse_directives_no-top-level}{}\doxysection{\%no-\/top-\/level}\label{parse_directives_no-top-level} \begin{DoxyParagraph}{Parse Directive\+:} {\ttfamily \%no-\/top-\/level} \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} {\ttfamily -\/}{\ttfamily -\/no-\/top-\/level, -\/L} \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} \mbox{\hyperlink{group__parse__options_ga3a99f2973e97f3986630d8204d7b91fd}{Qore\+::\+PO\+\_\+\+NO\+\_\+\+TOP\+\_\+\+LEVEL\+\_\+\+STATEMENTS}} \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} Disallows top level code from this point on, any top level statements before this directive are still allowed and become part of the \mbox{\hyperlink{class_qore_1_1_program}{Program}} context. \end{DoxyParagraph} \DoxyHorRuler{0} \hypertarget{parse_directives_no-transient}{}\doxysection{\%no-\/transient}\label{parse_directives_no-transient} \begin{DoxyParagraph}{Parse Directive\+:} {\ttfamily \%no-\/transient} \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} {\ttfamily -\/}{\ttfamily -\/pno-\/transient} \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} \mbox{\hyperlink{group__parse__options_ga4d9e69dc24ed1eed0ea11f4947cceca2}{Qore\+::\+PO\+\_\+\+NO\+\_\+\+TRANSIENT}} \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} Removes the \mbox{\hyperlink{qore_classes_transient}{Transient Members}} keyword for backwards-\/compatibility. \end{DoxyParagraph} \begin{DoxySince}{Since} Qore 0.\+9 \end{DoxySince} \DoxyHorRuler{0} \hypertarget{parse_directives_no-uncontrolled-apis}{}\doxysection{\%no-\/uncontrolled-\/apis}\label{parse_directives_no-uncontrolled-apis} \begin{DoxyParagraph}{Parse Directive\+:} {\ttfamily no-\/uncontrolled-\/apis} \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} {\ttfamily -\/p=no-\/uncontrolled-\/apis} \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} \mbox{\hyperlink{group__parse__options_ga88a927479c495b99209a6397ef67c240}{Qore\+::\+PO\+\_\+\+NO\+\_\+\+UNCONTROLLED\+\_\+\+APIS}} \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} Disallows access to uncontrolled APIs such as external language bindings or direct generic system call APIs that could bypass Qore\textquotesingle{}s sandboxing controls. \end{DoxyParagraph} \DoxyHorRuler{0} \hypertarget{parse_directives_perl-bool-eval}{}\doxysection{\%perl-\/bool-\/eval}\label{parse_directives_perl-bool-eval} \begin{DoxyParagraph}{Parse Directive\+:} {\ttfamily \%perl-\/bool-\/eval} \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} n/a \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} n/a \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} Set to mimic perl\textquotesingle{}s (and Python\textquotesingle{}s) boolean evaluation; this is now the default (as of qore version 0.\+8.\+6); prior to this version, by default qore used \mbox{\hyperlink{parse_directives_strict-bool-eval}{strict mathematic boolean evaluation}}, where any value converted to 0 is \mbox{\hyperlink{basic_data_types_False}{False}} and otherwise it\textquotesingle{}s is \mbox{\hyperlink{basic_data_types_True}{True}}.~\newline ~\newline As of Qore 0.\+8.\+6+, {\ttfamily \%perl-\/bool-\/eval} is the default behavior and therefore only needs to be set if \mbox{\hyperlink{parse_directives_strict-bool-eval}{\%strict-\/bool-\/eval}} was set first.~\newline ~\newline When this option is set, boolean evaluation follows the same rules as \mbox{\hyperlink{class_qore_1_1zzz8valuezzz9_a3a66486cee14aa073cf90fbed5a23edd}{Qore\+::zzz8valuezzz9\+::val()}}; for example\+:~\newline \begin{DoxyCode}{0} \DoxyCodeLine{string str = \textcolor{stringliteral}{"{}hello"{}};} \DoxyCodeLine{\textcolor{keywordflow}{if} (str)} \DoxyCodeLine{ \mbox{\hyperlink{group__string__functions_ga32070517a9f8a70a32ef48f83a6f128e}{printf}}(\textcolor{stringliteral}{"{}string is: \%y\(\backslash\)n"{}}, str);} \end{DoxyCode} ~\newline With this option set (the default), the above prints out\+:\begin{DoxyVerb}string is: "hello"\end{DoxyVerb} When it\textquotesingle{}s not set (i.\+e. \mbox{\hyperlink{parse_directives_strict-bool-eval}{\%strict-\/bool-\/eval}} is set), nothing is printed out as the string expression evaluates to \mbox{\hyperlink{basic_data_types_False}{False}} due to qore\textquotesingle{}s old strict mathematical boolean evaluation.~\newline ~\newline Basically with this option set, qore\textquotesingle{}s boolean evaluation becomes like perl\textquotesingle{}s and Python\textquotesingle{}s, whereas any expression that has the following values is \mbox{\hyperlink{basic_data_types_False}{False}}\+: \mbox{\hyperlink{basic_data_types_nothing}{NOTHING}}, \mbox{\hyperlink{basic_data_types_string}{string}} {\ttfamily \char`\"{}0\char`\"{}} and \mbox{\hyperlink{basic_data_types_string}{empty strings}}, \mbox{\hyperlink{basic_data_types_integer}{integer}}, \mbox{\hyperlink{basic_data_types_float}{float}}, and \mbox{\hyperlink{basic_data_types_number}{number}} {\ttfamily 0} (zero), \mbox{\hyperlink{basic_data_types_absolute_dates}{absolute date}} {\ttfamily 1970-\/01-\/01Z} (ie the start of the epoch with an offset of 0), \mbox{\hyperlink{basic_data_types_relative_dates}{relative date}} {\ttfamily PT0H} (ie any \mbox{\hyperlink{basic_data_types_relative_dates}{relative date}} with a 0 duration), \mbox{\hyperlink{basic_data_types_null}{NULL}}, \mbox{\hyperlink{basic_data_types_binary}{empty binary objects}}, \mbox{\hyperlink{container_data_types_hash}{empty hashes}}, and \mbox{\hyperlink{container_data_types_list}{empty lists}}. All other values are \mbox{\hyperlink{basic_data_types_True}{True}}. \end{DoxyParagraph} \begin{DoxyNote}{Note} also affects the \mbox{\hyperlink{group__type__conversion__functions_ga22c89291d4105fcb558f49fe49aeae44}{boolean(any)}} function \end{DoxyNote} \begin{DoxySeeAlso}{See also} \mbox{\hyperlink{parse_directives_strict-bool-eval}{\%strict-\/bool-\/eval}} \end{DoxySeeAlso} \begin{DoxySince}{Since} Qore 0.\+8.\+6 \end{DoxySince} \DoxyHorRuler{0} \hypertarget{parse_directives_push-parse-options}{}\doxysection{\%push-\/parse-\/options}\label{parse_directives_push-parse-options} \begin{DoxyParagraph}{Parse Directive\+:} {\ttfamily \%push-\/parse-\/options} \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} n/a \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} n/a \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} Stores parse options so that they will be restored when the current file is done parsing; use in include files to ensure parse options are set appropriately for the file being parsed.~\newline ~\newline For example\+:~\newline \begin{DoxyCode}{0} \DoxyCodeLine{\%push-\/parse-\/options} \DoxyCodeLine{\%new-\/style} \end{DoxyCode} \end{DoxyParagraph} \DoxyHorRuler{0} \hypertarget{parse_directives_require-dollar}{}\doxysection{\%require-\/dollar}\label{parse_directives_require-dollar} \begin{DoxyParagraph}{Parse Directive\+:} {\ttfamily \%require-\/dollar} \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} n/a \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} n/a \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} Resets the default Qore behavior where the use of the {\ttfamily \char`\"{}\$\char`\"{}} character in variable names, method calls, and object member references is required; use after \mbox{\hyperlink{parse_directives_allow-bare-refs}{\%allow-\/bare-\/refs}} to reset the default parsing behavior \end{DoxyParagraph} \begin{DoxySince}{Since} Qore 0.\+8.\+4 \end{DoxySince} \DoxyHorRuler{0} \hypertarget{parse_directives_require-our}{}\doxysection{\%require-\/our}\label{parse_directives_require-our} \begin{DoxyParagraph}{Parse Directive\+:} {\ttfamily \%require-\/our} \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} {\ttfamily -\/}{\ttfamily -\/require-\/our, -\/O} \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} \mbox{\hyperlink{group__parse__options_ga77d54a192aeae13bac95700ab5bbb190}{Qore\+::\+PO\+\_\+\+REQUIRE\+\_\+\+OUR}} \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} Requires global variables to be declared with \mbox{\hyperlink{variables_our}{our}} prior to use (recommended to use for all larger scripts/programs). \end{DoxyParagraph} \DoxyHorRuler{0} \hypertarget{parse_directives_require-prototypes}{}\doxysection{\%require-\/prototypes}\label{parse_directives_require-prototypes} \begin{DoxyParagraph}{Parse Directive\+:} {\ttfamily \%require-\/prototypes} \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} {\ttfamily -\/}{\ttfamily -\/require-\/prototypes} \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} \mbox{\hyperlink{group__parse__options_ga196e048def21cb147b21a4871c4e9b29}{Qore\+::\+PO\+\_\+\+REQUIRE\+\_\+\+PROTOTYPES}} \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} Requires type declarations for all function and method parameters and return types. Variables and object members do not need to have type declarations with this option. \end{DoxyParagraph} \begin{DoxySeeAlso}{See also} \mbox{\hyperlink{parse_directives_require-types}{\%require-\/types}}, which is a superset of this option. \end{DoxySeeAlso} \DoxyHorRuler{0} \hypertarget{parse_directives_require-types}{}\doxysection{\%require-\/types}\label{parse_directives_require-types} \begin{DoxyParagraph}{Parse Directive\+:} {\ttfamily \%require-\/types} \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} {\ttfamily -\/}{\ttfamily -\/require-\/types} \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} \mbox{\hyperlink{group__parse__options_ga66847391bb96dac88c3fee210720bbb3}{Qore\+::\+PO\+\_\+\+REQUIRE\+\_\+\+TYPES}} \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} Requires type declarations for all function and method parameters, return types, variables, and object members. Additionally causes {\ttfamily CALL-\/\+WITH-\/\+TYPE-\/\+ERRORS} exceptions to be thrown if a function, method, or \mbox{\hyperlink{data_type_declarations_code_type}{code}} call is made with excess arguments not handled by the target. In case calls are made to user code over a \mbox{\hyperlink{class_qore_1_1_program}{Program}} barrier, the parse options of the target code determine if this exception is raised; \end{DoxyParagraph} \begin{DoxySeeAlso}{See also} \mbox{\hyperlink{parse_directives_require-prototypes}{\%require-\/prototypes}}, which is a subset of this option. \end{DoxySeeAlso} \DoxyHorRuler{0} \hypertarget{parse_directives_requires}{}\doxysection{\%requires}\label{parse_directives_requires} \begin{DoxyParagraph}{Parse Directive\+:} {\ttfamily \%requires\mbox{[}(reexport)\mbox{]} {\itshape feature} \mbox{[}$<$$|$$<$=$|$=$|$$>$=$|$$>$ {\itshape version}\mbox{]}} \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} {\ttfamily -\/}{\ttfamily -\/load, -\/l} \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} n/a \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} Loads a Qore module immediately. The parse directive can be used to load a module during parsing, and the command line version can be used to load a module before parsing. If the optional {\ttfamily {\itshape (reexport)}} option is used in a \mbox{\hyperlink{qore_modules_user_modules}{user module}}, then any modules loaded with this form of the {\ttfamily \%requires} parse directive will also be imported into the importing \mbox{\hyperlink{class_qore_1_1_program}{Program}}.~\newline ~\newline From Qore 0.\+7.\+1, you can specify a comparison operator (one of {\ttfamily $<$, $<$=, =, $>$=, or $>$}) and version information after the module name as well. Version numbers are compared via integer comparisons of each element, where elements are separated by a {\ttfamily \char`\"{}.\char`\"{}}. If one of the versions does not have as many elements as another, the missing elements are assumed to be {\ttfamily \char`\"{}0\char`\"{}} (i.\+e. version {\ttfamily \char`\"{}1.\+0\char`\"{}} compared with version {\ttfamily \char`\"{}1.\+0.\+1\char`\"{}} will be extended to {\ttfamily \char`\"{}1.\+0.\+0\char`\"{}}).~\newline ~\newline For example\+:~\newline \begin{DoxyCode}{0} \DoxyCodeLine{\%requires oracle >= 1.0.1} \end{DoxyCode} ~\newline This will load the oracle module if it is at least version 1.\+0.\+1.~\newline ~\newline For example\+:~\newline \begin{DoxyCode}{0} \DoxyCodeLine{\%requires(reexport) Mime} \end{DoxyCode} ~\newline If this form is used in a \mbox{\hyperlink{qore_modules_user_modules}{user module}}, all public definitions from the \href{../../modules/Mime/html/index.html}{\texttt{ Mime}} module would also be loaded into any \mbox{\hyperlink{class_qore_1_1_program}{Program}} that requires the user module.~\newline ~\newline Note that there is one special feature name\+: {\ttfamily \char`\"{}qore\char`\"{}}. This pseudo-\/feature can be used to check the minimum Qore version; if this feature is requested with version information, then the Qore library\textquotesingle{}s version information is used for the version number comparison. \end{DoxyParagraph} \begin{DoxySeeAlso}{See also} \mbox{\hyperlink{parse_directives_try-module}{\%try-\/module}} and \mbox{\hyperlink{parse_directives_try-reexport-module}{\%try-\/reexport-\/module}} for similar parse directives that allows module loading errors to be caught and handled at parse-\/time \end{DoxySeeAlso} \DoxyHorRuler{0} \hypertarget{parse_directives_set-time-zone}{}\doxysection{\%set-\/time-\/zone}\label{parse_directives_set-time-zone} \begin{DoxyParagraph}{Parse Directive\+:} {\ttfamily \%set-\/time-\/zone} \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} {\ttfamily -\/}{\ttfamily -\/time-\/zone, -\/z} \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} none; this is set by calling \mbox{\hyperlink{class_qore_1_1_time_zone_a48adb2099dca02f0484925935e044220}{Qore\+::\+Time\+Zone\+::set\+Region()}} or \mbox{\hyperlink{class_qore_1_1_time_zone_ad9b04e2df42c21fd1d67ad7b2a1e7f3f}{Qore\+::\+Time\+Zone\+::set\+UTCOffset()}} \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} Sets the time zone for the current program from a UTC offset (with format {\ttfamily \char`\"{}+/-\/00\mbox{[}\+:00\mbox{[}\+:00\mbox{]}\mbox{]}\char`\"{}}; {\ttfamily \char`\"{}\+:\char`\"{}\char`\"{} characters are optional) or a time zone region name (ex\+: \textbackslash{}c \char`\"{}Europe/\+Prague"{}}). \end{DoxyParagraph} \DoxyHorRuler{0} \hypertarget{parse_directives_strict-args}{}\doxysection{\%strict-\/args}\label{parse_directives_strict-args} \begin{DoxyParagraph}{Parse Directive\+:} {\ttfamily \%strict-\/args} \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} {\ttfamily -\/}{\ttfamily -\/strict-\/args} \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} \mbox{\hyperlink{group__parse__options_gac7875c0c85a64fa8b0d66fc634734957}{Qore\+::\+PO\+\_\+\+STRICT\+\_\+\+ARGS}} \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} Prohibits access to builtin functions and methods flagged with \mbox{\hyperlink{code_flags_RUNTIME_NOOP}{RUNTIME\+\_\+\+NOOP}} and also causes errors to be raised if excess arguments are given to functions that do not access excess arguments and if a non-\/list lvalue is passed to the \mbox{\hyperlink{operators_push}{Push Operator (push)}}, \mbox{\hyperlink{operators_pop}{Pop Operator (pop)}}, or \mbox{\hyperlink{operators_shift}{Shift Operator (shift)}}. Additionally, If a function, method, or \mbox{\hyperlink{data_type_declarations_code_type}{code}} call is made with excess arguments not handled by the target, a {\ttfamily CALL-\/\+WITH-\/\+TYPE-\/\+ERRORS} exception is thrown. In case calls are made to user code over a \mbox{\hyperlink{class_qore_1_1_program}{Program}} barrier, the parse options of the target code determine if this exception is raised; \end{DoxyParagraph} \begin{DoxySeeAlso}{See also} \mbox{\hyperlink{parse_directives_loose-args}{\%loose-\/args}} \end{DoxySeeAlso} \DoxyHorRuler{0} \hypertarget{parse_directives_strict-bool-eval}{}\doxysection{\%strict-\/bool-\/eval}\label{parse_directives_strict-bool-eval} \begin{DoxyParagraph}{Parse Directive\+:} {\ttfamily \%strict-\/bool-\/eval} \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} {\ttfamily -\/pstrict-\/bool-\/eval} \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} \mbox{\hyperlink{group__parse__options_ga2fbe2a73849bb0139d8d228df0e49ea6}{Qore\+::\+PO\+\_\+\+STRICT\+\_\+\+BOOLEAN\+\_\+\+EVAL}} \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} When set, this option enables qore\textquotesingle{}s default strict mathematic boolean evaluation, where any value converted to 0 is \mbox{\hyperlink{basic_data_types_False}{False}} and otherwise it\textquotesingle{}s is \mbox{\hyperlink{basic_data_types_True}{True}}.~\newline ~\newline This option takes effect at runtime.~\newline ~\newline For example\+:~\newline \begin{DoxyCode}{0} \DoxyCodeLine{string str = \textcolor{stringliteral}{"{}hello"{}};} \DoxyCodeLine{\textcolor{keywordflow}{if} (str)} \DoxyCodeLine{ \mbox{\hyperlink{group__string__functions_ga32070517a9f8a70a32ef48f83a6f128e}{printf}}(\textcolor{stringliteral}{"{}string is: \%y\(\backslash\)n"{}}, str);} \end{DoxyCode} ~\newline If {\ttfamily \%strict-\/bool-\/eval} is set, then Qore\textquotesingle{}s boolean evaluation will evaluate {\ttfamily \char`\"{}hello\char`\"{}} in a strict mathematical sense and convert it to 0, which is \mbox{\hyperlink{basic_data_types_False}{False}}, so nothing would be printed out, but when {\ttfamily \%perl-\/bool-\/eval} is enabled, this will be \mbox{\hyperlink{basic_data_types_True}{True}} (following the rules for \mbox{\hyperlink{class_qore_1_1zzz8stringzzz9_a6b280ef6ed27ec08d444123d6fecb38b}{Qore\+::zzz8stringzzz9\+::val()}}).~\newline ~\newline Qore\textquotesingle{}s strict mathematical boolean evaluation was the default prior to Qore 0.\+8.\+6, however it was considered non-\/intuitive and a design bug, and therefore the default behavior of the language was changed to a more intuitive form of boolean evaluation as documented in \mbox{\hyperlink{parse_directives_perl-bool-eval}{\%perl-\/bool-\/eval}}. \end{DoxyParagraph} \begin{DoxyNote}{Note} also affects the \mbox{\hyperlink{group__type__conversion__functions_ga22c89291d4105fcb558f49fe49aeae44}{boolean(any)}} function \end{DoxyNote} \begin{DoxySeeAlso}{See also} \mbox{\hyperlink{parse_directives_perl-bool-eval}{perl-\/bool-\/eval}} \end{DoxySeeAlso} \begin{DoxySince}{Since} Qore 0.\+8.\+6 \end{DoxySince} \DoxyHorRuler{0} \hypertarget{parse_directives_strict-types}{}\doxysection{\%strict-\/types}\label{parse_directives_strict-types} \begin{DoxyParagraph}{Parse Directive\+:} {\ttfamily \%strict-\/types} \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} {\ttfamily -\/pstrict-\/types} \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} \mbox{\hyperlink{group__parse__options_ga6faa558bfb68cd290e785653e24525de}{Qore\+::\+PO\+\_\+\+STRICT\+\_\+\+TYPES}} \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} Sets strict type checking and automatically sets default values for lvalues with type restrictions that have default values. \end{DoxyParagraph} \begin{DoxySeeAlso}{See also} loose-\/types \char`\"{}\%loose-\/types\char`\"{} \end{DoxySeeAlso} \begin{DoxySince}{Since} Qore 0.\+9.\+4 \end{DoxySince} \DoxyHorRuler{0} \hypertarget{parse_directives_strong-encapsulation}{}\doxysection{\%strong-\/encapsulation}\label{parse_directives_strong-encapsulation} \begin{DoxyParagraph}{Parse Directive\+:} {\ttfamily \%strong-\/encapsulation} \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} {\ttfamily -\/pstrong-\/encapsulation} \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} \mbox{\hyperlink{group__parse__options_gaa8259d8e3b4c908f9d09c6987c8c6167}{Qore\+::\+PO\+\_\+\+STRONG\+\_\+\+ENCAPSULATION}} \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} Disallows out-\/of-\/line namespace and class declarations which break encapsulation by allowing changes to existing namespaces and classes by external code. \end{DoxyParagraph} \begin{DoxySince}{Since} Qore 0.\+8.\+13 \end{DoxySince} \DoxyHorRuler{0} \hypertarget{parse_directives_try-module}{}\doxysection{\%try-\/module}\label{parse_directives_try-module} \begin{DoxyParagraph}{Parse Directive\+:} {\ttfamily \%try-\/module} \mbox{[}(\mbox{\hyperlink{variables_variable_declarations}{var\+\_\+decl}})\mbox{]} {\itshape feature} {\ttfamily \mbox{[}$<$$|$$<$=$|$=$|$$>$=$|$$>$} {\itshape version}{\ttfamily \mbox{]}} \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} n/a \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} n/a \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} Loads a Qore module immediately; if an error occurs loading the module, then the \mbox{\hyperlink{variables_variable_declarations}{variable}} declared in parentheses after {\ttfamily \%try-\/module} is instantiated with the exception information, and the code up to the \mbox{\hyperlink{parse_directives_endtry}{\%endtry}} parse declaration is parsed into the program, allowing for the qore script/program to handle module loading errors at parse time for modules that must be loaded at parse time.~\newline ~\newline A comparison operator (one of {\ttfamily $<$, $<$=, =, $>$=, or $>$}) and version information can be optionally given after the module name as well. Version numbers are compared via integer comparisons of each element, where elements are separated by a {\ttfamily \char`\"{}.\char`\"{}}. If one of the versions does not have as many elements as another, the missing elements are assumed to be {\ttfamily \char`\"{}0\char`\"{}} (i.\+e. version {\ttfamily \char`\"{}1.\+0\char`\"{}} compared with version {\ttfamily \char`\"{}1.\+0.\+1\char`\"{}} will be extended to {\ttfamily \char`\"{}1.\+0.\+0\char`\"{}}). Version errors are handled in the same was as any other module loading error.~\newline ~\newline For example\+:~\newline \begin{DoxyCode}{0} \DoxyCodeLine{\%new-\/style} \DoxyCodeLine{\%\textcolor{keywordflow}{try}-\/module (ex) some\_module > 2.0} \DoxyCodeLine{\%define DontHaveSomeModule} \DoxyCodeLine{ \mbox{\hyperlink{group__string__functions_ga32070517a9f8a70a32ef48f83a6f128e}{printf}}(\textcolor{stringliteral}{"{}error loading module \%y: \%s: \%s\(\backslash\)n"{}}, ex.arg, ex.err, ex.desc);} \DoxyCodeLine{ exit(1);} \DoxyCodeLine{\%endtry} \DoxyCodeLine{} \DoxyCodeLine{\%ifndef DontHaveSomeModule} \DoxyCodeLine{ some\_module\_api();} \DoxyCodeLine{\%endif} \end{DoxyCode} ~\newline This will load the {\ttfamily \char`\"{}some\+\_\+module\char`\"{}} module if it is at least version 2.\+0, and print an error message and exit gracefully if it cannot be loaded. Note that in order for the \mbox{\hyperlink{namespace_qore}{Qore}} script to be executable and exit gracefully in case the given module cannot be loaded, a parse define must be set in the {\ttfamily \%try-\/module} block and any code that accesses definitions provided by that module must be wrapped in {\ttfamily \%ifndef} blocks as in the above example.~\newline ~\newline The \mbox{\hyperlink{variables_variable_declarations}{variable declaration}} in parentheses is optional; use the variant without the exception variable in code where parse option \mbox{\hyperlink{group__parse__options_ga3a99f2973e97f3986630d8204d7b91fd}{PO\+\_\+\+NO\+\_\+\+TOP\+\_\+\+LEVEL\+\_\+\+STATEMENTS}} is set, for example. In this case, for example, other parse options can be set before the \mbox{\hyperlink{parse_directives_endtry}{\%endtry}} directive.~\newline ~\newline Here is an example without a \mbox{\hyperlink{variables_variable_declarations}{variable declaration}} in parentheses\+:~\newline \begin{DoxyCode}{0} \DoxyCodeLine{\%new-\/style} \DoxyCodeLine{\%\textcolor{keywordflow}{try}-\/module some\_module > 2.0} \DoxyCodeLine{\%define DontHaveSomeModule} \DoxyCodeLine{\%endtry} \end{DoxyCode} ~\newline \end{DoxyParagraph} \begin{DoxyNote}{Note} \begin{DoxyItemize} \item There is one special feature name\+: {\ttfamily \char`\"{}qore\char`\"{}}. This pseudo-\/feature can be used to check the minimum Qore version; if this feature is requested with version information, then the Qore library\textquotesingle{}s version information is used for the version number comparison. \item No type can be given with the {\ttfamily \%try-\/module} variable declaration; the value assigned to the variable will be a \mbox{\hyperlink{data_type_declarations_hash_type}{hash}}. \end{DoxyItemize} \end{DoxyNote} \begin{DoxySeeAlso}{See also} \mbox{\hyperlink{parse_directives_requires}{\%requires}} for a similar parse directive where errors are handled with the default parse exception handler \end{DoxySeeAlso} \begin{DoxySince}{Since} Qore 0.\+8.\+6; the variant without the \mbox{\hyperlink{variables_variable_declarations}{variable declaration}} was introduced in Qore 0.\+8.\+6.\+1 \end{DoxySince} \DoxyHorRuler{0} \hypertarget{parse_directives_try-reexport-module}{}\doxysection{\%try-\/reexport-\/module}\label{parse_directives_try-reexport-module} \begin{DoxyParagraph}{Parse Directive\+:} {\ttfamily \%try-\/reexport-\/module} \mbox{[}(\mbox{\hyperlink{variables_variable_declarations}{var\+\_\+decl}})\mbox{]} {\itshape feature} {\ttfamily \mbox{[}$<$$|$$<$=$|$=$|$$>$=$|$$>$} {\itshape version}{\ttfamily \mbox{]}} \end{DoxyParagraph} \begin{DoxyParagraph}{Command Line\+:} n/a \end{DoxyParagraph} \begin{DoxyParagraph}{Parse Option Constant\+:} n/a \end{DoxyParagraph} \begin{DoxyParagraph}{Description\+:} Loads a Qore module immediately; if an error occurs loading the module, then the \mbox{\hyperlink{variables_variable_declarations}{variable}} declared in parentheses after {\ttfamily \%try-\/module} is instantiated with the exception information, and the code up to the \mbox{\hyperlink{parse_directives_endtry}{\%endtry}} parse declaration is parsed into the program, allowing for the qore script/program to handle module loading errors at parse time for modules that must be loaded at parse time.~\newline ~\newline A comparison operator (one of {\ttfamily $<$, $<$=, =, $>$=, or $>$}) and version information can be optionally given after the module name as well. Version numbers are compared via integer comparisons of each element, where elements are separated by a {\ttfamily \char`\"{}.\char`\"{}}. If one of the versions does not have as many elements as another, the missing elements are assumed to be {\ttfamily \char`\"{}0\char`\"{}} (i.\+e. version {\ttfamily \char`\"{}1.\+0\char`\"{}} compared with version {\ttfamily \char`\"{}1.\+0.\+1\char`\"{}} will be extended to {\ttfamily \char`\"{}1.\+0.\+0\char`\"{}}). Version errors are handled in the same was as any other module loading error.~\newline ~\newline If the module is successfully loaded in a \mbox{\hyperlink{qore_modules_user_modules}{user module}}, then the module is also reexported to any code that requires the importing module.~\newline ~\newline For example\+:~\newline \begin{DoxyCode}{0} \DoxyCodeLine{\%new-\/style} \DoxyCodeLine{\%\textcolor{keywordflow}{try}-\/reexport-\/module (ex) some\_module > 2.0} \DoxyCodeLine{\%define DontHaveSomeModule} \DoxyCodeLine{ \mbox{\hyperlink{group__string__functions_ga32070517a9f8a70a32ef48f83a6f128e}{printf}}(\textcolor{stringliteral}{"{}error loading module \%y: \%s: \%s\(\backslash\)n"{}}, ex.arg, ex.err, ex.desc);} \DoxyCodeLine{ exit(1);} \DoxyCodeLine{\%endtry} \DoxyCodeLine{} \DoxyCodeLine{\%ifndef DontHaveSomeModule} \DoxyCodeLine{ some\_module\_api();} \DoxyCodeLine{\%endif} \end{DoxyCode} ~\newline This will load the {\ttfamily \char`\"{}some\+\_\+module\char`\"{}} module if it is at least version 2.\+0, and print an error message and exit gracefully if it cannot be loaded. Note that in order for the \mbox{\hyperlink{namespace_qore}{Qore}} script to be executable and exit gracefully in case the given module cannot be loaded, a parse define must be set in the {\ttfamily \%try-\/module} block and any code that accesses definitions provided by that module must be wrapped in {\ttfamily \%ifndef} blocks as in the above example.~\newline ~\newline The \mbox{\hyperlink{variables_variable_declarations}{variable declaration}} in parentheses is optional; use the variant without the exception variable in code where parse option \mbox{\hyperlink{group__parse__options_ga3a99f2973e97f3986630d8204d7b91fd}{PO\+\_\+\+NO\+\_\+\+TOP\+\_\+\+LEVEL\+\_\+\+STATEMENTS}} is set, for example. In this case, for example, other parse options can be set before the \mbox{\hyperlink{parse_directives_endtry}{\%endtry}} directive.~\newline ~\newline Here is an example without a \mbox{\hyperlink{variables_variable_declarations}{variable declaration}} in parentheses\+:~\newline \begin{DoxyCode}{0} \DoxyCodeLine{\%new-\/style} \DoxyCodeLine{\%\textcolor{keywordflow}{try}-\/reexport-\/module some\_module > 2.0} \DoxyCodeLine{\%define DontHaveSomeModule} \DoxyCodeLine{\%endtry} \end{DoxyCode} ~\newline \end{DoxyParagraph} \begin{DoxyNote}{Note} \begin{DoxyItemize} \item There is one special feature name\+: {\ttfamily \char`\"{}qore\char`\"{}}. This pseudo-\/feature can be used to check the minimum Qore version; if this feature is requested with version information, then the Qore library\textquotesingle{}s version information is used for the version number comparison. \item No type can be given with the {\ttfamily \%try-\/module} variable declaration; the value assigned to the variable will be a \mbox{\hyperlink{data_type_declarations_hash_type}{hash}}. \end{DoxyItemize} \end{DoxyNote} \begin{DoxySeeAlso}{See also} \begin{DoxyItemize} \item \mbox{\hyperlink{parse_directives_try-module}{\%try-\/module}} \item \mbox{\hyperlink{parse_directives_requires}{\%requires}} for a similar parse directive where errors are handled with the default parse exception handler \end{DoxyItemize} \end{DoxySeeAlso} \begin{DoxySince}{Since} Qore 0.\+8.\+13 \end{DoxySince}