| package YAML::Error; |
| |
| use YAML::Mo; |
| |
| has 'code'; |
| has 'type' => default => sub {'Error'}; |
| has 'line'; |
| has 'document'; |
| has 'arguments' => default => sub {[]}; |
| |
| my ($error_messages, %line_adjust); |
| |
| sub format_message { |
| my $self = shift; |
| my $output = 'YAML ' . $self->type . ': '; |
| my $code = $self->code; |
| if ($error_messages->{$code}) { |
| $code = sprintf($error_messages->{$code}, @{$self->arguments}); |
| } |
| $output .= $code . "\n"; |
| |
| $output .= ' Code: ' . $self->code . "\n" |
| if defined $self->code; |
| $output .= ' Line: ' . $self->line . "\n" |
| if defined $self->line; |
| $output .= ' Document: ' . $self->document . "\n" |
| if defined $self->document; |
| return $output; |
| } |
| |
| sub error_messages { |
| $error_messages; |
| } |
| |
| %$error_messages = map {s/^\s+//;s/\\n/\n/;$_} split "\n", <<'...'; |
| YAML_PARSE_ERR_BAD_CHARS |
| Invalid characters in stream. This parser only supports printable ASCII |
| YAML_PARSE_ERR_BAD_MAJOR_VERSION |
| Can't parse a %s document with a 1.0 parser |
| YAML_PARSE_WARN_BAD_MINOR_VERSION |
| Parsing a %s document with a 1.0 parser |
| YAML_PARSE_WARN_MULTIPLE_DIRECTIVES |
| '%s directive used more than once' |
| YAML_PARSE_ERR_TEXT_AFTER_INDICATOR |
| No text allowed after indicator |
| YAML_PARSE_ERR_NO_ANCHOR |
| No anchor for alias '*%s' |
| YAML_PARSE_ERR_NO_SEPARATOR |
| Expected separator '---' |
| YAML_PARSE_ERR_SINGLE_LINE |
| Couldn't parse single line value |
| YAML_PARSE_ERR_BAD_ANCHOR |
| Invalid anchor |
| YAML_DUMP_ERR_INVALID_INDENT |
| Invalid Indent width specified: '%s' |
| YAML_LOAD_USAGE |
| usage: YAML::Load($yaml_stream_scalar) |
| YAML_PARSE_ERR_BAD_NODE |
| Can't parse node |
| YAML_PARSE_ERR_BAD_EXPLICIT |
| Unsupported explicit transfer: '%s' |
| YAML_DUMP_USAGE_DUMPCODE |
| Invalid value for DumpCode: '%s' |
| YAML_LOAD_ERR_FILE_INPUT |
| Couldn't open %s for input:\n%s |
| YAML_DUMP_ERR_FILE_CONCATENATE |
| Can't concatenate to YAML file %s |
| YAML_DUMP_ERR_FILE_OUTPUT |
| Couldn't open %s for output:\n%s |
| YAML_DUMP_ERR_FILE_OUTPUT_CLOSE |
| Error closing %s:\n%s |
| YAML_DUMP_ERR_NO_HEADER |
| With UseHeader=0, the node must be a plain hash or array |
| YAML_DUMP_WARN_BAD_NODE_TYPE |
| Can't perform serialization for node type: '%s' |
| YAML_EMIT_WARN_KEYS |
| Encountered a problem with 'keys':\n%s |
| YAML_DUMP_WARN_DEPARSE_FAILED |
| Deparse failed for CODE reference |
| YAML_DUMP_WARN_CODE_DUMMY |
| Emitting dummy subroutine for CODE reference |
| YAML_PARSE_ERR_MANY_EXPLICIT |
| More than one explicit transfer |
| YAML_PARSE_ERR_MANY_IMPLICIT |
| More than one implicit request |
| YAML_PARSE_ERR_MANY_ANCHOR |
| More than one anchor |
| YAML_PARSE_ERR_ANCHOR_ALIAS |
| Can't define both an anchor and an alias |
| YAML_PARSE_ERR_BAD_ALIAS |
| Invalid alias |
| YAML_PARSE_ERR_MANY_ALIAS |
| More than one alias |
| YAML_LOAD_ERR_NO_CONVERT |
| Can't convert implicit '%s' node to explicit '%s' node |
| YAML_LOAD_ERR_NO_DEFAULT_VALUE |
| No default value for '%s' explicit transfer |
| YAML_LOAD_ERR_NON_EMPTY_STRING |
| Only the empty string can be converted to a '%s' |
| YAML_LOAD_ERR_BAD_MAP_TO_SEQ |
| Can't transfer map as sequence. Non numeric key '%s' encountered. |
| YAML_DUMP_ERR_BAD_GLOB |
| '%s' is an invalid value for Perl glob |
| YAML_DUMP_ERR_BAD_REGEXP |
| '%s' is an invalid value for Perl Regexp |
| YAML_LOAD_ERR_BAD_MAP_ELEMENT |
| Invalid element in map |
| YAML_LOAD_WARN_DUPLICATE_KEY |
| Duplicate map key '%s' found. Ignoring. |
| YAML_LOAD_ERR_BAD_SEQ_ELEMENT |
| Invalid element in sequence |
| YAML_PARSE_ERR_INLINE_MAP |
| Can't parse inline map |
| YAML_PARSE_ERR_INLINE_SEQUENCE |
| Can't parse inline sequence |
| YAML_PARSE_ERR_BAD_DOUBLE |
| Can't parse double quoted string |
| YAML_PARSE_ERR_BAD_SINGLE |
| Can't parse single quoted string |
| YAML_PARSE_ERR_BAD_INLINE_IMPLICIT |
| Can't parse inline implicit value '%s' |
| YAML_PARSE_ERR_BAD_IMPLICIT |
| Unrecognized implicit value '%s' |
| YAML_PARSE_ERR_INDENTATION |
| Error. Invalid indentation level |
| YAML_PARSE_ERR_INCONSISTENT_INDENTATION |
| Inconsistent indentation level |
| YAML_LOAD_WARN_UNRESOLVED_ALIAS |
| Can't resolve alias *%s |
| YAML_LOAD_WARN_NO_REGEXP_IN_REGEXP |
| No 'REGEXP' element for Perl regexp |
| YAML_LOAD_WARN_BAD_REGEXP_ELEM |
| Unknown element '%s' in Perl regexp |
| YAML_LOAD_WARN_GLOB_NAME |
| No 'NAME' element for Perl glob |
| YAML_LOAD_WARN_PARSE_CODE |
| Couldn't parse Perl code scalar: %s |
| YAML_LOAD_WARN_CODE_DEPARSE |
| Won't parse Perl code unless $YAML::LoadCode is set |
| YAML_EMIT_ERR_BAD_LEVEL |
| Internal Error: Bad level detected |
| YAML_PARSE_WARN_AMBIGUOUS_TAB |
| Amibiguous tab converted to spaces |
| YAML_LOAD_WARN_BAD_GLOB_ELEM |
| Unknown element '%s' in Perl glob |
| YAML_PARSE_ERR_ZERO_INDENT |
| Can't use zero as an indentation width |
| YAML_LOAD_WARN_GLOB_IO |
| Can't load an IO filehandle. Yet!!! |
| ... |
| |
| %line_adjust = map {($_, 1)} |
| qw(YAML_PARSE_ERR_BAD_MAJOR_VERSION |
| YAML_PARSE_WARN_BAD_MINOR_VERSION |
| YAML_PARSE_ERR_TEXT_AFTER_INDICATOR |
| YAML_PARSE_ERR_NO_ANCHOR |
| YAML_PARSE_ERR_MANY_EXPLICIT |
| YAML_PARSE_ERR_MANY_IMPLICIT |
| YAML_PARSE_ERR_MANY_ANCHOR |
| YAML_PARSE_ERR_ANCHOR_ALIAS |
| YAML_PARSE_ERR_BAD_ALIAS |
| YAML_PARSE_ERR_MANY_ALIAS |
| YAML_LOAD_ERR_NO_CONVERT |
| YAML_LOAD_ERR_NO_DEFAULT_VALUE |
| YAML_LOAD_ERR_NON_EMPTY_STRING |
| YAML_LOAD_ERR_BAD_MAP_TO_SEQ |
| YAML_LOAD_ERR_BAD_STR_TO_INT |
| YAML_LOAD_ERR_BAD_STR_TO_DATE |
| YAML_LOAD_ERR_BAD_STR_TO_TIME |
| YAML_LOAD_WARN_DUPLICATE_KEY |
| YAML_PARSE_ERR_INLINE_MAP |
| YAML_PARSE_ERR_INLINE_SEQUENCE |
| YAML_PARSE_ERR_BAD_DOUBLE |
| YAML_PARSE_ERR_BAD_SINGLE |
| YAML_PARSE_ERR_BAD_INLINE_IMPLICIT |
| YAML_PARSE_ERR_BAD_IMPLICIT |
| YAML_LOAD_WARN_NO_REGEXP_IN_REGEXP |
| YAML_LOAD_WARN_BAD_REGEXP_ELEM |
| YAML_LOAD_WARN_REGEXP_CREATE |
| YAML_LOAD_WARN_GLOB_NAME |
| YAML_LOAD_WARN_PARSE_CODE |
| YAML_LOAD_WARN_CODE_DEPARSE |
| YAML_LOAD_WARN_BAD_GLOB_ELEM |
| YAML_PARSE_ERR_ZERO_INDENT |
| ); |
| |
| package YAML::Warning; |
| |
| our @ISA = 'YAML::Error'; |
| |
| 1; |