All Classes Namespaces Functions Variables Groups Pages
Parse Option Constants

## Variables

const | Qore::PO_ALLOW_BARE_REFS = PO_ALLOW_BARE_REFS
| Prohibits the use of the '$' character in variable names, method calls, and object member references.
const | Qore::PO_ASSUME_LOCAL = PO_ASSUME_LOCAL
| Assume local variable scope when variables are first referenced if no `my or` `our is` present.
const | Qore::PO_DEFAULT = PO_DEFAULT
| This option is the empty option, meaning no options are set.
const | Qore::PO_FREE_OPTIONS = PO_FREE_OPTIONS
| mask of options that have no effect on code access or code safety but just affect programming style
const | Qore::PO_IN_MODULE = PO_IN_MODULE
| Only set by the system when in a user module Program.
const | Qore::PO_LOCKDOWN = PO_LOCKDOWN
| Sets very restrictive access; this restriction is designed to allow code to only execute logic, no I/O, no threading, no external access.
const | Qore::PO_LOCK_WARNINGS = PO_LOCK_WARNINGS
| Disallows changes to the warning mask.
const | Qore::PO_NEW_STYLE = PO_NEW_STYLE
| Set a more C++ or Java type programming style; prohibits usage of the `"$"` character and also assumes local variable scope without `my.`
const | Qore::PO_NO_CHILD_PO_RESTRICTIONS = PO_NO_CHILD_PO_RESTRICTIONS
| Allows child program objects to have fewer parse restrictions (i.e. more capabilies) than the parent object.
const | Qore::PO_NO_CLASS_DEFS = PO_NO_CLASS_DEFS
| Disallows class definitions.
const | Qore::PO_NO_CONSTANT_DEFS = PO_NO_CONSTANT_DEFS
| Disallows constant definitions.
const | Qore::PO_NO_DATABASE = PO_NO_DATABASE
| Disallows access to database functionality.
const | Qore::PO_NO_EMBEDDED_LOGIC = PO_NO_EMBEDDED_LOGIC
| Prohibits embedded logic from being used.
const | Qore::PO_NO_EXTERNAL_ACCESS = PO_NO_EXTERNAL_ACCESS
| Prohibits any external access.
const | Qore::PO_NO_EXTERNAL_INFO = PO_NO_EXTERNAL_INFO
| Disallows access to functionality that provides information about the computing environment.
const | Qore::PO_NO_EXTERNAL_PROCESS = PO_NO_EXTERNAL_PROCESS
| Disallows any access to external processes (with system(), backquote(), exec(), etc)
const | Qore::PO_NO_FILESYSTEM = PO_NO_FILESYSTEM
| Disallows access to the filesystem.
const | Qore::PO_NO_GLOBAL_VARS = PO_NO_GLOBAL_VARS
| Disallows the use of global variables.
const | Qore::PO_NO_GUI = PO_NO_GUI
| Disallows access to functionality that draws graphics to the display.
const | Qore::PO_NO_INHERIT_GLOBAL_VARS = PO_NO_INHERIT_GLOBAL_VARS
| Precludes global variables from being inherited into the new Program object.
const | Qore::PO_NO_INHERIT_USER_FUNC_VARIANTS = PO_NO_INHERIT_USER_FUNC_VARIANTS
| Precludes public user function variants from being inherited into the new Program object.
const | Qore::PO_NO_IO = PO_NO_IO
| Prohibits all terminal and file I/O and GUI operations.
const | Qore::PO_NO_LOCALE_CONTROL = PO_NO_LOCALE_CONTROL
| Disallows access to functionality that can change locale parameters.
const | Qore::PO_NO_MODULES = PO_NO_MODULES
| Disallows loading modules with the %requires directive or at runtime with load_module()
const | Qore::PO_NO_NAMESPACE_DEFS = PO_NO_NAMESPACE_DEFS
| Disallows new namespace definitions.
const | Qore::PO_NO_NETWORK = PO_NO_NETWORK
| Disallows access to network functionality.
const | Qore::PO_NO_NEW = PO_NO_NEW
| Disallows use of the new operator.
const | Qore::PO_NO_PROCESS_CONTROL = PO_NO_PROCESS_CONTROL
| Disallows access to functions that would affect the current process (exit(), exec(), fork(), etc)
const | Qore::PO_NO_SUBROUTINE_DEFS = PO_NO_SUBROUTINE_DEFS
| Disallows subroutine (function) definitions.
const | Qore::PO_NO_SYSTEM_CLASSES = PO_NO_SYSTEM_CLASSES
| Prohibits system classes from being imported into the new Program object.
const | Qore::PO_NO_SYSTEM_FUNC_VARIANTS = PO_NO_SYSTEM_FUNC_VARIANTS
| Prohibits builtin/system function variants from being imported into the new Program object.
const | Qore::PO_NO_TERMINAL_IO = PO_NO_TERMINAL_IO
| Disallows access to reading from and/or writing to the terminal.
const | Qore::PO_NO_THREADS = PO_NO_THREADS
| Prohibits access to all threading information.
const | Qore::PO_NO_THREAD_CLASSES = PO_NO_THREAD_CLASSES
| Disallows access to any thread classes.
const | Qore::PO_NO_THREAD_CONTROL = PO_NO_THREAD_CONTROL
| Disallows access to any thread-control functions and thread-relevant statements and operators (for example the background operator and the thread_exit statement)
const | Qore::PO_NO_THREAD_INFO = PO_NO_THREAD_INFO
| Disallows access to functionality that provides information about threading.
const | Qore::PO_NO_TOP_LEVEL_STATEMENTS = PO_NO_TOP_LEVEL_STATEMENTS
| Disallows top level code.
const | Qore::PO_NO_USER_CLASSES = PO_NO_USER_CLASSES
| Prohibits user classes from being imported into the new Program object.
const | Qore::PO_POSITIVE_OPTIONS = PO_POSITIVE_OPTIONS
| mask of all parse options allowing for more freedom (instead of less)
const | Qore::PO_REQUIRE_OUR = PO_REQUIRE_OUR
| Requires global variables to be declared with our before use.
const | Qore::PO_REQUIRE_PROTOTYPES = PO_REQUIRE_PROTOTYPES
| Requires all function and method parameters and return types to have type declarations.
const | Qore::PO_REQUIRE_TYPES = PO_REQUIRE_TYPES
| Requires all function and method parameters, return types, variables, and object members to have type declarations.
const | Qore::PO_STRICT_ARGS = PO_STRICT_ARGS
| Prohibits access to builtin functions and methods flagged with RT_NOOP and also causes errors to be raised if excess arguments are given to functions that do not access excess arguments.
const | Qore::PO_STRICT_BOOLEAN_EVAL = PO_STRICT_BOOLEAN_EVAL
| Sets strict mathematical boolean evaluation runtime mode (the qore default prior to v0.8.6)

## Detailed Description

These are the possible values that can be or'ed together to set Program parse options

## Variable Documentation

const Qore::PO_ALLOW_BARE_REFS = PO_ALLOW_BARE_REFS

Prohibits the use of the '$' character in variable names, method calls, and object member references.

This option should probably be named `"PO_REQUIRE_BARE_REFS"` as it is an error to use the `"$"` character when this option is set

See Also
  %allow-bare-refs

const Qore::PO_ASSUME_LOCAL = PO_ASSUME_LOCAL

Assume local variable scope when variables are first referenced if no `my or` `our is` present.

This option is set implicitly with PO_NEW_STYLE

See Also
  %assume-local

const Qore::PO_FREE_OPTIONS = PO_FREE_OPTIONS

mask of options that have no effect on code access or code safety but just affect programming style

made up of PO_ALLOW_BARE_REFS | PO_ASSUME_LOCAL

const Qore::PO_IN_MODULE = PO_IN_MODULE

Only set by the system when in a user module Program.

Note
  This option cannot be set manually or an exception will be raised

const Qore::PO_LOCK_WARNINGS = PO_LOCK_WARNINGS

Disallows changes to the warning mask.

See Also
  %lock-warnings

const Qore::PO_LOCKDOWN = PO_LOCKDOWN

Sets very restrictive access; this restriction is designed to allow code to only execute logic, no I/O, no threading, no external access.

made up of PO_NO_EXTERNAL_ACCESS | PO_NO_THREADS | PO_NO_IO

See Also
  %lockdown

const Qore::PO_NEW_STYLE = PO_NEW_STYLE

Set a more C++ or Java type programming style; prohibits usage of the `"$"` character and also assumes local variable scope without `my.`

made up of PO_ALLOW_BARE_REFS | PO_ASSUME_LOCAL

See Also
  %new-style

const Qore::PO_NO_CHILD_PO_RESTRICTIONS = PO_NO_CHILD_PO_RESTRICTIONS

Allows child program objects to have fewer parse restrictions (i.e. more capabilies) than the parent object.

See Also
  %no-child-restrictions

const Qore::PO_NO_CLASS_DEFS = PO_NO_CLASS_DEFS

Disallows class definitions.

See Also
  %no-class-defs

const Qore::PO_NO_CONSTANT_DEFS = PO_NO_CONSTANT_DEFS

Disallows constant definitions.

See Also
  %no-constant-defs

const Qore::PO_NO_DATABASE = PO_NO_DATABASE

Disallows access to database functionality.

See Also
  %no-database

const Qore::PO_NO_EXTERNAL_ACCESS = PO_NO_EXTERNAL_ACCESS

Prohibits any external access.

made up of PO_NO_PROCESS_CONTROL | PO_NO_NETWORK | PO_NO_FILESYSTEM | PO_NO_DATABASE | PO_NO_EXTERNAL_INFO | PO_NO_EXTERNAL_PROCESS

See Also
  %no-external-access

const Qore::PO_NO_EXTERNAL_INFO = PO_NO_EXTERNAL_INFO

Disallows access to functionality that provides information about the computing environment.

See Also
  %no-external-info

const Qore::PO_NO_EXTERNAL_PROCESS = PO_NO_EXTERNAL_PROCESS

Disallows any access to external processes (with system(), backquote(), exec(), etc)

See Also
  %no-external-process

const Qore::PO_NO_FILESYSTEM = PO_NO_FILESYSTEM

Disallows access to the filesystem.

See Also
  %no-filesystem

const Qore::PO_NO_GLOBAL_VARS = PO_NO_GLOBAL_VARS

Disallows the use of global variables.

See Also
  %no-global-vars

const Qore::PO_NO_GUI = PO_NO_GUI

Disallows access to functionality that draws graphics to the display.

See Also
  PO_NO_TERMINAL_IO
  %no-gui

const Qore::PO_NO_IO = PO_NO_IO

Prohibits all terminal and file I/O and GUI operations.

made up of PO_NO_GUI | PO_NO_TERMINAL_IO | PO_NO_FILESYSTEM | PO_NO_NETWORK | PO_NO_DATABASE

See Also
  %no-io

const Qore::PO_NO_LOCALE_CONTROL = PO_NO_LOCALE_CONTROL

Disallows access to functionality that can change locale parameters.

See Also
  %no-locale-control

const Qore::PO_NO_MODULES = PO_NO_MODULES

Disallows loading modules with the %requires directive or at runtime with load_module()

See Also
  %no-modules

const Qore::PO_NO_NAMESPACE_DEFS = PO_NO_NAMESPACE_DEFS

Disallows new namespace definitions.

See Also
  %no-namespace-defs

const Qore::PO_NO_NETWORK = PO_NO_NETWORK

Disallows access to network functionality.

See Also
  %no-network

const Qore::PO_NO_NEW = PO_NO_NEW

Disallows use of the new operator.

Note that objects can still be instantiated with syntax like:

my Mutex $m();

See Also
  %no-new

const Qore::PO_NO_PROCESS_CONTROL = PO_NO_PROCESS_CONTROL

Disallows access to functions that would affect the current process (exit(), exec(), fork(), etc)

See Also
  %no-process-control

const Qore::PO_NO_SUBROUTINE_DEFS = PO_NO_SUBROUTINE_DEFS

Disallows subroutine (function) definitions.

See Also
  %no-subroutine-defs

const Qore::PO_NO_TERMINAL_IO = PO_NO_TERMINAL_IO

Disallows access to reading from and/or writing to the terminal.

See Also
  %no-terminal-io

const Qore::PO_NO_THREAD_CLASSES = PO_NO_THREAD_CLASSES

Disallows access to any thread classes.

See Also
  %no-thread-classes

const Qore::PO_NO_THREAD_CONTROL = PO_NO_THREAD_CONTROL

Disallows access to any thread-control functions and thread-relevant statements and operators (for example the background operator and the thread_exit statement)

See Also
  %no-thread-control

const Qore::PO_NO_THREAD_INFO = PO_NO_THREAD_INFO

Disallows access to functionality that provides information about threading.

See Also
  %no-thread-info

const Qore::PO_NO_THREADS = PO_NO_THREADS

Prohibits access to all threading information.

made up of PO_NO_THREAD_CONTROL | PO_NO_THREAD_CLASSES | PO_NO_THREAD_INFO

See Also
  %no-threads

const Qore::PO_NO_TOP_LEVEL_STATEMENTS = PO_NO_TOP_LEVEL_STATEMENTS

Disallows top level code.

See Also
  %no-top-level

const Qore::PO_POSITIVE_OPTIONS = PO_POSITIVE_OPTIONS

mask of all parse options allowing for more freedom (instead of less)

made up of only PO_NO_CHILD_PO_RESTRICTIONS

const Qore::PO_REQUIRE_OUR = PO_REQUIRE_OUR

Requires global variables to be declared with our before use.

See Also
  %require-our

const Qore::PO_REQUIRE_PROTOTYPES = PO_REQUIRE_PROTOTYPES

Requires all function and method parameters and return types to have type declarations.

However, variable declarations and object members are not required to have type declarations

See Also
  PO_REQUIRE_TYPES
  %require-prototypes

const Qore::PO_REQUIRE_TYPES = PO_REQUIRE_TYPES

Requires all function and method parameters, return types, variables, and object members to have type declarations.

Note
  This option also implies PO_STRICT_ARGS

See Also
  PO_REQUIRE_PROTOTYPES
  %require-types

const Qore::PO_STRICT_ARGS = PO_STRICT_ARGS

Prohibits access to builtin functions and methods flagged with RT_NOOP and also causes errors to be raised if excess arguments are given to functions that do not access excess arguments.

This option is set implicitly with PO_REQUIRE_TYPES

See Also
  %strict-args

const Qore::PO_STRICT_BOOLEAN_EVAL = PO_STRICT_BOOLEAN_EVAL

Sets strict mathematical boolean evaluation runtime mode (the qore default prior to v0.8.6)

See Also
  %strict-bool-eval

Since
  Qore 0.8.6