[ruby/yarp] Resync YARP (#8098)
This commit is contained in:
parent
7380c73af4
commit
84b5274143
Notes:
git
2023-07-19 20:15:22 +00:00
Merged-By: jemmaissroff
@ -124,7 +124,6 @@ YARP_FILES = yarp/api_node.$(OBJEXT) \
|
||||
yarp/util/yp_list.$(OBJEXT) \
|
||||
yarp/util/yp_memchr.$(OBJEXT) \
|
||||
yarp/util/yp_newline_list.$(OBJEXT) \
|
||||
yarp/util/yp_snprintf.$(OBJEXT) \
|
||||
yarp/util/yp_state_stack.$(OBJEXT) \
|
||||
yarp/util/yp_string.$(OBJEXT) \
|
||||
yarp/util/yp_string_list.$(OBJEXT) \
|
||||
@ -19665,10 +19664,6 @@ yarp/util/yp_newline_list.$(OBJEXT): $(top_srcdir)/yarp/defines.h
|
||||
yarp/util/yp_newline_list.$(OBJEXT): $(top_srcdir)/yarp/util/yp_newline_list.c
|
||||
yarp/util/yp_newline_list.$(OBJEXT): $(top_srcdir)/yarp/util/yp_newline_list.h
|
||||
yarp/util/yp_newline_list.$(OBJEXT): {$(VPATH)}config.h
|
||||
yarp/util/yp_snprintf.$(OBJEXT): $(top_srcdir)/yarp/config.h
|
||||
yarp/util/yp_snprintf.$(OBJEXT): $(top_srcdir)/yarp/defines.h
|
||||
yarp/util/yp_snprintf.$(OBJEXT): $(top_srcdir)/yarp/util/yp_snprintf.c
|
||||
yarp/util/yp_snprintf.$(OBJEXT): {$(VPATH)}config.h
|
||||
yarp/util/yp_state_stack.$(OBJEXT): $(top_srcdir)/yarp/config.h
|
||||
yarp/util/yp_state_stack.$(OBJEXT): $(top_srcdir)/yarp/defines.h
|
||||
yarp/util/yp_state_stack.$(OBJEXT): $(top_srcdir)/yarp/util/yp_state_stack.c
|
||||
|
@ -45,6 +45,12 @@ int yp_snprintf(char *dest, YP_ATTRIBUTE_UNUSED size_t size, const char *format,
|
||||
#if defined(HAVE_SNPRINTF)
|
||||
// We use snprintf if it's available
|
||||
# define yp_snprintf snprintf
|
||||
|
||||
#else
|
||||
// In case snprintf isn't present on the system, we provide our own that simply
|
||||
// forwards to the less-safe sprintf.
|
||||
# define yp_snprintf(dest, size, ...) sprintf((dest), __VA_ARGS__)
|
||||
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
261
yarp/node.c
261
yarp/node.c
@ -1732,3 +1732,264 @@ yp_node_memsize(yp_node_t *node, yp_memsize_t *memsize) {
|
||||
*memsize = (yp_memsize_t) { .memsize = 0, .node_count = 0 };
|
||||
yp_node_memsize_node(node, memsize);
|
||||
}
|
||||
|
||||
// Returns a string representation of the given node type.
|
||||
YP_EXPORTED_FUNCTION const char *
|
||||
yp_node_type_to_str(yp_node_type_t node_type)
|
||||
{
|
||||
switch (node_type) {
|
||||
case YP_NODE_ALIAS_NODE:
|
||||
return "YP_NODE_ALIAS_NODE";
|
||||
case YP_NODE_ALTERNATION_PATTERN_NODE:
|
||||
return "YP_NODE_ALTERNATION_PATTERN_NODE";
|
||||
case YP_NODE_AND_NODE:
|
||||
return "YP_NODE_AND_NODE";
|
||||
case YP_NODE_ARGUMENTS_NODE:
|
||||
return "YP_NODE_ARGUMENTS_NODE";
|
||||
case YP_NODE_ARRAY_NODE:
|
||||
return "YP_NODE_ARRAY_NODE";
|
||||
case YP_NODE_ARRAY_PATTERN_NODE:
|
||||
return "YP_NODE_ARRAY_PATTERN_NODE";
|
||||
case YP_NODE_ASSOC_NODE:
|
||||
return "YP_NODE_ASSOC_NODE";
|
||||
case YP_NODE_ASSOC_SPLAT_NODE:
|
||||
return "YP_NODE_ASSOC_SPLAT_NODE";
|
||||
case YP_NODE_BACK_REFERENCE_READ_NODE:
|
||||
return "YP_NODE_BACK_REFERENCE_READ_NODE";
|
||||
case YP_NODE_BEGIN_NODE:
|
||||
return "YP_NODE_BEGIN_NODE";
|
||||
case YP_NODE_BLOCK_ARGUMENT_NODE:
|
||||
return "YP_NODE_BLOCK_ARGUMENT_NODE";
|
||||
case YP_NODE_BLOCK_NODE:
|
||||
return "YP_NODE_BLOCK_NODE";
|
||||
case YP_NODE_BLOCK_PARAMETER_NODE:
|
||||
return "YP_NODE_BLOCK_PARAMETER_NODE";
|
||||
case YP_NODE_BLOCK_PARAMETERS_NODE:
|
||||
return "YP_NODE_BLOCK_PARAMETERS_NODE";
|
||||
case YP_NODE_BREAK_NODE:
|
||||
return "YP_NODE_BREAK_NODE";
|
||||
case YP_NODE_CALL_NODE:
|
||||
return "YP_NODE_CALL_NODE";
|
||||
case YP_NODE_CALL_OPERATOR_AND_WRITE_NODE:
|
||||
return "YP_NODE_CALL_OPERATOR_AND_WRITE_NODE";
|
||||
case YP_NODE_CALL_OPERATOR_OR_WRITE_NODE:
|
||||
return "YP_NODE_CALL_OPERATOR_OR_WRITE_NODE";
|
||||
case YP_NODE_CALL_OPERATOR_WRITE_NODE:
|
||||
return "YP_NODE_CALL_OPERATOR_WRITE_NODE";
|
||||
case YP_NODE_CAPTURE_PATTERN_NODE:
|
||||
return "YP_NODE_CAPTURE_PATTERN_NODE";
|
||||
case YP_NODE_CASE_NODE:
|
||||
return "YP_NODE_CASE_NODE";
|
||||
case YP_NODE_CLASS_NODE:
|
||||
return "YP_NODE_CLASS_NODE";
|
||||
case YP_NODE_CLASS_VARIABLE_OPERATOR_AND_WRITE_NODE:
|
||||
return "YP_NODE_CLASS_VARIABLE_OPERATOR_AND_WRITE_NODE";
|
||||
case YP_NODE_CLASS_VARIABLE_OPERATOR_OR_WRITE_NODE:
|
||||
return "YP_NODE_CLASS_VARIABLE_OPERATOR_OR_WRITE_NODE";
|
||||
case YP_NODE_CLASS_VARIABLE_OPERATOR_WRITE_NODE:
|
||||
return "YP_NODE_CLASS_VARIABLE_OPERATOR_WRITE_NODE";
|
||||
case YP_NODE_CLASS_VARIABLE_READ_NODE:
|
||||
return "YP_NODE_CLASS_VARIABLE_READ_NODE";
|
||||
case YP_NODE_CLASS_VARIABLE_WRITE_NODE:
|
||||
return "YP_NODE_CLASS_VARIABLE_WRITE_NODE";
|
||||
case YP_NODE_CONSTANT_OPERATOR_AND_WRITE_NODE:
|
||||
return "YP_NODE_CONSTANT_OPERATOR_AND_WRITE_NODE";
|
||||
case YP_NODE_CONSTANT_OPERATOR_OR_WRITE_NODE:
|
||||
return "YP_NODE_CONSTANT_OPERATOR_OR_WRITE_NODE";
|
||||
case YP_NODE_CONSTANT_OPERATOR_WRITE_NODE:
|
||||
return "YP_NODE_CONSTANT_OPERATOR_WRITE_NODE";
|
||||
case YP_NODE_CONSTANT_PATH_NODE:
|
||||
return "YP_NODE_CONSTANT_PATH_NODE";
|
||||
case YP_NODE_CONSTANT_PATH_OPERATOR_AND_WRITE_NODE:
|
||||
return "YP_NODE_CONSTANT_PATH_OPERATOR_AND_WRITE_NODE";
|
||||
case YP_NODE_CONSTANT_PATH_OPERATOR_OR_WRITE_NODE:
|
||||
return "YP_NODE_CONSTANT_PATH_OPERATOR_OR_WRITE_NODE";
|
||||
case YP_NODE_CONSTANT_PATH_OPERATOR_WRITE_NODE:
|
||||
return "YP_NODE_CONSTANT_PATH_OPERATOR_WRITE_NODE";
|
||||
case YP_NODE_CONSTANT_PATH_WRITE_NODE:
|
||||
return "YP_NODE_CONSTANT_PATH_WRITE_NODE";
|
||||
case YP_NODE_CONSTANT_READ_NODE:
|
||||
return "YP_NODE_CONSTANT_READ_NODE";
|
||||
case YP_NODE_DEF_NODE:
|
||||
return "YP_NODE_DEF_NODE";
|
||||
case YP_NODE_DEFINED_NODE:
|
||||
return "YP_NODE_DEFINED_NODE";
|
||||
case YP_NODE_ELSE_NODE:
|
||||
return "YP_NODE_ELSE_NODE";
|
||||
case YP_NODE_EMBEDDED_STATEMENTS_NODE:
|
||||
return "YP_NODE_EMBEDDED_STATEMENTS_NODE";
|
||||
case YP_NODE_EMBEDDED_VARIABLE_NODE:
|
||||
return "YP_NODE_EMBEDDED_VARIABLE_NODE";
|
||||
case YP_NODE_ENSURE_NODE:
|
||||
return "YP_NODE_ENSURE_NODE";
|
||||
case YP_NODE_FALSE_NODE:
|
||||
return "YP_NODE_FALSE_NODE";
|
||||
case YP_NODE_FIND_PATTERN_NODE:
|
||||
return "YP_NODE_FIND_PATTERN_NODE";
|
||||
case YP_NODE_FLOAT_NODE:
|
||||
return "YP_NODE_FLOAT_NODE";
|
||||
case YP_NODE_FOR_NODE:
|
||||
return "YP_NODE_FOR_NODE";
|
||||
case YP_NODE_FORWARDING_ARGUMENTS_NODE:
|
||||
return "YP_NODE_FORWARDING_ARGUMENTS_NODE";
|
||||
case YP_NODE_FORWARDING_PARAMETER_NODE:
|
||||
return "YP_NODE_FORWARDING_PARAMETER_NODE";
|
||||
case YP_NODE_FORWARDING_SUPER_NODE:
|
||||
return "YP_NODE_FORWARDING_SUPER_NODE";
|
||||
case YP_NODE_GLOBAL_VARIABLE_OPERATOR_AND_WRITE_NODE:
|
||||
return "YP_NODE_GLOBAL_VARIABLE_OPERATOR_AND_WRITE_NODE";
|
||||
case YP_NODE_GLOBAL_VARIABLE_OPERATOR_OR_WRITE_NODE:
|
||||
return "YP_NODE_GLOBAL_VARIABLE_OPERATOR_OR_WRITE_NODE";
|
||||
case YP_NODE_GLOBAL_VARIABLE_OPERATOR_WRITE_NODE:
|
||||
return "YP_NODE_GLOBAL_VARIABLE_OPERATOR_WRITE_NODE";
|
||||
case YP_NODE_GLOBAL_VARIABLE_READ_NODE:
|
||||
return "YP_NODE_GLOBAL_VARIABLE_READ_NODE";
|
||||
case YP_NODE_GLOBAL_VARIABLE_WRITE_NODE:
|
||||
return "YP_NODE_GLOBAL_VARIABLE_WRITE_NODE";
|
||||
case YP_NODE_HASH_NODE:
|
||||
return "YP_NODE_HASH_NODE";
|
||||
case YP_NODE_HASH_PATTERN_NODE:
|
||||
return "YP_NODE_HASH_PATTERN_NODE";
|
||||
case YP_NODE_IF_NODE:
|
||||
return "YP_NODE_IF_NODE";
|
||||
case YP_NODE_IMAGINARY_NODE:
|
||||
return "YP_NODE_IMAGINARY_NODE";
|
||||
case YP_NODE_IN_NODE:
|
||||
return "YP_NODE_IN_NODE";
|
||||
case YP_NODE_INSTANCE_VARIABLE_OPERATOR_AND_WRITE_NODE:
|
||||
return "YP_NODE_INSTANCE_VARIABLE_OPERATOR_AND_WRITE_NODE";
|
||||
case YP_NODE_INSTANCE_VARIABLE_OPERATOR_OR_WRITE_NODE:
|
||||
return "YP_NODE_INSTANCE_VARIABLE_OPERATOR_OR_WRITE_NODE";
|
||||
case YP_NODE_INSTANCE_VARIABLE_OPERATOR_WRITE_NODE:
|
||||
return "YP_NODE_INSTANCE_VARIABLE_OPERATOR_WRITE_NODE";
|
||||
case YP_NODE_INSTANCE_VARIABLE_READ_NODE:
|
||||
return "YP_NODE_INSTANCE_VARIABLE_READ_NODE";
|
||||
case YP_NODE_INSTANCE_VARIABLE_WRITE_NODE:
|
||||
return "YP_NODE_INSTANCE_VARIABLE_WRITE_NODE";
|
||||
case YP_NODE_INTEGER_NODE:
|
||||
return "YP_NODE_INTEGER_NODE";
|
||||
case YP_NODE_INTERPOLATED_REGULAR_EXPRESSION_NODE:
|
||||
return "YP_NODE_INTERPOLATED_REGULAR_EXPRESSION_NODE";
|
||||
case YP_NODE_INTERPOLATED_STRING_NODE:
|
||||
return "YP_NODE_INTERPOLATED_STRING_NODE";
|
||||
case YP_NODE_INTERPOLATED_SYMBOL_NODE:
|
||||
return "YP_NODE_INTERPOLATED_SYMBOL_NODE";
|
||||
case YP_NODE_INTERPOLATED_X_STRING_NODE:
|
||||
return "YP_NODE_INTERPOLATED_X_STRING_NODE";
|
||||
case YP_NODE_KEYWORD_HASH_NODE:
|
||||
return "YP_NODE_KEYWORD_HASH_NODE";
|
||||
case YP_NODE_KEYWORD_PARAMETER_NODE:
|
||||
return "YP_NODE_KEYWORD_PARAMETER_NODE";
|
||||
case YP_NODE_KEYWORD_REST_PARAMETER_NODE:
|
||||
return "YP_NODE_KEYWORD_REST_PARAMETER_NODE";
|
||||
case YP_NODE_LAMBDA_NODE:
|
||||
return "YP_NODE_LAMBDA_NODE";
|
||||
case YP_NODE_LOCAL_VARIABLE_OPERATOR_AND_WRITE_NODE:
|
||||
return "YP_NODE_LOCAL_VARIABLE_OPERATOR_AND_WRITE_NODE";
|
||||
case YP_NODE_LOCAL_VARIABLE_OPERATOR_OR_WRITE_NODE:
|
||||
return "YP_NODE_LOCAL_VARIABLE_OPERATOR_OR_WRITE_NODE";
|
||||
case YP_NODE_LOCAL_VARIABLE_OPERATOR_WRITE_NODE:
|
||||
return "YP_NODE_LOCAL_VARIABLE_OPERATOR_WRITE_NODE";
|
||||
case YP_NODE_LOCAL_VARIABLE_READ_NODE:
|
||||
return "YP_NODE_LOCAL_VARIABLE_READ_NODE";
|
||||
case YP_NODE_LOCAL_VARIABLE_WRITE_NODE:
|
||||
return "YP_NODE_LOCAL_VARIABLE_WRITE_NODE";
|
||||
case YP_NODE_MATCH_PREDICATE_NODE:
|
||||
return "YP_NODE_MATCH_PREDICATE_NODE";
|
||||
case YP_NODE_MATCH_REQUIRED_NODE:
|
||||
return "YP_NODE_MATCH_REQUIRED_NODE";
|
||||
case YP_NODE_MISSING_NODE:
|
||||
return "YP_NODE_MISSING_NODE";
|
||||
case YP_NODE_MODULE_NODE:
|
||||
return "YP_NODE_MODULE_NODE";
|
||||
case YP_NODE_MULTI_WRITE_NODE:
|
||||
return "YP_NODE_MULTI_WRITE_NODE";
|
||||
case YP_NODE_NEXT_NODE:
|
||||
return "YP_NODE_NEXT_NODE";
|
||||
case YP_NODE_NIL_NODE:
|
||||
return "YP_NODE_NIL_NODE";
|
||||
case YP_NODE_NO_KEYWORDS_PARAMETER_NODE:
|
||||
return "YP_NODE_NO_KEYWORDS_PARAMETER_NODE";
|
||||
case YP_NODE_NUMBERED_REFERENCE_READ_NODE:
|
||||
return "YP_NODE_NUMBERED_REFERENCE_READ_NODE";
|
||||
case YP_NODE_OPTIONAL_PARAMETER_NODE:
|
||||
return "YP_NODE_OPTIONAL_PARAMETER_NODE";
|
||||
case YP_NODE_OR_NODE:
|
||||
return "YP_NODE_OR_NODE";
|
||||
case YP_NODE_PARAMETERS_NODE:
|
||||
return "YP_NODE_PARAMETERS_NODE";
|
||||
case YP_NODE_PARENTHESES_NODE:
|
||||
return "YP_NODE_PARENTHESES_NODE";
|
||||
case YP_NODE_PINNED_EXPRESSION_NODE:
|
||||
return "YP_NODE_PINNED_EXPRESSION_NODE";
|
||||
case YP_NODE_PINNED_VARIABLE_NODE:
|
||||
return "YP_NODE_PINNED_VARIABLE_NODE";
|
||||
case YP_NODE_POST_EXECUTION_NODE:
|
||||
return "YP_NODE_POST_EXECUTION_NODE";
|
||||
case YP_NODE_PRE_EXECUTION_NODE:
|
||||
return "YP_NODE_PRE_EXECUTION_NODE";
|
||||
case YP_NODE_PROGRAM_NODE:
|
||||
return "YP_NODE_PROGRAM_NODE";
|
||||
case YP_NODE_RANGE_NODE:
|
||||
return "YP_NODE_RANGE_NODE";
|
||||
case YP_NODE_RATIONAL_NODE:
|
||||
return "YP_NODE_RATIONAL_NODE";
|
||||
case YP_NODE_REDO_NODE:
|
||||
return "YP_NODE_REDO_NODE";
|
||||
case YP_NODE_REGULAR_EXPRESSION_NODE:
|
||||
return "YP_NODE_REGULAR_EXPRESSION_NODE";
|
||||
case YP_NODE_REQUIRED_DESTRUCTURED_PARAMETER_NODE:
|
||||
return "YP_NODE_REQUIRED_DESTRUCTURED_PARAMETER_NODE";
|
||||
case YP_NODE_REQUIRED_PARAMETER_NODE:
|
||||
return "YP_NODE_REQUIRED_PARAMETER_NODE";
|
||||
case YP_NODE_RESCUE_MODIFIER_NODE:
|
||||
return "YP_NODE_RESCUE_MODIFIER_NODE";
|
||||
case YP_NODE_RESCUE_NODE:
|
||||
return "YP_NODE_RESCUE_NODE";
|
||||
case YP_NODE_REST_PARAMETER_NODE:
|
||||
return "YP_NODE_REST_PARAMETER_NODE";
|
||||
case YP_NODE_RETRY_NODE:
|
||||
return "YP_NODE_RETRY_NODE";
|
||||
case YP_NODE_RETURN_NODE:
|
||||
return "YP_NODE_RETURN_NODE";
|
||||
case YP_NODE_SELF_NODE:
|
||||
return "YP_NODE_SELF_NODE";
|
||||
case YP_NODE_SINGLETON_CLASS_NODE:
|
||||
return "YP_NODE_SINGLETON_CLASS_NODE";
|
||||
case YP_NODE_SOURCE_ENCODING_NODE:
|
||||
return "YP_NODE_SOURCE_ENCODING_NODE";
|
||||
case YP_NODE_SOURCE_FILE_NODE:
|
||||
return "YP_NODE_SOURCE_FILE_NODE";
|
||||
case YP_NODE_SOURCE_LINE_NODE:
|
||||
return "YP_NODE_SOURCE_LINE_NODE";
|
||||
case YP_NODE_SPLAT_NODE:
|
||||
return "YP_NODE_SPLAT_NODE";
|
||||
case YP_NODE_STATEMENTS_NODE:
|
||||
return "YP_NODE_STATEMENTS_NODE";
|
||||
case YP_NODE_STRING_CONCAT_NODE:
|
||||
return "YP_NODE_STRING_CONCAT_NODE";
|
||||
case YP_NODE_STRING_NODE:
|
||||
return "YP_NODE_STRING_NODE";
|
||||
case YP_NODE_SUPER_NODE:
|
||||
return "YP_NODE_SUPER_NODE";
|
||||
case YP_NODE_SYMBOL_NODE:
|
||||
return "YP_NODE_SYMBOL_NODE";
|
||||
case YP_NODE_TRUE_NODE:
|
||||
return "YP_NODE_TRUE_NODE";
|
||||
case YP_NODE_UNDEF_NODE:
|
||||
return "YP_NODE_UNDEF_NODE";
|
||||
case YP_NODE_UNLESS_NODE:
|
||||
return "YP_NODE_UNLESS_NODE";
|
||||
case YP_NODE_UNTIL_NODE:
|
||||
return "YP_NODE_UNTIL_NODE";
|
||||
case YP_NODE_WHEN_NODE:
|
||||
return "YP_NODE_WHEN_NODE";
|
||||
case YP_NODE_WHILE_NODE:
|
||||
return "YP_NODE_WHILE_NODE";
|
||||
case YP_NODE_X_STRING_NODE:
|
||||
return "YP_NODE_X_STRING_NODE";
|
||||
case YP_NODE_YIELD_NODE:
|
||||
return "YP_NODE_YIELD_NODE";
|
||||
}
|
||||
return "\0";
|
||||
}
|
||||
|
@ -27,6 +27,9 @@ typedef struct {
|
||||
// Calculates the memory footprint of a given node.
|
||||
YP_EXPORTED_FUNCTION void yp_node_memsize(yp_node_t *node, yp_memsize_t *memsize);
|
||||
|
||||
// Returns a string representation of the given node type.
|
||||
YP_EXPORTED_FUNCTION const char * yp_node_type_to_str(yp_node_type_t node_type);
|
||||
|
||||
#define YP_EMPTY_NODE_LIST ((yp_node_list_t) { .nodes = NULL, .size = 0, .capacity = 0 })
|
||||
#define YP_EMPTY_LOCATION_LIST ((yp_location_list_t) { .locations = NULL, .size = 0, .capacity = 0 })
|
||||
|
||||
|
@ -1,14 +0,0 @@
|
||||
#include "yarp/defines.h"
|
||||
|
||||
#ifndef HAVE_SNPRINTF
|
||||
// In case snprintf isn't present on the system, we provide our own that simply
|
||||
// forwards to the less-safe sprintf.
|
||||
int
|
||||
yp_snprintf(char *dest, YP_ATTRIBUTE_UNUSED size_t size, const char *format, ...) {
|
||||
va_list args;
|
||||
va_start(args, format);
|
||||
int result = vsprintf(dest, format, args);
|
||||
va_end(args);
|
||||
return result;
|
||||
}
|
||||
#endif
|
@ -12391,7 +12391,7 @@ parse_expression_infix(yp_parser_t *parser, yp_node_t *node, yp_binding_power_t
|
||||
YP_ATTRIBUTE_UNUSED bool captured_group_names =
|
||||
yp_regexp_named_capture_group_names(content_loc->start, (size_t) (content_loc->end - content_loc->start), &named_captures);
|
||||
|
||||
// We assert that the the regex was successfully parsed
|
||||
// We assert that the regex was successfully parsed
|
||||
assert(captured_group_names);
|
||||
|
||||
for (size_t index = 0; index < named_captures.length; index++) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user