|
Ruby 4.1.0dev (2026-04-04 revision 3b6245536cf55da9e8bfcdb03c845fe9ef931d7f)
|
The options that can be passed to parsing. More...
#include "prism/compiler/exported.h"#include "prism/compiler/nodiscard.h"#include "prism/compiler/nonnull.h"#include "prism/stringy.h"#include <stdbool.h>#include <stddef.h>

Go to the source code of this file.
Macros | |
| #define | PM_OPTIONS_FROZEN_STRING_LITERAL_DISABLED ((int8_t) -1) |
| String literals should not be frozen. | |
| #define | PM_OPTIONS_FROZEN_STRING_LITERAL_UNSET ((int8_t) 0) |
| String literals may be frozen or mutable depending on the implementation default. | |
| #define | PM_OPTIONS_FROZEN_STRING_LITERAL_ENABLED ((int8_t) 1) |
| String literals should be made frozen. | |
Typedefs | |
| typedef struct pm_options_scope_t | pm_options_scope_t |
| A scope of locals surrounding the code that is being parsed. | |
| typedef struct pm_options_t | pm_options_t |
| The options that can be passed to the parser. | |
| typedef void(* | pm_options_shebang_callback_t) (pm_options_t *options, const uint8_t *source, size_t length, void *shebang_callback_data) |
| The callback called when additional switches are found in a shebang comment that need to be processed by the runtime. | |
Functions | |
| PRISM_EXPORTED_FUNCTION PRISM_NODISCARD pm_options_t * | pm_options_new (void) |
| Allocate a new options struct. | |
| PRISM_EXPORTED_FUNCTION void | pm_options_free (pm_options_t *options) PRISM_NONNULL(1) |
| Free both the held memory of the given options struct and the struct itself. | |
| PRISM_EXPORTED_FUNCTION void | pm_options_shebang_callback_set (pm_options_t *options, pm_options_shebang_callback_t shebang_callback, void *shebang_callback_data) PRISM_NONNULL(1) |
| Set the shebang callback option on the given options struct. | |
| PRISM_EXPORTED_FUNCTION const pm_string_t * | pm_options_filepath (const pm_options_t *options) PRISM_NONNULL(1) |
| Get the filepath option on the given options struct. | |
| PRISM_EXPORTED_FUNCTION void | pm_options_filepath_set (pm_options_t *options, const char *filepath) PRISM_NONNULL(1) |
| Set the filepath option on the given options struct. | |
| PRISM_EXPORTED_FUNCTION void | pm_options_line_set (pm_options_t *options, int32_t line) PRISM_NONNULL(1) |
| Set the line option on the given options struct. | |
| PRISM_EXPORTED_FUNCTION void | pm_options_encoding_set (pm_options_t *options, const char *encoding) PRISM_NONNULL(1) |
| Set the encoding option on the given options struct. | |
| PRISM_EXPORTED_FUNCTION void | pm_options_encoding_locked_set (pm_options_t *options, bool encoding_locked) PRISM_NONNULL(1) |
| Set the encoding_locked option on the given options struct. | |
| PRISM_EXPORTED_FUNCTION void | pm_options_frozen_string_literal_set (pm_options_t *options, bool frozen_string_literal) PRISM_NONNULL(1) |
| Set the frozen string literal option on the given options struct. | |
| PRISM_EXPORTED_FUNCTION void | pm_options_command_line_set (pm_options_t *options, uint8_t command_line) PRISM_NONNULL(1) |
| Sets the command line option on the given options struct. | |
| PRISM_EXPORTED_FUNCTION bool | pm_options_version_set (pm_options_t *options, const char *version, size_t length) PRISM_NONNULL(1) |
| Set the version option on the given options struct by parsing the given string. | |
| PRISM_EXPORTED_FUNCTION void | pm_options_version_set_lowest (pm_options_t *options) PRISM_NONNULL(1) |
| Set the version option on the given options struct to the lowest version of Ruby that prism supports. | |
| PRISM_EXPORTED_FUNCTION void | pm_options_version_set_highest (pm_options_t *options) PRISM_NONNULL(1) |
| Set the version option on the given options struct to the highest version of Ruby that prism supports. | |
| PRISM_EXPORTED_FUNCTION void | pm_options_main_script_set (pm_options_t *options, bool main_script) PRISM_NONNULL(1) |
| Set the main script option on the given options struct. | |
| PRISM_EXPORTED_FUNCTION void | pm_options_partial_script_set (pm_options_t *options, bool partial_script) PRISM_NONNULL(1) |
| Set the partial script option on the given options struct. | |
| PRISM_EXPORTED_FUNCTION bool | pm_options_freeze (const pm_options_t *options) PRISM_NONNULL(1) |
| Get the freeze option on the given options struct. | |
| PRISM_EXPORTED_FUNCTION void | pm_options_freeze_set (pm_options_t *options, bool freeze) PRISM_NONNULL(1) |
| Set the freeze option on the given options struct. | |
| PRISM_EXPORTED_FUNCTION bool | pm_options_scopes_init (pm_options_t *options, size_t scopes_count) PRISM_NONNULL(1) |
| Allocate and zero out the scopes array on the given options struct. | |
| PRISM_EXPORTED_FUNCTION const pm_options_scope_t * | pm_options_scope (const pm_options_t *options, size_t index) PRISM_NONNULL(1) |
| Return a constant pointer to the scope at the given index within the given options. | |
| PRISM_EXPORTED_FUNCTION pm_options_scope_t * | pm_options_scope_mut (pm_options_t *options, size_t index) PRISM_NONNULL(1) |
| Return a mutable pointer to the scope at the given index within the given options. | |
| PRISM_EXPORTED_FUNCTION void | pm_options_scope_init (pm_options_scope_t *scope, size_t locals_count) PRISM_NONNULL(1) |
| Create a new options scope struct. | |
| PRISM_EXPORTED_FUNCTION const pm_string_t * | pm_options_scope_local (const pm_options_scope_t *scope, size_t index) PRISM_NONNULL(1) |
| Return a constant pointer to the local at the given index within the given scope. | |
| PRISM_EXPORTED_FUNCTION pm_string_t * | pm_options_scope_local_mut (pm_options_scope_t *scope, size_t index) PRISM_NONNULL(1) |
| Return a mutable pointer to the local at the given index within the given scope. | |
| PRISM_EXPORTED_FUNCTION void | pm_options_scope_forwarding_set (pm_options_scope_t *scope, uint8_t forwarding) PRISM_NONNULL(1) |
| Set the forwarding option on the given scope struct. | |
Variables | |
| static const uint8_t | PM_OPTIONS_SCOPE_FORWARDING_NONE = 0x0 |
| The default value for parameters. | |
| static const uint8_t | PM_OPTIONS_SCOPE_FORWARDING_POSITIONALS = 0x1 |
| When the scope is forwarding with the * parameter. | |
| static const uint8_t | PM_OPTIONS_SCOPE_FORWARDING_KEYWORDS = 0x2 |
| When the scope is forwarding with the ** parameter. | |
| static const uint8_t | PM_OPTIONS_SCOPE_FORWARDING_BLOCK = 0x4 |
| When the scope is forwarding with the & parameter. | |
| static const uint8_t | PM_OPTIONS_SCOPE_FORWARDING_ALL = 0x8 |
| When the scope is forwarding with the ... parameter. | |
| static const uint8_t | PM_OPTIONS_COMMAND_LINE_A = 0x1 |
| A bit representing whether or not the command line -a option was set. | |
| static const uint8_t | PM_OPTIONS_COMMAND_LINE_E = 0x2 |
| A bit representing whether or not the command line -e option was set. | |
| static const uint8_t | PM_OPTIONS_COMMAND_LINE_L = 0x4 |
| A bit representing whether or not the command line -l option was set. | |
| static const uint8_t | PM_OPTIONS_COMMAND_LINE_N = 0x8 |
| A bit representing whether or not the command line -n option was set. | |
| static const uint8_t | PM_OPTIONS_COMMAND_LINE_P = 0x10 |
| A bit representing whether or not the command line -p option was set. | |
| static const uint8_t | PM_OPTIONS_COMMAND_LINE_X = 0x20 |
| A bit representing whether or not the command line -x option was set. | |
The options that can be passed to parsing.
Definition in file options.h.
| #define PM_OPTIONS_FROZEN_STRING_LITERAL_DISABLED ((int8_t) -1) |
| #define PM_OPTIONS_FROZEN_STRING_LITERAL_ENABLED ((int8_t) 1) |
| #define PM_OPTIONS_FROZEN_STRING_LITERAL_UNSET ((int8_t) 0) |
| typedef struct pm_options_scope_t pm_options_scope_t |
| typedef void(* pm_options_shebang_callback_t) (pm_options_t *options, const uint8_t *source, size_t length, void *shebang_callback_data) |
The callback called when additional switches are found in a shebang comment that need to be processed by the runtime.
| options | The options struct that may be updated by this callback. Certain fields will be checked for changes, specifically encoding, command_line, and frozen_string_literal. |
| source | The source of the shebang comment. |
| length | The length of the source. |
| shebang_callback_data | Any additional data that should be passed along to the callback. |
| typedef struct pm_options_t pm_options_t |
| PRISM_EXPORTED_FUNCTION void pm_options_command_line_set | ( | pm_options_t * | options, |
| uint8_t | command_line | ||
| ) |
| PRISM_EXPORTED_FUNCTION void pm_options_encoding_locked_set | ( | pm_options_t * | options, |
| bool | encoding_locked | ||
| ) |
| PRISM_EXPORTED_FUNCTION void pm_options_encoding_set | ( | pm_options_t * | options, |
| const char * | encoding | ||
| ) |
| PRISM_EXPORTED_FUNCTION const pm_string_t * pm_options_filepath | ( | const pm_options_t * | options | ) |
| PRISM_EXPORTED_FUNCTION void pm_options_filepath_set | ( | pm_options_t * | options, |
| const char * | filepath | ||
| ) |
| PRISM_EXPORTED_FUNCTION void pm_options_free | ( | pm_options_t * | options | ) |
| PRISM_EXPORTED_FUNCTION bool pm_options_freeze | ( | const pm_options_t * | options | ) |
| PRISM_EXPORTED_FUNCTION void pm_options_freeze_set | ( | pm_options_t * | options, |
| bool | freeze | ||
| ) |
| PRISM_EXPORTED_FUNCTION void pm_options_frozen_string_literal_set | ( | pm_options_t * | options, |
| bool | frozen_string_literal | ||
| ) |
| PRISM_EXPORTED_FUNCTION void pm_options_line_set | ( | pm_options_t * | options, |
| int32_t | line | ||
| ) |
| PRISM_EXPORTED_FUNCTION void pm_options_main_script_set | ( | pm_options_t * | options, |
| bool | main_script | ||
| ) |
| PRISM_EXPORTED_FUNCTION PRISM_NODISCARD pm_options_t * pm_options_new | ( | void | ) |
Allocate a new options struct.
If the options struct cannot be allocated, this function aborts the process.
If the options struct cannot be allocated, this function aborts the process.
| PRISM_EXPORTED_FUNCTION void pm_options_partial_script_set | ( | pm_options_t * | options, |
| bool | partial_script | ||
| ) |
| PRISM_EXPORTED_FUNCTION const pm_options_scope_t * pm_options_scope | ( | const pm_options_t * | options, |
| size_t | index | ||
| ) |
| PRISM_EXPORTED_FUNCTION void pm_options_scope_forwarding_set | ( | pm_options_scope_t * | scope, |
| uint8_t | forwarding | ||
| ) |
| PRISM_EXPORTED_FUNCTION void pm_options_scope_init | ( | pm_options_scope_t * | scope, |
| size_t | locals_count | ||
| ) |
Create a new options scope struct.
This will hold a set of locals that are in scope surrounding the code that is being parsed. If the scope was unable to allocate its locals, this function will abort the process.
| scope | The scope struct to initialize. |
| locals_count | The number of locals to allocate. |
This will hold a set of locals that are in scope surrounding the code that is being parsed.
| PRISM_EXPORTED_FUNCTION const pm_string_t * pm_options_scope_local | ( | const pm_options_scope_t * | scope, |
| size_t | index | ||
| ) |
| PRISM_EXPORTED_FUNCTION pm_string_t * pm_options_scope_local_mut | ( | pm_options_scope_t * | scope, |
| size_t | index | ||
| ) |
| PRISM_EXPORTED_FUNCTION pm_options_scope_t * pm_options_scope_mut | ( | pm_options_t * | options, |
| size_t | index | ||
| ) |
| PRISM_EXPORTED_FUNCTION bool pm_options_scopes_init | ( | pm_options_t * | options, |
| size_t | scopes_count | ||
| ) |
| PRISM_EXPORTED_FUNCTION void pm_options_shebang_callback_set | ( | pm_options_t * | options, |
| pm_options_shebang_callback_t | shebang_callback, | ||
| void * | shebang_callback_data | ||
| ) |
Set the shebang callback option on the given options struct.
| options | The options struct to set the shebang callback on. |
| shebang_callback | The shebang callback to set. |
| shebang_callback_data | Any additional data that should be passed along to the callback. |
| PRISM_EXPORTED_FUNCTION bool pm_options_version_set | ( | pm_options_t * | options, |
| const char * | version, | ||
| size_t | length | ||
| ) |
Set the version option on the given options struct by parsing the given string.
If the string contains an invalid option, this returns false. Otherwise, it returns true.
| options | The options struct to set the version on. |
| version | The version to set. |
| length | The length of the version string. |
If the string contains an invalid option, this returns false. Otherwise, it returns true.
| PRISM_EXPORTED_FUNCTION void pm_options_version_set_highest | ( | pm_options_t * | options | ) |
| PRISM_EXPORTED_FUNCTION void pm_options_version_set_lowest | ( | pm_options_t * | options | ) |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
The default value for parameters.
Definition at line 45 of file options.h.
Referenced by pm_options_scope_init().