chiark / gitweb /
Fix bug in type-annotated output
authorJeff Ober <jober@ziprecruiter.com>
Thu, 9 Jan 2020 17:34:28 +0000 (12:34 -0500)
committerJeff Ober <jober@ziprecruiter.com>
Thu, 9 Jan 2020 17:34:28 +0000 (12:34 -0500)
lib/TOML/Tiny/Parser.pm

index b19c2dba6fc7d4ce371430913745f9a8a63f2800..bb159cdd2cd484f9d848062d41f3277f5c9779ac 100644 (file)
@@ -198,7 +198,23 @@ sub parse_value {
   my $token = shift // $self->next_token;
 
   if ($self->{annotated}) {
-    return {type => $token->type, value => ''.$token->value};
+    for ($token->type) {
+      when (/inline_table/) {
+        return $self->parse_inline_table;
+      }
+
+      when (/inline_array/) {
+        return $self->parse_inline_array;
+      }
+
+      when (/float|integer|string|bool|datetime/) {
+        return { type => $token->type, value => '' . $token->value };
+      }
+
+      default{
+        $self->parse_error($token, "value expected (bool, number, string, datetime, inline array, inline table), but found $_");
+      }
+    }
   }
   else {
     for ($token->type) {