packages feed

kdl-hs-1.0.0: test/KDL/__snapshots__/ParserSpec.snap.md

# test/KDL/ParserSpec.hs

## parse / error messages / Unquoted numeric prop name

```
1:8:
  |
1 | foo 123=123
  |        ^
unexpected '='
expecting children block, decimal point, end of node, exponent, or node prop or arg
```

## parse / parses a KDL document

```haskell
NodeList
  { nodes =
      [ Node
          { ann = Nothing
          , name =
              Identifier
                { value = "foo"
                , ext =
                    IdentifierExtension
                      { format = Just IdentifierFormat { repr = Just "foo" }
                      , span =
                          Span { startLine = 0 , startCol = 0 , endLine = 0 , endCol = 0 }
                      }
                }
          , entries =
              [ Entry
                  { name =
                      Just
                        Identifier
                          { value = "hello"
                          , ext =
                              IdentifierExtension
                                { format = Just IdentifierFormat { repr = Just "hello" }
                                , span =
                                    Span { startLine = 0 , startCol = 0 , endLine = 0 , endCol = 0 }
                                }
                          }
                  , value =
                      Value
                        { ann = Nothing
                        , data_ = String "world"
                        , ext =
                            ValueExtension
                              { format = Just ValueFormat { repr = Just "world" }
                              , span =
                                  Span { startLine = 0 , startCol = 0 , endLine = 0 , endCol = 0 }
                              }
                        }
                  , ext =
                      EntryExtension
                        { format =
                            Just
                              EntryFormat
                                { leading = " " , afterKey = "" , afterEq = "" , trailing = "" }
                        , span =
                            Span { startLine = 0 , startCol = 0 , endLine = 0 , endCol = 0 }
                        }
                  }
              , Entry
                  { name = Nothing
                  , value =
                      Value
                        { ann = Nothing
                        , data_ = Number 1.0
                        , ext =
                            ValueExtension
                              { format = Just ValueFormat { repr = Just "1.0" }
                              , span =
                                  Span { startLine = 0 , startCol = 0 , endLine = 0 , endCol = 0 }
                              }
                        }
                  , ext =
                      EntryExtension
                        { format =
                            Just
                              EntryFormat
                                { leading = " " , afterKey = "" , afterEq = "" , trailing = "" }
                        , span =
                            Span { startLine = 0 , startCol = 0 , endLine = 0 , endCol = 0 }
                        }
                  }
              ]
          , children =
              Just
                NodeList
                  { nodes =
                      [ Node
                          { ann = Nothing
                          , name =
                              Identifier
                                { value = "bar"
                                , ext =
                                    IdentifierExtension
                                      { format = Just IdentifierFormat { repr = Just "bar" }
                                      , span =
                                          Span
                                            { startLine = 0
                                            , startCol = 0
                                            , endLine = 0
                                            , endCol = 0
                                            }
                                      }
                                }
                          , entries = []
                          , children = Nothing
                          , ext =
                              NodeExtension
                                { format =
                                    Just
                                      NodeFormat
                                        { leading = " "
                                        , beforeChildren = ""
                                        , beforeTerminator = ""
                                        , terminator = ";"
                                        , trailing = ""
                                        }
                                , span =
                                    Span { startLine = 0 , startCol = 0 , endLine = 0 , endCol = 0 }
                                }
                          }
                      ]
                  , ext =
                      NodeListExtension
                        { format = Just NodeListFormat { leading = "" , trailing = " " }
                        , span =
                            Span { startLine = 0 , startCol = 0 , endLine = 0 , endCol = 0 }
                        }
                  }
          , ext =
              NodeExtension
                { format =
                    Just
                      NodeFormat
                        { leading = ""
                        , beforeChildren = " "
                        , beforeTerminator = ""
                        , terminator = ""
                        , trailing = ""
                        }
                , span =
                    Span { startLine = 0 , startCol = 0 , endLine = 0 , endCol = 0 }
                }
          }
      ]
  , ext =
      NodeListExtension
        { format = Just NodeListFormat { leading = "" , trailing = "" }
        , span =
            Span { startLine = 0 , startCol = 0 , endLine = 0 , endCol = 0 }
        }
  }
```

## parseWith / parses a KDL document with spans

```haskell
NodeList
  { nodes =
      [ Node
          { ann = Nothing
          , name =
              Identifier
                { value = "foo"
                , ext =
                    IdentifierExtension
                      { format = Just IdentifierFormat { repr = Just "foo" }
                      , span =
                          Span { startLine = 1 , startCol = 1 , endLine = 1 , endCol = 3 }
                      }
                }
          , entries =
              [ Entry
                  { name = Nothing
                  , value =
                      Value
                        { ann = Nothing
                        , data_ = Number 1.0
                        , ext =
                            ValueExtension
                              { format = Just ValueFormat { repr = Just "1" }
                              , span =
                                  Span { startLine = 1 , startCol = 5 , endLine = 1 , endCol = 5 }
                              }
                        }
                  , ext =
                      EntryExtension
                        { format =
                            Just
                              EntryFormat
                                { leading = " " , afterKey = "" , afterEq = "" , trailing = "" }
                        , span =
                            Span { startLine = 1 , startCol = 5 , endLine = 1 , endCol = 5 }
                        }
                  }
              , Entry
                  { name = Nothing
                  , value =
                      Value
                        { ann = Nothing
                        , data_ = Number 2.0
                        , ext =
                            ValueExtension
                              { format = Just ValueFormat { repr = Just "2" }
                              , span =
                                  Span { startLine = 1 , startCol = 7 , endLine = 1 , endCol = 7 }
                              }
                        }
                  , ext =
                      EntryExtension
                        { format =
                            Just
                              EntryFormat
                                { leading = " " , afterKey = "" , afterEq = "" , trailing = "" }
                        , span =
                            Span { startLine = 1 , startCol = 7 , endLine = 1 , endCol = 7 }
                        }
                  }
              ]
          , children =
              Just
                NodeList
                  { nodes =
                      [ Node
                          { ann = Nothing
                          , name =
                              Identifier
                                { value = "bar"
                                , ext =
                                    IdentifierExtension
                                      { format = Just IdentifierFormat { repr = Just "bar" }
                                      , span =
                                          Span
                                            { startLine = 2
                                            , startCol = 3
                                            , endLine = 2
                                            , endCol = 5
                                            }
                                      }
                                }
                          , entries =
                              [ Entry
                                  { name = Nothing
                                  , value =
                                      Value
                                        { ann = Nothing
                                        , data_ = Number 3.0
                                        , ext =
                                            ValueExtension
                                              { format = Just ValueFormat { repr = Just "3" }
                                              , span =
                                                  Span
                                                    { startLine = 2
                                                    , startCol = 7
                                                    , endLine = 2
                                                    , endCol = 7
                                                    }
                                              }
                                        }
                                  , ext =
                                      EntryExtension
                                        { format =
                                            Just
                                              EntryFormat
                                                { leading = " "
                                                , afterKey = ""
                                                , afterEq = ""
                                                , trailing = ""
                                                }
                                        , span =
                                            Span
                                              { startLine = 2
                                              , startCol = 7
                                              , endLine = 2
                                              , endCol = 7
                                              }
                                        }
                                  }
                              ]
                          , children = Nothing
                          , ext =
                              NodeExtension
                                { format =
                                    Just
                                      NodeFormat
                                        { leading = "\n  "
                                        , beforeChildren = ""
                                        , beforeTerminator = ""
                                        , terminator = "\n"
                                        , trailing = ""
                                        }
                                , span =
                                    Span { startLine = 2 , startCol = 3 , endLine = 2 , endCol = 7 }
                                }
                          }
                      ]
                  , ext =
                      NodeListExtension
                        { format = Just NodeListFormat { leading = "" , trailing = "" }
                        , span =
                            Span { startLine = 2 , startCol = 3 , endLine = 2 , endCol = 7 }
                        }
                  }
          , ext =
              NodeExtension
                { format =
                    Just
                      NodeFormat
                        { leading = ""
                        , beforeChildren = " "
                        , beforeTerminator = ""
                        , terminator = ""
                        , trailing = ""
                        }
                , span =
                    Span { startLine = 1 , startCol = 1 , endLine = 3 , endCol = 1 }
                }
          }
      ]
  , ext =
      NodeListExtension
        { format = Just NodeListFormat { leading = "" , trailing = "" }
        , span =
            Span { startLine = 1 , startCol = 1 , endLine = 3 , endCol = 1 }
        }
  }
```