Ruby  3.4.0dev (2024-11-05 revision 348a53415339076afc4a02fcd09f3ae36e9c4c61)
Functions
parse.h File Reference

(348a53415339076afc4a02fcd09f3ae36e9c4c61)

Public APIs related to rb_cSymbol. More...

#include "ruby/internal/attr/const.h"
#include "ruby/internal/attr/nonnull.h"
#include "ruby/internal/dllexport.h"
#include "ruby/internal/value.h"
Include dependency graph for parse.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

ID rb_id_attrset (ID id)
 Calculates an ID of attribute writer. More...
 
int rb_is_const_id (ID id)
 Classifies the given ID, then sees if it is a constant. More...
 
int rb_is_global_id (ID id)
 Classifies the given ID, then sees if it is a global variable. More...
 
int rb_is_instance_id (ID id)
 Classifies the given ID, then sees if it is an instance variable. More...
 
int rb_is_attrset_id (ID id)
 Classifies the given ID, then sees if it is an attribute writer. More...
 
int rb_is_class_id (ID id)
 Classifies the given ID, then sees if it is a class variable. More...
 
int rb_is_local_id (ID id)
 Classifies the given ID, then sees if it is a local variable. More...
 
int rb_is_junk_id (ID)
 Classifies the given ID, then sees if it is a junk ID. More...
 
int rb_symname_p (const char *str)
 Sees if the passed C string constructs a valid syntactic symbol. More...
 
VALUE rb_backref_get (void)
 Queries the last match, or Regexp.last_match, or the $~. More...
 
void rb_backref_set (VALUE md)
 Updates $~. More...
 
VALUE rb_lastline_get (void)
 Queries the last line, or the $_. More...
 
void rb_lastline_set (VALUE str)
 Updates $_. More...
 
VALUE rb_sym_all_symbols (void)
 Collects every single bits of symbols that have ever interned in the entire history of the current process. More...
 

Detailed Description

Public APIs related to rb_cSymbol.

Author
Ruby developers ruby-.nosp@m.core.nosp@m.@ruby.nosp@m.-lan.nosp@m.g.org
Warning
Symbols prefixed with either RBIMPL or rbimpl are implementation details. Don't take them as canon. They could rapidly appear then vanish. The name (path) of this header file is also an implementation detail. Do not expect it to persist at the place it is now. Developers are free to move it anywhere anytime at will.
Note
To ruby-core: remember that this header can be possibly recursively included from extension libraries written in C++. Do not expect for instance __VA_ARGS__ is always available. We assume C99 for ruby itself but we don't assume languages of extension libraries. They could be written in C++98.

Definition in file parse.h.

Function Documentation

◆ rb_backref_get()

VALUE rb_backref_get ( void  )

Queries the last match, or Regexp.last_match, or the $~.

You don't have to use it, because in reality you can get $~ using rb_gv_get() as usual.

Return values
RUBY_QnilThe method has not ran a regular expression.
otherwiseAn instance of rb_cMatch.

Definition at line 1817 of file vm.c.

Referenced by rb_f_global_variables().

◆ rb_backref_set()

void rb_backref_set ( VALUE  md)

Updates $~.

You don't have to use it, because in reality you can set $~ using rb_gv_set() as usual.

Parameters
[in]mdArbitrary Ruby object.
Postcondition
The passed object is assigned to $~.

Definition at line 1823 of file vm.c.

Referenced by rb_reg_match2().

◆ rb_id_attrset()

ID rb_id_attrset ( ID  id)

Calculates an ID of attribute writer.

For instance it returns :foo= when passed :foo.

Parameters
[in]idAn id.
Exceptions
rb_eNameErrorid is not for attributes (e.g. operator).
Returns
Calculated name of attribute writer.

Definition at line 121 of file symbol.c.

Referenced by rb_attr().

◆ rb_is_attrset_id()

int rb_is_attrset_id ( ID  id)

Classifies the given ID, then sees if it is an attribute writer.

An attribute writer is otherwise a local variable, except it ends with =.

Parameters
[in]idAn id to classify.
Return values
1It is an attribute writer.
0It isn't.

Definition at line 1087 of file symbol.c.

◆ rb_is_class_id()

int rb_is_class_id ( ID  id)

Classifies the given ID, then sees if it is a class variable.

A class variable is must start with @@.

Parameters
[in]idAn id to classify.
Return values
1It is a class variable.
0It isn't.

Definition at line 1069 of file symbol.c.

◆ rb_is_const_id()

int rb_is_const_id ( ID  id)

Classifies the given ID, then sees if it is a constant.

In case an ID is in Unicode (likely), its "constant"-ness is determined if its first character is either upper case or title case. Otherwise it is detected if case- folding the first character changes its case or not.

Parameters
[in]idAn id to classify.
Return values
1It is a constant.
0It isn't.

Definition at line 1063 of file symbol.c.

Referenced by rb_define_const().

◆ rb_is_global_id()

int rb_is_global_id ( ID  id)

Classifies the given ID, then sees if it is a global variable.

A global variable must start with $.

Parameters
[in]idAn id to classify.
Return values
1It is a global variable.
0It isn't.

Definition at line 1075 of file symbol.c.

◆ rb_is_instance_id()

int rb_is_instance_id ( ID  id)

Classifies the given ID, then sees if it is an instance variable.

An instance variable must start with @, but not @@.

Parameters
[in]idAn id to classify.
Return values
1It is an instance variable.
0It isn't.

Definition at line 1081 of file symbol.c.

◆ rb_is_junk_id()

int rb_is_junk_id ( ID  id)

Classifies the given ID, then sees if it is a junk ID.

An ID with no special syntactic structure is considered junk. This category includes for instance punctuation.

Parameters
[in]idAn id to classify.
Return values
1It is a junk.
0It isn't.

Definition at line 1099 of file symbol.c.

◆ rb_is_local_id()

int rb_is_local_id ( ID  id)

Classifies the given ID, then sees if it is a local variable.

A local variable starts with a lowercase character, followed by some alphanumeric characters or _, then ends with anything other than !, ?, or =.

Parameters
[in]idAn id to classify.
Return values
1It is a local variable.
0It isn't.

Definition at line 1093 of file symbol.c.

◆ rb_lastline_get()

VALUE rb_lastline_get ( void  )

Queries the last line, or the $_.

You don't have to use it, because in reality you can get $_ using rb_gv_get() as usual.

Return values
RUBY_QnilThere has never been a "line" yet.
otherwiseThe last set $_ value.

Definition at line 1829 of file vm.c.

Referenced by rb_io_print(), and rb_reg_match2().

◆ rb_lastline_set()

void rb_lastline_set ( VALUE  str)

Updates $_.

You don't have to use it, because in reality you can set $_ using rb_gv_set() as usual.

Parameters
[in]strArbitrary Ruby object.
Postcondition
The passed object is assigned to $_.

Definition at line 1835 of file vm.c.

Referenced by rb_gets().

◆ rb_sym_all_symbols()

VALUE rb_sym_all_symbols ( void  )

Collects every single bits of symbols that have ever interned in the entire history of the current process.

Returns
An array that contains all symbols that have ever existed.

Definition at line 1042 of file symbol.c.

◆ rb_symname_p()

int rb_symname_p ( const char *  str)

Sees if the passed C string constructs a valid syntactic symbol.

Invalid ones for instance includes whitespaces.

Parameters
[in]strA C string to check.
Return values
1It is a valid symbol name.
0It is invalid as a symbol name.

Definition at line 205 of file symbol.c.