|
Ruby 3.3.5p100 (2024-09-03 revision ef084cc8f4958c1b6e4ead99136631bef6d8ddba)
|
The main header file for the prism parser. More...
#include "prism/defines.h"#include "prism/util/pm_buffer.h"#include "prism/util/pm_char.h"#include "prism/util/pm_memchr.h"#include "prism/util/pm_strncasecmp.h"#include "prism/util/pm_strpbrk.h"#include "prism/ast.h"#include "prism/diagnostic.h"#include "prism/node.h"#include "prism/options.h"#include "prism/pack.h"#include "prism/parser.h"#include "prism/prettyprint.h"#include "prism/regexp.h"#include "prism/version.h"#include <assert.h>#include <errno.h>#include <stdarg.h>#include <stdbool.h>#include <stdint.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <strings.h>Go to the source code of this file.
Functions | |
| PRISM_EXPORTED_FUNCTION const char * | pm_version (void) |
| The prism version and the serialization format. | |
| PRISM_EXPORTED_FUNCTION void | pm_parser_init (pm_parser_t *parser, const uint8_t *source, size_t size, const pm_options_t *options) |
| Initialize a parser with the given start and end pointers. | |
| PRISM_EXPORTED_FUNCTION void | pm_parser_register_encoding_changed_callback (pm_parser_t *parser, pm_encoding_changed_callback_t callback) |
| Register a callback that will be called whenever prism changes the encoding it is using to parse based on the magic comment. | |
| PRISM_EXPORTED_FUNCTION void | pm_parser_free (pm_parser_t *parser) |
| Free any memory associated with the given parser. | |
| PRISM_EXPORTED_FUNCTION pm_node_t * | pm_parse (pm_parser_t *parser) |
| Initiate the parser with the given parser. | |
| void | pm_serialize_comment_list (pm_parser_t *parser, pm_list_t *list, pm_buffer_t *buffer) |
| Serialize the given list of comments to the given buffer. | |
| void | pm_serialize_encoding (const pm_encoding_t *encoding, pm_buffer_t *buffer) |
| Serialize the name of the encoding to the buffer. | |
| void | pm_serialize_content (pm_parser_t *parser, pm_node_t *node, pm_buffer_t *buffer) |
| Serialize the encoding, metadata, nodes, and constant pool. | |
| PRISM_EXPORTED_FUNCTION void | pm_serialize (pm_parser_t *parser, pm_node_t *node, pm_buffer_t *buffer) |
| Serialize the AST represented by the given node to the given buffer. | |
| PRISM_EXPORTED_FUNCTION void | pm_serialize_parse (pm_buffer_t *buffer, const uint8_t *source, size_t size, const char *data) |
| Parse the given source to the AST and dump the AST to the given buffer. | |
| PRISM_EXPORTED_FUNCTION void | pm_serialize_parse_comments (pm_buffer_t *buffer, const uint8_t *source, size_t size, const char *data) |
| Parse and serialize the comments in the given source to the given buffer. | |
| PRISM_EXPORTED_FUNCTION void | pm_serialize_lex (pm_buffer_t *buffer, const uint8_t *source, size_t size, const char *data) |
| Lex the given source and serialize to the given buffer. | |
| PRISM_EXPORTED_FUNCTION void | pm_serialize_parse_lex (pm_buffer_t *buffer, const uint8_t *source, size_t size, const char *data) |
| Parse and serialize both the AST and the tokens represented by the given source to the given buffer. | |
| PRISM_EXPORTED_FUNCTION bool | pm_parse_success_p (const uint8_t *source, size_t size, const char *data) |
| Parse the source and return true if it parses without errors or warnings. | |
| PRISM_EXPORTED_FUNCTION const char * | pm_token_type_to_str (pm_token_type_t token_type) |
| Returns a string representation of the given token type. | |
The main header file for the prism parser.
Definition in file prism.h.
| PRISM_EXPORTED_FUNCTION pm_node_t * pm_parse | ( | pm_parser_t * | parser | ) |
| PRISM_EXPORTED_FUNCTION bool pm_parse_success_p | ( | const uint8_t * | source, |
| size_t | size, | ||
| const char * | data ) |
Parse the source and return true if it parses without errors or warnings.
| source | The source to parse. |
| size | The size of the source. |
| data | The optional data to pass to the parser. |
Definition at line 2077 of file serialize.c.
Referenced by pm_parse_success_p().
| PRISM_EXPORTED_FUNCTION void pm_parser_free | ( | pm_parser_t * | parser | ) |
| PRISM_EXPORTED_FUNCTION void pm_parser_init | ( | pm_parser_t * | parser, |
| const uint8_t * | source, | ||
| size_t | size, | ||
| const pm_options_t * | options ) |
| PRISM_EXPORTED_FUNCTION void pm_parser_register_encoding_changed_callback | ( | pm_parser_t * | parser, |
| pm_encoding_changed_callback_t | callback ) |
| PRISM_EXPORTED_FUNCTION void pm_serialize | ( | pm_parser_t * | parser, |
| pm_node_t * | node, | ||
| pm_buffer_t * | buffer ) |
| void pm_serialize_comment_list | ( | pm_parser_t * | parser, |
| pm_list_t * | list, | ||
| pm_buffer_t * | buffer ) |
Serialize the given list of comments to the given buffer.
| parser | The parser to serialize. |
| list | The list of comments to serialize. |
| buffer | The buffer to serialize to. |
Definition at line 1858 of file serialize.c.
Referenced by pm_serialize_comment_list(), pm_serialize_content(), pm_serialize_lex(), and pm_serialize_parse_comments().
| void pm_serialize_content | ( | pm_parser_t * | parser, |
| pm_node_t * | node, | ||
| pm_buffer_t * | buffer ) |
Serialize the encoding, metadata, nodes, and constant pool.
| parser | The parser to serialize. |
| node | The node to serialize. |
| buffer | The buffer to serialize to. |
Definition at line 1934 of file serialize.c.
Referenced by pm_serialize(), pm_serialize_content(), and pm_serialize_parse().
| void pm_serialize_encoding | ( | const pm_encoding_t * | encoding, |
| pm_buffer_t * | buffer ) |
Serialize the name of the encoding to the buffer.
| encoding | The encoding to serialize. |
| buffer | The buffer to serialize to. |
Definition at line 1923 of file serialize.c.
Referenced by pm_serialize_content(), pm_serialize_encoding(), pm_serialize_lex(), and pm_serialize_parse_comments().
| PRISM_EXPORTED_FUNCTION void pm_serialize_lex | ( | pm_buffer_t * | buffer, |
| const uint8_t * | source, | ||
| size_t | size, | ||
| const char * | data ) |
Lex the given source and serialize to the given buffer.
| source | The source to lex. |
| size | The size of the source. |
| buffer | The buffer to serialize to. |
| data | The optional data to pass to the lexer. |
Definition at line 2014 of file serialize.c.
Referenced by pm_serialize_lex().
| PRISM_EXPORTED_FUNCTION void pm_serialize_parse | ( | pm_buffer_t * | buffer, |
| const uint8_t * | source, | ||
| size_t | size, | ||
| const char * | data ) |
Parse the given source to the AST and dump the AST to the given buffer.
| buffer | The buffer to serialize to. |
| source | The source to parse. |
| size | The size of the source. |
| data | The optional data to pass to the parser. |
Parse the given source to the AST and dump the AST to the given buffer.
| PRISM_EXPORTED_FUNCTION void pm_serialize_parse_comments | ( | pm_buffer_t * | buffer, |
| const uint8_t * | source, | ||
| size_t | size, | ||
| const char * | data ) |
| PRISM_EXPORTED_FUNCTION void pm_serialize_parse_lex | ( | pm_buffer_t * | buffer, |
| const uint8_t * | source, | ||
| size_t | size, | ||
| const char * | data ) |
Parse and serialize both the AST and the tokens represented by the given source to the given buffer.
| buffer | The buffer to serialize to. |
| source | The source to parse. |
| size | The size of the source. |
| data | The optional data to pass to the parser. |
Definition at line 2050 of file serialize.c.
Referenced by pm_serialize_parse_lex().
| PRISM_EXPORTED_FUNCTION const char * pm_token_type_to_str | ( | pm_token_type_t | token_type | ) |
Returns a string representation of the given token type.
| token_type | The token type to convert to a string. |
Definition at line 16 of file token_type.c.
Referenced by pm_token_type_to_str().
| PRISM_EXPORTED_FUNCTION const char * pm_version | ( | void | ) |