|
Ruby 4.1.0dev (2026-10-15 revision e055c0539e81e24a429708363621403cfe07a79b)
|
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_NODISCARD PRISM_EXPORTED_FUNCTION 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_attach_comments (const pm_options_t *options) PRISM_NONNULL(1) |
| Get the attach_comments option on the given options struct. | |
| PRISM_EXPORTED_FUNCTION void | pm_options_attach_comments_set (pm_options_t *options, bool attach_comments) PRISM_NONNULL(1) |
| Set the attach_comments option on the given options struct. | |
| PRISM_EXPORTED_FUNCTION uint8_t | pm_options_raise_error (const pm_options_t *options) PRISM_NONNULL(1) |
| Get the raise_error option on the given options struct. | |
| PRISM_EXPORTED_FUNCTION void | pm_options_raise_error_set (pm_options_t *options, uint8_t raise_error) PRISM_NONNULL(1) |
| Set the raise_error 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 bool pm_options_attach_comments | ( | const pm_options_t * | options | ) |
| PRISM_EXPORTED_FUNCTION void pm_options_attach_comments_set | ( | pm_options_t * | options, |
| bool | attach_comments | ||
| ) |
Set the attach_comments option on the given options struct.
When this is set, the parser's comment list is sorted by start offset after parsing and every comment is assigned an owning node. Without it, comments are left in the order they were lexed and no nodes own any comments.
| options | The options struct to set the attach_comments value on. |
| attach_comments | The attach_comments value to set. |
| 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_NODISCARD PRISM_EXPORTED_FUNCTION 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 uint8_t pm_options_raise_error | ( | const pm_options_t * | options | ) |
| PRISM_EXPORTED_FUNCTION void pm_options_raise_error_set | ( | pm_options_t * | options, |
| uint8_t | raise_error | ||
| ) |
| 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().