Qore Programming Language Reference Manual  0.8.12.8
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. More...
 
const Qore::PO_ALLOW_INJECTION = PO_ALLOW_INJECTION
 Allows code/dependency injections in the contained Program object. More...
 
const Qore::PO_ASSUME_LOCAL = PO_ASSUME_LOCAL
 Assume local variable scope when variables are first referenced if no my or our is present. More...
 
const Qore::PO_BROKEN_INT_ASSIGNMENTS = PO_BROKEN_INT_ASSIGNMENTS
 allows for old pre-Qore 0.8.12 broken runtime int assignments where runtime type errors were ignored More...
 
const Qore::PO_BROKEN_LIST_PARSING = PO_BROKEN_LIST_PARSING
 allows for old pre-Qore 0.8.12 broken list rewriting in the parser More...
 
const Qore::PO_BROKEN_LOGIC_PRECEDENCE = PO_BROKEN_LOGIC_PRECEDENCE
 allows for old pre-Qore 0.8.12 precedence of logical and bitwise operators More...
 
const Qore::PO_BROKEN_OPERATORS = PO_BROKEN_OPERATORS
 allows for old pre-Qore 0.8.12 broken runtime parsing of multi-character operators with spaces More...
 
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 More...
 
const Qore::PO_IN_MODULE = PO_IN_MODULE
 Only set by the system when in a user module Program. More...
 
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. More...
 
const Qore::PO_LOCK_WARNINGS = PO_LOCK_WARNINGS
 Disallows changes to the warning mask. More...
 
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. More...
 
const Qore::PO_NO_API = PO_NO_API
 Prohibits any code from being inherited into the Program object, including the system API. More...
 
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. More...
 
const Qore::PO_NO_CLASS_DEFS = PO_NO_CLASS_DEFS
 Disallows class definitions. More...
 
const Qore::PO_NO_CONSTANT_DEFS = PO_NO_CONSTANT_DEFS
 Disallows constant definitions. More...
 
const Qore::PO_NO_DATABASE = PO_NO_DATABASE
 Disallows access to database functionality. More...
 
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. More...
 
const Qore::PO_NO_EXTERNAL_INFO = PO_NO_EXTERNAL_INFO
 Disallows access to functionality that provides information about the computing environment. More...
 
const Qore::PO_NO_EXTERNAL_PROCESS = PO_NO_EXTERNAL_PROCESS
 Disallows any access to external processes (with system(), backquote(), exec(), etc) More...
 
const Qore::PO_NO_FILESYSTEM = PO_NO_FILESYSTEM
 Disallows access to the filesystem. More...
 
const Qore::PO_NO_GLOBAL_VARS = PO_NO_GLOBAL_VARS
 Disallows the use of global variables. More...
 
const Qore::PO_NO_GUI = PO_NO_GUI
 Disallows access to functionality that draws graphics to the display. More...
 
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_SYSTEM_CLASSES = PO_NO_INHERIT_SYSTEM_CLASSES
 Prohibits system classes from being imported into the new Program object. More...
 
const Qore::PO_NO_INHERIT_SYSTEM_CONSTANTS = PO_NO_INHERIT_SYSTEM_CONSTANTS
 Prohibits system constants from being imported into the new Program object. More...
 
const Qore::PO_NO_INHERIT_SYSTEM_FUNC_VARIANTS = PO_NO_INHERIT_SYSTEM_FUNC_VARIANTS
 Prohibits builtin/system function variants from being imported into the new Program object. More...
 
const Qore::PO_NO_INHERIT_USER_CLASSES = PO_NO_INHERIT_USER_CLASSES
 Prohibits user classes from being imported into the new Program object. More...
 
const Qore::PO_NO_INHERIT_USER_CONSTANTS = PO_NO_INHERIT_USER_CONSTANTS
 Prohibits user constants from being imported into the new Program object. More...
 
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. More...
 
const Qore::PO_NO_LOCALE_CONTROL = PO_NO_LOCALE_CONTROL
 Disallows access to functionality that can change locale parameters. More...
 
const Qore::PO_NO_MODULES = PO_NO_MODULES
 Disallows loading modules with the %requires directive or at runtime with load_module() More...
 
const Qore::PO_NO_NAMESPACE_DEFS = PO_NO_NAMESPACE_DEFS
 Disallows new namespace definitions. More...
 
const Qore::PO_NO_NETWORK = PO_NO_NETWORK
 Disallows access to network functionality. More...
 
const Qore::PO_NO_NEW = PO_NO_NEW
 Disallows use of the new operator. More...
 
const Qore::PO_NO_PROCESS_CONTROL = PO_NO_PROCESS_CONTROL
 Disallows access to functions that would affect the current process (exit(), exec(), fork(), etc) More...
 
const Qore::PO_NO_SUBROUTINE_DEFS = PO_NO_SUBROUTINE_DEFS
 Disallows subroutine (function) definitions. More...
 
const Qore::PO_NO_SYSTEM_API = PO_NO_SYSTEM_API
 Prohibits any code from being inherited into the Program object, including the system API. More...
 
const Qore::PO_NO_SYSTEM_CLASSES = PO_NO_INHERIT_SYSTEM_CLASSES
 Prohibits system classes from being imported into the new Program object. More...
 
const Qore::PO_NO_SYSTEM_FUNC_VARIANTS = PO_NO_INHERIT_SYSTEM_FUNC_VARIANTS
 Prohibits builtin/system function variants from being imported into the new Program object. More...
 
const Qore::PO_NO_TERMINAL_IO = PO_NO_TERMINAL_IO
 Disallows access to reading from and/or writing to the terminal. More...
 
const Qore::PO_NO_THREADS = PO_NO_THREADS
 Prohibits access to all threading information. More...
 
const Qore::PO_NO_THREAD_CLASSES = PO_NO_THREAD_CLASSES
 Disallows access to any thread classes. More...
 
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) More...
 
const Qore::PO_NO_THREAD_INFO = PO_NO_THREAD_INFO
 Disallows access to functionality that provides information about threading. More...
 
const Qore::PO_NO_TOP_LEVEL_STATEMENTS = PO_NO_TOP_LEVEL_STATEMENTS
 Disallows top level code. More...
 
const Qore::PO_NO_USER_API = PO_NO_USER_API
 Prohibits any user code from being inherited into the Program object. More...
 
const Qore::PO_NO_USER_CLASSES = PO_NO_INHERIT_USER_CLASSES
 Prohibits user classes from being imported into the new Program object. More...
 
const Qore::PO_POSITIVE_OPTIONS = PO_POSITIVE_OPTIONS
 mask of all parse options allowing for more freedom (instead of less) More...
 
const Qore::PO_REQUIRE_OUR = PO_REQUIRE_OUR
 Requires global variables to be declared with our before use. More...
 
const Qore::PO_REQUIRE_PROTOTYPES = PO_REQUIRE_PROTOTYPES
 Requires all function and method parameters and return types to have type declarations. More...
 
const Qore::PO_REQUIRE_TYPES = PO_REQUIRE_TYPES
 Requires all function and method parameters, return types, variables, and object members to have type declarations. More...
 
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. More...
 
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) More...
 
const Qore::ParseOptionCodeMap = qore(pomaps.getCodeToStringMap())
 Maps from parse option code values (as string keys) to parse option names. More...
 
const Qore::ParseOptionStringMap = qore(pomaps.getStringToCodeMap())
 Maps from parse option strings to parse option integer codes. More...
 

Detailed Description

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

Variable Documentation

◆ ParseOptionCodeMap

const Qore::ParseOptionCodeMap = qore(pomaps.getCodeToStringMap())

Maps from parse option code values (as string keys) to parse option names.

See also
ParseOptionStringMap for the reverse mapping
Since
Qore 0.8.12

◆ ParseOptionStringMap

const Qore::ParseOptionStringMap = qore(pomaps.getStringToCodeMap())

Maps from parse option strings to parse option integer codes.

See also
ParseOptionCodeMap for the reverse mapping
Since
Qore 0.8.12

◆ PO_ALLOW_BARE_REFS

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

◆ PO_ALLOW_INJECTION

const Qore::PO_ALLOW_INJECTION = PO_ALLOW_INJECTION

Allows code/dependency injections in the contained Program object.

See also
Since
Qore 0.8.12

◆ PO_ASSUME_LOCAL

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

◆ PO_BROKEN_INT_ASSIGNMENTS

const Qore::PO_BROKEN_INT_ASSIGNMENTS = PO_BROKEN_INT_ASSIGNMENTS

allows for old pre-Qore 0.8.12 broken runtime int assignments where runtime type errors were ignored

See also
%broken-int-assignments
Since
Qore 0.8.12

◆ PO_BROKEN_LIST_PARSING

const Qore::PO_BROKEN_LIST_PARSING = PO_BROKEN_LIST_PARSING

allows for old pre-Qore 0.8.12 broken list rewriting in the parser

See also
%broken-list-parsing
Since
Qore 0.8.12

◆ PO_BROKEN_LOGIC_PRECEDENCE

const Qore::PO_BROKEN_LOGIC_PRECEDENCE = PO_BROKEN_LOGIC_PRECEDENCE

allows for old pre-Qore 0.8.12 precedence of logical and bitwise operators

See also
%broken-logic-precedence
Since
Qore 0.8.12

◆ PO_BROKEN_OPERATORS

const Qore::PO_BROKEN_OPERATORS = PO_BROKEN_OPERATORS

allows for old pre-Qore 0.8.12 broken runtime parsing of multi-character operators with spaces

See also
%broken-operators
Since
Qore 0.8.12

◆ PO_FREE_OPTIONS

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

◆ PO_IN_MODULE

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

◆ PO_LOCK_WARNINGS

const Qore::PO_LOCK_WARNINGS = PO_LOCK_WARNINGS

Disallows changes to the warning mask.

See also
%lock-warnings

◆ PO_LOCKDOWN

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

◆ PO_NEW_STYLE

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

◆ PO_NO_API

const Qore::PO_NO_API = PO_NO_API

◆ PO_NO_CHILD_PO_RESTRICTIONS

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

◆ PO_NO_CLASS_DEFS

const Qore::PO_NO_CLASS_DEFS = PO_NO_CLASS_DEFS

Disallows class definitions.

See also
%no-class-defs

◆ PO_NO_CONSTANT_DEFS

const Qore::PO_NO_CONSTANT_DEFS = PO_NO_CONSTANT_DEFS

Disallows constant definitions.

See also
%no-constant-defs

◆ PO_NO_DATABASE

const Qore::PO_NO_DATABASE = PO_NO_DATABASE

Disallows access to database functionality.

See also
%no-database

◆ PO_NO_EXTERNAL_ACCESS

const Qore::PO_NO_EXTERNAL_ACCESS = PO_NO_EXTERNAL_ACCESS

◆ PO_NO_EXTERNAL_INFO

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

◆ PO_NO_EXTERNAL_PROCESS

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

◆ PO_NO_FILESYSTEM

const Qore::PO_NO_FILESYSTEM = PO_NO_FILESYSTEM

Disallows access to the filesystem.

See also
%no-filesystem

◆ PO_NO_GLOBAL_VARS

const Qore::PO_NO_GLOBAL_VARS = PO_NO_GLOBAL_VARS

Disallows the use of global variables.

See also
%no-global-vars

◆ PO_NO_GUI

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

◆ PO_NO_INHERIT_SYSTEM_CLASSES

const Qore::PO_NO_INHERIT_SYSTEM_CLASSES = PO_NO_INHERIT_SYSTEM_CLASSES

Prohibits system classes from being imported into the new Program object.

Note
: PO_NO_SYSTEM_CLASSES is a synonym of this constant
Since
Qore 0.8.12 to harmonize permission names

◆ PO_NO_INHERIT_SYSTEM_CONSTANTS

const Qore::PO_NO_INHERIT_SYSTEM_CONSTANTS = PO_NO_INHERIT_SYSTEM_CONSTANTS

Prohibits system constants from being imported into the new Program object.

Note
this does not apply to class constants
Since
Qore 0.8.12

◆ PO_NO_INHERIT_SYSTEM_FUNC_VARIANTS

const Qore::PO_NO_INHERIT_SYSTEM_FUNC_VARIANTS = PO_NO_INHERIT_SYSTEM_FUNC_VARIANTS

Prohibits builtin/system function variants from being imported into the new Program object.

Note
: PO_NO_SYSTEM_FUNC_VARIANTS is a synonym of this constant
Since
Qore 0.8.12 to harmonize permission names

◆ PO_NO_INHERIT_USER_CLASSES

const Qore::PO_NO_INHERIT_USER_CLASSES = PO_NO_INHERIT_USER_CLASSES

Prohibits user classes from being imported into the new Program object.

Note
: PO_NO_USER_CLASSES is a synonym of this constant
Since
Qore 0.8.12 to harmonize permission names

◆ PO_NO_INHERIT_USER_CONSTANTS

const Qore::PO_NO_INHERIT_USER_CONSTANTS = PO_NO_INHERIT_USER_CONSTANTS

Prohibits user constants from being imported into the new Program object.

Note
this does not apply to class constants
Since
Qore 0.8.12

◆ PO_NO_IO

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

◆ PO_NO_LOCALE_CONTROL

const Qore::PO_NO_LOCALE_CONTROL = PO_NO_LOCALE_CONTROL

Disallows access to functionality that can change locale parameters.

See also
%no-locale-control

◆ PO_NO_MODULES

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

◆ PO_NO_NAMESPACE_DEFS

const Qore::PO_NO_NAMESPACE_DEFS = PO_NO_NAMESPACE_DEFS

Disallows new namespace definitions.

See also
%no-namespace-defs

◆ PO_NO_NETWORK

const Qore::PO_NO_NETWORK = PO_NO_NETWORK

Disallows access to network functionality.

See also
%no-network

◆ PO_NO_NEW

const Qore::PO_NO_NEW = PO_NO_NEW

Disallows use of the new operator.

Note that objects can still be instantiated with syntax like:

Mutex m();
See also
%no-new

◆ PO_NO_PROCESS_CONTROL

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

◆ PO_NO_SUBROUTINE_DEFS

const Qore::PO_NO_SUBROUTINE_DEFS = PO_NO_SUBROUTINE_DEFS

Disallows subroutine (function) definitions.

See also
%no-subroutine-defs

◆ PO_NO_SYSTEM_API

const Qore::PO_NO_SYSTEM_API = PO_NO_SYSTEM_API

Prohibits any code from being inherited into the Program object, including the system API.

made up of:

Since
Qore 0.8.12

◆ PO_NO_SYSTEM_CLASSES

const Qore::PO_NO_SYSTEM_CLASSES = PO_NO_INHERIT_SYSTEM_CLASSES

Prohibits system classes from being imported into the new Program object.

Note
PO_NO_INHERIT_SYSTEM_CLASSES was added in Qore 0.8.12 with the same value of this constant to provide a consistent naming convention for inheritance permissions

◆ PO_NO_SYSTEM_FUNC_VARIANTS

const Qore::PO_NO_SYSTEM_FUNC_VARIANTS = PO_NO_INHERIT_SYSTEM_FUNC_VARIANTS

Prohibits builtin/system function variants from being imported into the new Program object.

Note
PO_NO_INHERIT_SYSTEM_FUNC_VARIANTS was added in Qore 0.8.12 with the same value of this constant to provide a consistent naming convention for inheritance permissions

◆ PO_NO_TERMINAL_IO

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

◆ PO_NO_THREAD_CLASSES

const Qore::PO_NO_THREAD_CLASSES = PO_NO_THREAD_CLASSES

Disallows access to any thread classes.

See also
%no-thread-classes

◆ PO_NO_THREAD_CONTROL

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

◆ PO_NO_THREAD_INFO

const Qore::PO_NO_THREAD_INFO = PO_NO_THREAD_INFO

Disallows access to functionality that provides information about threading.

See also
%no-thread-info

◆ PO_NO_THREADS

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

◆ PO_NO_TOP_LEVEL_STATEMENTS

const Qore::PO_NO_TOP_LEVEL_STATEMENTS = PO_NO_TOP_LEVEL_STATEMENTS

Disallows top level code.

See also
%no-top-level

◆ PO_NO_USER_API

const Qore::PO_NO_USER_API = PO_NO_USER_API

Prohibits any user code from being inherited into the Program object.

made up of:

Since
Qore 0.8.12

◆ PO_NO_USER_CLASSES

const Qore::PO_NO_USER_CLASSES = PO_NO_INHERIT_USER_CLASSES

Prohibits user classes from being imported into the new Program object.

Note
PO_NO_INHERIT_USER_CLASSES was added in Qore 0.8.12 with the same value of this constant to provide a consistent naming convention for inheritance permissions

◆ PO_POSITIVE_OPTIONS

const Qore::PO_POSITIVE_OPTIONS = PO_POSITIVE_OPTIONS

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

made up of a binary-or'ed combination of:

◆ PO_REQUIRE_OUR

const Qore::PO_REQUIRE_OUR = PO_REQUIRE_OUR

Requires global variables to be declared with our before use.

See also
%require-our

◆ PO_REQUIRE_PROTOTYPES

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

◆ PO_REQUIRE_TYPES

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

◆ PO_STRICT_ARGS

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

◆ PO_STRICT_BOOLEAN_EVAL

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