Ruby 4.1.0dev (2026-03-06 revision 9aca729140424bbf465c11ab8ab53e5cc6602c01)
Data Structures | Enumerations | Functions
diagnostic.h File Reference

A list of diagnostics generated during parsing. More...

#include "prism/ast.h"
#include "prism/defines.h"
#include "prism/util/pm_list.h"
#include <stdbool.h>
#include <stdlib.h>
#include <assert.h>
Include dependency graph for diagnostic.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  pm_diagnostic_t
 This struct represents a diagnostic generated during parsing. More...
 

Enumerations

enum  pm_diagnostic_id_t {
  PM_ERR_ALIAS_ARGUMENT , PM_ERR_ALIAS_ARGUMENT_NUMBERED_REFERENCE , PM_ERR_AMPAMPEQ_MULTI_ASSIGN , PM_ERR_ARGUMENT_AFTER_BLOCK ,
  PM_ERR_ARGUMENT_AFTER_FORWARDING_ELLIPSES , PM_ERR_ARGUMENT_BARE_HASH , PM_ERR_ARGUMENT_BLOCK_FORWARDING , PM_ERR_ARGUMENT_BLOCK_MULTI ,
  PM_ERR_ARGUMENT_CONFLICT_AMPERSAND , PM_ERR_ARGUMENT_CONFLICT_STAR , PM_ERR_ARGUMENT_CONFLICT_STAR_STAR , PM_ERR_ARGUMENT_FORMAL_CLASS ,
  PM_ERR_ARGUMENT_FORMAL_CONSTANT , PM_ERR_ARGUMENT_FORMAL_GLOBAL , PM_ERR_ARGUMENT_FORMAL_IVAR , PM_ERR_ARGUMENT_FORWARDING_UNBOUND ,
  PM_ERR_ARGUMENT_NO_FORWARDING_AMPERSAND , PM_ERR_ARGUMENT_NO_FORWARDING_ELLIPSES , PM_ERR_ARGUMENT_NO_FORWARDING_ELLIPSES_LAMBDA , PM_ERR_ARGUMENT_NO_FORWARDING_ELLIPSES_BLOCK ,
  PM_ERR_ARGUMENT_NO_FORWARDING_STAR , PM_ERR_ARGUMENT_NO_FORWARDING_STAR_STAR , PM_ERR_ARGUMENT_SPLAT_AFTER_ASSOC_SPLAT , PM_ERR_ARGUMENT_SPLAT_AFTER_SPLAT ,
  PM_ERR_ARGUMENT_TERM_PAREN , PM_ERR_ARGUMENT_UNEXPECTED_BLOCK , PM_ERR_ARRAY_ELEMENT , PM_ERR_ARRAY_EXPRESSION ,
  PM_ERR_ARRAY_EXPRESSION_AFTER_STAR , PM_ERR_ARRAY_SEPARATOR , PM_ERR_ARRAY_TERM , PM_ERR_BEGIN_LONELY_ELSE ,
  PM_ERR_BEGIN_TERM , PM_ERR_BEGIN_UPCASE_BRACE , PM_ERR_BEGIN_UPCASE_TERM , PM_ERR_BEGIN_UPCASE_TOPLEVEL ,
  PM_ERR_BLOCK_PARAM_LOCAL_VARIABLE , PM_ERR_BLOCK_PARAM_PIPE_TERM , PM_ERR_BLOCK_TERM_BRACE , PM_ERR_BLOCK_TERM_END ,
  PM_ERR_CANNOT_PARSE_EXPRESSION , PM_ERR_CANNOT_PARSE_STRING_PART , PM_ERR_CASE_EXPRESSION_AFTER_CASE , PM_ERR_CASE_EXPRESSION_AFTER_WHEN ,
  PM_ERR_CASE_MATCH_MISSING_PREDICATE , PM_ERR_CASE_MISSING_CONDITIONS , PM_ERR_CASE_TERM , PM_ERR_CLASS_IN_METHOD ,
  PM_ERR_CLASS_NAME , PM_ERR_CLASS_SUPERCLASS , PM_ERR_CLASS_TERM , PM_ERR_CLASS_UNEXPECTED_END ,
  PM_ERR_CLASS_VARIABLE_BARE , PM_ERR_CONDITIONAL_ELSIF_PREDICATE , PM_ERR_CONDITIONAL_IF_PREDICATE , PM_ERR_CONDITIONAL_PREDICATE_TERM ,
  PM_ERR_CONDITIONAL_TERM , PM_ERR_CONDITIONAL_TERM_ELSE , PM_ERR_CONDITIONAL_UNLESS_PREDICATE , PM_ERR_CONDITIONAL_UNTIL_PREDICATE ,
  PM_ERR_CONDITIONAL_WHILE_PREDICATE , PM_ERR_CONSTANT_PATH_COLON_COLON_CONSTANT , PM_ERR_DEF_ENDLESS , PM_ERR_DEF_ENDLESS_PARAMETERS ,
  PM_ERR_DEF_ENDLESS_SETTER , PM_ERR_DEF_ENDLESS_DO_BLOCK , PM_ERR_DEF_NAME , PM_ERR_DEF_PARAMS_TERM ,
  PM_ERR_DEF_PARAMS_TERM_PAREN , PM_ERR_DEF_RECEIVER , PM_ERR_DEF_RECEIVER_TERM , PM_ERR_DEF_TERM ,
  PM_ERR_DEFINED_EXPRESSION , PM_ERR_EMBDOC_TERM , PM_ERR_EMBEXPR_END , PM_ERR_EMBVAR_INVALID ,
  PM_ERR_END_UPCASE_BRACE , PM_ERR_END_UPCASE_TERM , PM_ERR_ESCAPE_INVALID_CONTROL , PM_ERR_ESCAPE_INVALID_CONTROL_REPEAT ,
  PM_ERR_ESCAPE_INVALID_HEXADECIMAL , PM_ERR_ESCAPE_INVALID_META , PM_ERR_ESCAPE_INVALID_META_REPEAT , PM_ERR_ESCAPE_INVALID_UNICODE ,
  PM_ERR_ESCAPE_INVALID_UNICODE_CM_FLAGS , PM_ERR_ESCAPE_INVALID_UNICODE_LIST , PM_ERR_ESCAPE_INVALID_UNICODE_LITERAL , PM_ERR_ESCAPE_INVALID_UNICODE_LONG ,
  PM_ERR_ESCAPE_INVALID_UNICODE_SHORT , PM_ERR_ESCAPE_INVALID_UNICODE_TERM , PM_ERR_EXPECT_ARGUMENT , PM_ERR_EXPECT_EOL_AFTER_STATEMENT ,
  PM_ERR_EXPECT_EXPRESSION_AFTER_AMPAMPEQ , PM_ERR_EXPECT_EXPRESSION_AFTER_COMMA , PM_ERR_EXPECT_EXPRESSION_AFTER_EQUAL , PM_ERR_EXPECT_EXPRESSION_AFTER_LESS_LESS ,
  PM_ERR_EXPECT_EXPRESSION_AFTER_LPAREN , PM_ERR_EXPECT_EXPRESSION_AFTER_OPERATOR , PM_ERR_EXPECT_EXPRESSION_AFTER_PIPEPIPEEQ , PM_ERR_EXPECT_EXPRESSION_AFTER_QUESTION ,
  PM_ERR_EXPECT_EXPRESSION_AFTER_SPLAT , PM_ERR_EXPECT_EXPRESSION_AFTER_SPLAT_HASH , PM_ERR_EXPECT_EXPRESSION_AFTER_STAR , PM_ERR_EXPECT_FOR_DELIMITER ,
  PM_ERR_EXPECT_IDENT_REQ_PARAMETER , PM_ERR_EXPECT_IN_DELIMITER , PM_ERR_EXPECT_LPAREN_AFTER_NOT_LPAREN , PM_ERR_EXPECT_LPAREN_AFTER_NOT_OTHER ,
  PM_ERR_EXPECT_LPAREN_REQ_PARAMETER , PM_ERR_EXPECT_MESSAGE , PM_ERR_EXPECT_RBRACKET , PM_ERR_EXPECT_RPAREN ,
  PM_ERR_EXPECT_RPAREN_AFTER_MULTI , PM_ERR_EXPECT_RPAREN_REQ_PARAMETER , PM_ERR_EXPECT_SINGLETON_CLASS_DELIMITER , PM_ERR_EXPECT_STRING_CONTENT ,
  PM_ERR_EXPECT_WHEN_DELIMITER , PM_ERR_EXPRESSION_BARE_HASH , PM_ERR_EXPRESSION_NOT_WRITABLE , PM_ERR_EXPRESSION_NOT_WRITABLE_ENCODING ,
  PM_ERR_EXPRESSION_NOT_WRITABLE_FALSE , PM_ERR_EXPRESSION_NOT_WRITABLE_FILE , PM_ERR_EXPRESSION_NOT_WRITABLE_LINE , PM_ERR_EXPRESSION_NOT_WRITABLE_NIL ,
  PM_ERR_EXPRESSION_NOT_WRITABLE_NUMBERED , PM_ERR_EXPRESSION_NOT_WRITABLE_SELF , PM_ERR_EXPRESSION_NOT_WRITABLE_TRUE , PM_ERR_FLOAT_PARSE ,
  PM_ERR_FOR_COLLECTION , PM_ERR_FOR_IN , PM_ERR_FOR_INDEX , PM_ERR_FOR_TERM ,
  PM_ERR_GLOBAL_VARIABLE_BARE , PM_ERR_HASH_EXPRESSION_AFTER_LABEL , PM_ERR_HASH_KEY , PM_ERR_HASH_ROCKET ,
  PM_ERR_HASH_TERM , PM_ERR_HASH_VALUE , PM_ERR_HEREDOC_IDENTIFIER , PM_ERR_HEREDOC_TERM ,
  PM_ERR_INCOMPLETE_QUESTION_MARK , PM_ERR_INCOMPLETE_VARIABLE_CLASS , PM_ERR_INCOMPLETE_VARIABLE_CLASS_3_3 , PM_ERR_INCOMPLETE_VARIABLE_INSTANCE ,
  PM_ERR_INCOMPLETE_VARIABLE_INSTANCE_3_3 , PM_ERR_INSTANCE_VARIABLE_BARE , PM_ERR_INVALID_BLOCK_EXIT , PM_ERR_INVALID_CHARACTER ,
  PM_ERR_INVALID_COMMA , PM_ERR_INVALID_ENCODING_MAGIC_COMMENT , PM_ERR_INVALID_ESCAPE_CHARACTER , PM_ERR_INVALID_FLOAT_EXPONENT ,
  PM_ERR_INVALID_LOCAL_VARIABLE_READ , PM_ERR_INVALID_LOCAL_VARIABLE_WRITE , PM_ERR_INVALID_MULTIBYTE_CHAR , PM_ERR_INVALID_MULTIBYTE_CHARACTER ,
  PM_ERR_INVALID_MULTIBYTE_ESCAPE , PM_ERR_INVALID_NUMBER_BINARY , PM_ERR_INVALID_NUMBER_DECIMAL , PM_ERR_INVALID_NUMBER_FRACTION ,
  PM_ERR_INVALID_NUMBER_HEXADECIMAL , PM_ERR_INVALID_NUMBER_OCTAL , PM_ERR_INVALID_NUMBER_UNDERSCORE_INNER , PM_ERR_INVALID_NUMBER_UNDERSCORE_TRAILING ,
  PM_ERR_INVALID_PERCENT , PM_ERR_INVALID_PERCENT_EOF , PM_ERR_INVALID_PRINTABLE_CHARACTER , PM_ERR_INVALID_RETRY_AFTER_ELSE ,
  PM_ERR_INVALID_RETRY_AFTER_ENSURE , PM_ERR_INVALID_RETRY_WITHOUT_RESCUE , PM_ERR_INVALID_SYMBOL , PM_ERR_INVALID_VARIABLE_GLOBAL ,
  PM_ERR_INVALID_VARIABLE_GLOBAL_3_3 , PM_ERR_INVALID_YIELD , PM_ERR_IT_NOT_ALLOWED_NUMBERED , PM_ERR_IT_NOT_ALLOWED_ORDINARY ,
  PM_ERR_LAMBDA_OPEN , PM_ERR_LAMBDA_TERM_BRACE , PM_ERR_LAMBDA_TERM_END , PM_ERR_LIST_I_LOWER_ELEMENT ,
  PM_ERR_LIST_I_LOWER_TERM , PM_ERR_LIST_I_UPPER_ELEMENT , PM_ERR_LIST_I_UPPER_TERM , PM_ERR_LIST_W_LOWER_ELEMENT ,
  PM_ERR_LIST_W_LOWER_TERM , PM_ERR_LIST_W_UPPER_ELEMENT , PM_ERR_LIST_W_UPPER_TERM , PM_ERR_MALLOC_FAILED ,
  PM_ERR_MIXED_ENCODING , PM_ERR_MODULE_IN_METHOD , PM_ERR_MODULE_NAME , PM_ERR_MODULE_TERM ,
  PM_ERR_MULTI_ASSIGN_MULTI_SPLATS , PM_ERR_MULTI_ASSIGN_UNEXPECTED_REST , PM_ERR_NESTING_TOO_DEEP , PM_ERR_NO_LOCAL_VARIABLE ,
  PM_ERR_NON_ASSOCIATIVE_OPERATOR , PM_ERR_NOT_EXPRESSION , PM_ERR_NUMBER_LITERAL_UNDERSCORE , PM_ERR_NUMBERED_PARAMETER_INNER_BLOCK ,
  PM_ERR_NUMBERED_PARAMETER_IT , PM_ERR_NUMBERED_PARAMETER_ORDINARY , PM_ERR_NUMBERED_PARAMETER_OUTER_BLOCK , PM_ERR_OPERATOR_MULTI_ASSIGN ,
  PM_ERR_OPERATOR_WRITE_ARGUMENTS , PM_ERR_OPERATOR_WRITE_BLOCK , PM_ERR_PARAMETER_ASSOC_SPLAT_MULTI , PM_ERR_PARAMETER_BLOCK_MULTI ,
  PM_ERR_PARAMETER_CIRCULAR , PM_ERR_PARAMETER_FORWARDING_AFTER_REST , PM_ERR_PARAMETER_METHOD_NAME , PM_ERR_PARAMETER_NAME_DUPLICATED ,
  PM_ERR_PARAMETER_NO_DEFAULT , PM_ERR_PARAMETER_NO_DEFAULT_KW , PM_ERR_PARAMETER_NUMBERED_RESERVED , PM_ERR_PARAMETER_ORDER ,
  PM_ERR_PARAMETER_SPLAT_MULTI , PM_ERR_PARAMETER_STAR , PM_ERR_PARAMETER_UNEXPECTED_FWD , PM_ERR_PARAMETER_UNEXPECTED_NO_KW ,
  PM_ERR_PARAMETER_WILD_LOOSE_COMMA , PM_ERR_PATTERN_ARRAY_MULTIPLE_RESTS , PM_ERR_PATTERN_CAPTURE_DUPLICATE , PM_ERR_PATTERN_CAPTURE_IN_ALTERNATIVE ,
  PM_ERR_PATTERN_EXPRESSION_AFTER_BRACKET , PM_ERR_PATTERN_EXPRESSION_AFTER_COMMA , PM_ERR_PATTERN_EXPRESSION_AFTER_HROCKET , PM_ERR_PATTERN_EXPRESSION_AFTER_IN ,
  PM_ERR_PATTERN_EXPRESSION_AFTER_KEY , PM_ERR_PATTERN_EXPRESSION_AFTER_PAREN , PM_ERR_PATTERN_EXPRESSION_AFTER_PIN , PM_ERR_PATTERN_EXPRESSION_AFTER_PIPE ,
  PM_ERR_PATTERN_EXPRESSION_AFTER_RANGE , PM_ERR_PATTERN_EXPRESSION_AFTER_REST , PM_ERR_PATTERN_FIND_MISSING_INNER , PM_ERR_PATTERN_HASH_IMPLICIT ,
  PM_ERR_PATTERN_HASH_KEY , PM_ERR_PATTERN_HASH_KEY_DUPLICATE , PM_ERR_PATTERN_HASH_KEY_INTERPOLATED , PM_ERR_PATTERN_HASH_KEY_LABEL ,
  PM_ERR_PATTERN_HASH_KEY_LOCALS , PM_ERR_PATTERN_IDENT_AFTER_HROCKET , PM_ERR_PATTERN_LABEL_AFTER_COMMA , PM_ERR_PATTERN_REST ,
  PM_ERR_PATTERN_TERM_BRACE , PM_ERR_PATTERN_TERM_BRACKET , PM_ERR_PATTERN_TERM_PAREN , PM_ERR_PIPEPIPEEQ_MULTI_ASSIGN ,
  PM_ERR_REGEXP_ENCODING_OPTION_MISMATCH , PM_ERR_REGEXP_INCOMPAT_CHAR_ENCODING , PM_ERR_REGEXP_INVALID_UNICODE_RANGE , PM_ERR_REGEXP_NON_ESCAPED_MBC ,
  PM_ERR_REGEXP_PARSE_ERROR , PM_ERR_REGEXP_TERM , PM_ERR_REGEXP_UNKNOWN_OPTIONS , PM_ERR_REGEXP_UTF8_CHAR_NON_UTF8_REGEXP ,
  PM_ERR_RESCUE_EXPRESSION , PM_ERR_RESCUE_MODIFIER_VALUE , PM_ERR_RESCUE_TERM , PM_ERR_RESCUE_VARIABLE ,
  PM_ERR_RETURN_INVALID , PM_ERR_SCRIPT_NOT_FOUND , PM_ERR_SINGLETON_FOR_LITERALS , PM_ERR_STATEMENT_ALIAS ,
  PM_ERR_STATEMENT_POSTEXE_END , PM_ERR_STATEMENT_PREEXE_BEGIN , PM_ERR_STATEMENT_UNDEF , PM_ERR_STRING_CONCATENATION ,
  PM_ERR_STRING_INTERPOLATED_TERM , PM_ERR_STRING_LITERAL_EOF , PM_ERR_STRING_LITERAL_TERM , PM_ERR_SYMBOL_INVALID ,
  PM_ERR_SYMBOL_TERM_DYNAMIC , PM_ERR_SYMBOL_TERM_INTERPOLATED , PM_ERR_TERNARY_COLON , PM_ERR_TERNARY_EXPRESSION_FALSE ,
  PM_ERR_TERNARY_EXPRESSION_TRUE , PM_ERR_UNARY_DISALLOWED , PM_ERR_UNARY_RECEIVER , PM_ERR_UNDEF_ARGUMENT ,
  PM_ERR_UNEXPECTED_BLOCK_ARGUMENT , PM_ERR_UNEXPECTED_INDEX_BLOCK , PM_ERR_UNEXPECTED_INDEX_KEYWORDS , PM_ERR_UNEXPECTED_LABEL ,
  PM_ERR_UNEXPECTED_MULTI_WRITE , PM_ERR_UNEXPECTED_PARAMETER_DEFAULT_VALUE , PM_ERR_UNEXPECTED_RANGE_OPERATOR , PM_ERR_UNEXPECTED_SAFE_NAVIGATION ,
  PM_ERR_UNEXPECTED_TOKEN_CLOSE_CONTEXT , PM_ERR_UNEXPECTED_TOKEN_IGNORE , PM_ERR_UNTIL_TERM , PM_ERR_VOID_EXPRESSION ,
  PM_ERR_WHILE_TERM , PM_ERR_WRITE_TARGET_IN_METHOD , PM_ERR_WRITE_TARGET_READONLY , PM_ERR_WRITE_TARGET_UNEXPECTED ,
  PM_ERR_XSTRING_TERM , PM_WARN_AMBIGUOUS_BINARY_OPERATOR , PM_WARN_AMBIGUOUS_FIRST_ARGUMENT_MINUS , PM_WARN_AMBIGUOUS_FIRST_ARGUMENT_PLUS ,
  PM_WARN_AMBIGUOUS_PREFIX_AMPERSAND , PM_WARN_AMBIGUOUS_PREFIX_STAR , PM_WARN_AMBIGUOUS_PREFIX_STAR_STAR , PM_WARN_AMBIGUOUS_SLASH ,
  PM_WARN_COMPARISON_AFTER_COMPARISON , PM_WARN_DOT_DOT_DOT_EOL , PM_WARN_EQUAL_IN_CONDITIONAL , PM_WARN_EQUAL_IN_CONDITIONAL_3_3 ,
  PM_WARN_END_IN_METHOD , PM_WARN_DUPLICATED_HASH_KEY , PM_WARN_DUPLICATED_WHEN_CLAUSE , PM_WARN_FLOAT_OUT_OF_RANGE ,
  PM_WARN_IGNORED_FROZEN_STRING_LITERAL , PM_WARN_INDENTATION_MISMATCH , PM_WARN_INTEGER_IN_FLIP_FLOP , PM_WARN_INVALID_CHARACTER ,
  PM_WARN_INVALID_MAGIC_COMMENT_VALUE , PM_WARN_INVALID_NUMBERED_REFERENCE , PM_WARN_KEYWORD_EOL , PM_WARN_LITERAL_IN_CONDITION_DEFAULT ,
  PM_WARN_LITERAL_IN_CONDITION_VERBOSE , PM_WARN_SHAREABLE_CONSTANT_VALUE_LINE , PM_WARN_SHEBANG_CARRIAGE_RETURN , PM_WARN_UNEXPECTED_CARRIAGE_RETURN ,
  PM_WARN_UNREACHABLE_STATEMENT , PM_WARN_UNUSED_LOCAL_VARIABLE , PM_WARN_VOID_STATEMENT
}
 The diagnostic IDs of all of the diagnostics, used to communicate the types of errors between the parser and the user. More...
 
enum  pm_error_level_t { PM_ERROR_LEVEL_SYNTAX = 0 , PM_ERROR_LEVEL_ARGUMENT = 1 , PM_ERROR_LEVEL_LOAD = 2 }
 The levels of errors generated during parsing. More...
 
enum  pm_warning_level_t { PM_WARNING_LEVEL_DEFAULT = 0 , PM_WARNING_LEVEL_VERBOSE = 1 }
 The levels of warnings generated during parsing. More...
 

Functions

const char * pm_diagnostic_id_human (pm_diagnostic_id_t diag_id)
 Get the human-readable name of the given diagnostic ID.
 
bool pm_diagnostic_list_append (pm_list_t *list, uint32_t start, uint32_t length, pm_diagnostic_id_t diag_id)
 Append a diagnostic to the given list of diagnostics that is using shared memory for its message.
 
bool pm_diagnostic_list_append_format (pm_list_t *list, uint32_t start, uint32_t length, pm_diagnostic_id_t diag_id,...)
 Append a diagnostic to the given list of diagnostics that is using a format string for its message.
 
void pm_diagnostic_list_free (pm_list_t *list)
 Deallocate the internal state of the given diagnostic list.
 

Detailed Description

A list of diagnostics generated during parsing.

Definition in file diagnostic.h.

Enumeration Type Documentation

◆ pm_diagnostic_id_t

The diagnostic IDs of all of the diagnostics, used to communicate the types of errors between the parser and the user.

Definition at line 29 of file diagnostic.h.

◆ pm_error_level_t

The levels of errors generated during parsing.

Enumerator
PM_ERROR_LEVEL_SYNTAX 

For errors that should raise a syntax error.

PM_ERROR_LEVEL_ARGUMENT 

For errors that should raise an argument error.

PM_ERROR_LEVEL_LOAD 

For errors that should raise a load error.

Definition at line 397 of file diagnostic.h.

◆ pm_warning_level_t

The levels of warnings generated during parsing.

Enumerator
PM_WARNING_LEVEL_DEFAULT 

For warnings which should be emitted if $VERBOSE != nil.

PM_WARNING_LEVEL_VERBOSE 

For warnings which should be emitted if $VERBOSE == true.

Definition at line 411 of file diagnostic.h.

Function Documentation

◆ pm_diagnostic_id_human()

const char * pm_diagnostic_id_human ( pm_diagnostic_id_t  diag_id)

Get the human-readable name of the given diagnostic ID.

Parameters
diag_idThe diagnostic ID.
Returns
The human-readable name of the diagnostic ID.

Definition at line 426 of file diagnostic.c.

◆ pm_diagnostic_list_append()

bool pm_diagnostic_list_append ( pm_list_t list,
uint32_t  start,
uint32_t  length,
pm_diagnostic_id_t  diag_id 
)

Append a diagnostic to the given list of diagnostics that is using shared memory for its message.

Parameters
listThe list to append to.
startThe source offset of the start of the diagnostic.
lengthThe length of the diagnostic.
diag_idThe diagnostic ID.
Returns
Whether the diagnostic was successfully appended.

Append a diagnostic to the given list of diagnostics that is using shared memory for its message.

Definition at line 782 of file diagnostic.c.

◆ pm_diagnostic_list_append_format()

bool pm_diagnostic_list_append_format ( pm_list_t list,
uint32_t  start,
uint32_t  length,
pm_diagnostic_id_t  diag_id,
  ... 
)

Append a diagnostic to the given list of diagnostics that is using a format string for its message.

Parameters
listThe list to append to.
startThe source offset of the start of the diagnostic.
lengthThe length of the diagnostic.
diag_idThe diagnostic ID.
...The arguments to the format string for the message.
Returns
Whether the diagnostic was successfully appended.

Definition at line 803 of file diagnostic.c.

◆ pm_diagnostic_list_free()

void pm_diagnostic_list_free ( pm_list_t list)

Deallocate the internal state of the given diagnostic list.

Parameters
listThe list to deallocate.

Definition at line 847 of file diagnostic.c.