This page contains the following errors:

error on line 4931 at column 6: XML declaration allowed only at the start of the document

Below is a rendering of the page up to the first error.

Git — Sourcephile - haskell/symantic-xml.git/commitdiff
Upgrade to megaparsec-7
authorJulien Moutinho <julm+haskell-symantic-xml@autogeree.net>
Sat, 19 Jan 2019 11:14:05 +0000 (11:14 +0000)
committerJulien Moutinho <julm+haskell-symantic-xml@autogeree.net>
Sun, 20 Jan 2019 03:50:18 +0000 (03:50 +0000)
259 files changed:
Language/Symantic/RNC/Sym.hs
Language/Symantic/RNC/Validate.hs
Language/Symantic/RNC/Write.hs
Language/Symantic/RNC/Write/Namespaces.hs
Language/Symantic/XML.hs
Language/Symantic/XML/Document.hs
Language/Symantic/XML/Parser.hs
Language/Symantic/XML/Read.hs
Language/Symantic/XML/Read/Parser.hs
stack.yaml
symantic-xml.cabal
test/Golden.hs
test/Golden/XML/0001.xml.read
test/Golden/XML/0002.xml.read
test/Golden/XML/0003.xml.read
test/Golden/XML/0004.xml.read
test/Golden/XML/0005.xml.read
test/Golden/XML/0006.xml.read
test/Golden/XML/0007.xml.read
test/Golden/XML/0008.xml.read
test/Golden/XML/0009.xml.read
test/Golden/XML/0010.xml.read
test/Golden/XML/0011.xml.read
test/Golden/XML/0012.xml.read
test/Golden/XML/0013.xml.read
test/Golden/XML/0014.xml.read
test/Golden/XML/0015.xml.read
test/Golden/XML/0016.xml.read
test/Golden/XML/0017.xml.read
test/Golden/XML/0018.xml.read
test/Golden/XML/0019.xml.read
test/Golden/XML/0020.xml.read
test/Golden/XML/0021.xml.read
test/Golden/XML/0022.xml.read
test/Golden/XML/0023.xml.read
test/Golden/XML/0024.xml.read
test/Golden/XML/0025.xml.read
test/Golden/XML/0026.xml.read
test/Golden/XML/0027.xml.read
test/Golden/XML/0028.xml.read
test/Golden/XML/0029.xml.read
test/Golden/XML/0030.xml.read
test/Golden/XML/0031.xml.read
test/Golden/XML/0032.xml.read
test/Golden/XML/0033.xml.read
test/Golden/XML/0034.xml.read
test/Golden/XML/0035.xml.read
test/Golden/XML/0036.xml.read
test/Golden/XML/0037.xml.read
test/Golden/XML/0038.xml.read
test/Golden/XML/0039.xml.read
test/Golden/XML/0040.xml.read
test/Golden/XML/0041.xml.read
test/Golden/XML/0042.xml.read
test/Golden/XML/0043.xml.read
test/Golden/XML/0044.xml.read
test/Golden/XML/0045.xml.read
test/Golden/XML/0046.xml.read
test/Golden/XML/Error/0000.xml.read
test/Golden/XML/Error/0001.xml.read
test/Golden/XML/Error/0002.xml.read
test/Golden/XML/Error/0003.xml.read
test/Golden/XML/Error/0004.xml.read
test/Golden/XML/Error/0005.xml.read
test/Golden/XML/Error/0006.xml.read
test/Golden/XML/Error/0007.xml.read
test/Golden/XML/Error/0008.xml.read
test/Golden/XML/Error/0009.xml.read
test/Golden/XML/Error/0010.xml.read
test/Golden/XML/Error/0011.xml.read
test/Golden/XML/Error/0012.xml.read
test/Golden/XML/Error/0013.xml.read
test/Golden/XML/Error/0014.xml.read
test/Golden/XML/Error/0015.xml.read
test/Golden/XML/Error/0016.xml.read
test/Golden/XML/Error/0017.xml.read
test/Golden/XML/Error/0018.xml.read
test/Golden/XML/Error/0019.xml.read
test/Golden/XML/Error/0020.xml.read
test/Golden/XML/Error/0021.xml.read
test/Golden/XML/Error/0022.xml.read
test/Golden/XML/Error/0023.xml.read
test/Golden/XML/Error/0024.xml.read
test/Golden/XML/Error/0025.xml.read
test/Golden/XML/Error/0026.xml.read
test/Golden/XML/Error/0027.xml.read
test/Golden/XML/Error/0028.xml.read
test/Golden/XML/Error/0029.xml.read
test/Golden/XML/Error/0030.xml.read
test/Golden/XML/Error/0031.xml.read
test/Golden/XML/Error/0032.xml.read
test/Golden/XML/Error/0033.xml.read
test/Golden/XML/Error/0034.xml.read
test/Golden/XML/Error/0035.xml.read
test/Golden/XML/Error/0036.xml.read
test/Golden/XML/Error/0037.xml.read
test/Golden/XML/Error/0038.xml.read
test/Golden/XML/Error/0039.xml.read
test/Golden/XML/Error/0040.xml.read
test/Golden/XML/Error/0041.xml.read
test/Golden/XML/Error/0042.xml.read
test/Golden/XML/Error/0043.xml.read
test/Golden/XML/Error/0044.xml.read
test/Golden/XML/Error/0045.xml.read
test/Golden/XML/Error/0046.xml.read
test/Golden/XML/Error/0047.xml.read
test/Golden/XML/Error/0048.xml.read
test/Golden/XML/Error/0049.xml.read
test/Golden/XML/Error/0050.xml.read
test/Golden/XML/Error/0051.xml.read
test/Golden/XML/Error/0052.xml.read
test/Golden/XML/Error/0053.xml.read
test/Golden/XML/Error/0054.xml.read
test/Golden/XML/Error/0055.xml.read
test/Golden/XML/Error/0056.xml.read
test/Golden/XML/Error/0057.xml.read
test/Golden/XML/Error/0058.xml.read
test/Golden/XML/Error/0059.xml.read
test/Golden/XML/Error/0060.xml.read
test/Golden/XML/Error/0061.xml.read
test/Golden/XML/Error/0062.xml.read
test/Golden/XML/Error/0063.xml.read
test/Golden/XML/Error/0064.xml.read
test/Golden/XML/Error/0065.xml.read
test/Golden/XML/Error/0066.xml.read
test/Golden/XML/Error/0067.xml.read
test/Golden/XML/Error/0068.xml.read
test/Golden/XML/Error/0069.xml.read
test/Golden/XML/Error/0070.xml.read
test/Golden/XML/Error/0071.xml.read
test/Golden/XML/Error/0072.xml.read
test/Golden/XML/Error/0073.xml.read
test/Golden/XML/Error/0074.xml.read
test/Golden/XML/Error/0075.xml.read
test/Golden/XML/Error/0076.xml.read
test/Golden/XML/Error/0077.xml.read
test/Golden/XML/Error/0078.xml.read
test/Golden/XML/Error/0079.xml.read
test/Golden/XML/Error/0080.xml.read
test/Golden/XML/Error/0081.xml.read
test/Golden/XML/Error/0082.xml.read
test/Golden/XML/Error/0083.xml.read
test/Golden/XML/Error/0084.xml.read
test/Golden/XML/Error/0085.xml.read
test/Golden/XML/Error/0086.xml.read
test/Golden/XML/Error/0087.xml.read
test/Golden/XML/Error/0088.xml.read
test/Golden/XML/Error/0092.xml.read
test/Golden/XML/Error/0093.xml.read
test/Golden/XML/Error/0094.xml.read
test/Golden/XML/Error/0095.xml.read
test/Golden/XML/Error/0096.xml.read
test/Golden/XML/Error/0097.xml.read
test/Golden/XML/Error/0098.xml.read
test/Golden/XML/Error/0099.xml.read
test/Golden/XML/Error/0131.xml.read
test/Golden/XML/Error/0132.xml.read
test/Golden/XML/Error/0133.xml.read
test/Golden/XML/Error/0134.xml.read
test/Golden/XML/Error/0135.xml.read
test/Golden/XML/Error/0136.xml.read
test/Golden/XML/Error/0137.xml.read
test/Golden/XML/Error/0138.xml.read
test/Golden/XML/Error/0139.xml.read
test/Golden/XML/Error/0140.xml.read
test/Golden/XML/Error/0141.xml.read
test/Golden/XML/Error/0142.xml.read
test/Golden/XML/Error/0143.xml.read
test/Golden/XML/Error/0144.xml.read
test/Golden/XML/Error/0145.xml.read
test/Golden/XML/Error/0146.xml.read
test/Golden/XML/Error/0147.xml.read
test/Golden/XML/Error/0148.xml.read
test/Golden/XML/Error/0149.xml.read
test/Golden/XML/Error/0150.xml.read
test/Golden/XML/Error/0151.xml.read
test/Golden/XML/Error/0152.xml.read
test/Golden/XML/Error/0153.xml.read
test/Golden/XML/Error/0154.xml.read
test/Golden/XML/Error/0155.xml.read
test/Golden/XML/Error/0156.xml.read
test/Golden/XML/Error/0157.xml.read
test/Golden/XML/Error/0158.xml.read
test/Golden/XML/Error/0159.xml.read
test/Golden/XML/Error/0160.xml.read
test/Golden/XML/Error/0161.xml.read
test/Golden/XML/Error/0162.xml.read
test/Golden/XML/Error/0163.xml.read
test/Golden/XML/Error/0164.xml.read
test/Golden/XML/Error/0165.xml.read
test/Golden/XML/Error/0166.xml.read
test/Golden/XML/Error/0167.xml.read
test/Golden/XML/Error/0168.xml.read
test/Golden/XML/Error/0169.xml.read
test/Golden/XML/Error/0170.xml.read
test/Golden/XML/Error/0171.xml.read
test/Golden/XML/Error/0172.xml.read
test/Golden/XML/Error/0173.xml.read
test/Golden/XML/Error/0174.xml.read
test/Golden/XML/Error/0175.xml.read
test/Golden/XML/Error/0176.xml.read
test/Golden/XML/Error/0177.xml.read
test/Golden/XML/Error/0178.xml.read
test/Golden/XML/Error/0179.xml.read
test/Golden/XML/Error/0180.xml.read
test/Golden/XML/Error/0181.xml.read
test/Golden/XML/Error/0182.xml.read
test/Golden/XML/Error/0183.xml.read
test/Golden/XML/Error/0184.xml.read
test/Golden/XML/Error/0185.xml.read
test/Golden/XML/Error/0186.xml.read
test/Golden/XML/Error/0187.xml.read
test/Golden/XML/Error/0188.xml.read
test/Golden/XML/Error/0189.xml.read
test/Golden/XML/Error/0190.xml.read
test/Golden/XML/Error/0191.xml.read
test/Golden/XML/Error/0192.xml.read
test/Golden/XML/Error/0193.xml.read
test/Golden/XML/Error/0194.xml.read
test/Golden/XML/Error/0195.xml.read
test/Golden/XML/Error/0196.xml.read
test/Golden/XML/Error/0197.xml.read
test/Golden/XML/Error/0198.xml.read
test/Golden/XML/Error/0199.xml.read
test/Golden/XML/Error/0200.xml.read
test/Golden/XML/Error/0201.xml.read
test/Golden/XML/Error/0202.xml.read
test/Golden/XML/Error/0203.xml.read
test/Golden/XML/Error/0204.xml.read
test/Golden/XML/Error/0205.xml.read
test/Golden/XML/Error/0206.xml.read
test/Golden/XML/Error/0207.xml.read
test/Golden/XML/Error/0208.xml.read
test/Golden/XML/Error/0209.xml.read
test/Golden/XML/Error/0210.xml.read
test/Golden/XML/Error/0211.xml.read
test/Golden/XML/Error/0212.xml.read
test/Golden/XML/Error/0213.xml.read
test/Golden/XML/Error/0214.xml.read
test/Golden/XML/Error/0215.xml.read
test/Golden/XML/Error/0216.xml.read
test/Golden/XML/Error/0217.xml.read
test/Golden/XML/Error/0218.xml.read
test/Golden/XML/Error/0219.xml.read
test/Golden/XML/Error/0220.xml.read
test/Golden/XML/Error/0221.xml.read
test/Golden/XML/Error/0222.xml.read
test/Golden/XML/Error/0223.xml.read
test/Golden/XML/NS/0001.xml.read
test/Golden/XML/NS/0002.xml.read
test/Golden/XML/NS/0003.xml.read
test/Golden/XML/NS/0004.xml.read
test/Golden/XML/NS/0005.xml.read
test/Golden/XML/NS/0006.xml.read
test/Golden/XML/NS/0007.xml.read
test/Golden/XML/NS/0008.xml.read
test/Golden/XML/NS/0009.xml.read
test/Golden/XML/NS/0010.xml.read
test/Golden/XML/NS/Error/0001.xml.read

index a9a0680ff62daaf756d4ad2e638b3e4895644197..0449686c39e7d126466e8fb5667ed4d4fb2a93f9 100644 (file)
@@ -7,6 +7,7 @@ module Language.Symantic.RNC.Sym
  ) where
 
 import Control.Applicative (Applicative(..), Alternative(..))
+import Control.Monad (Monad(..))
 import Data.Eq (Eq)
 import Data.Function ((.), id)
 import Data.Functor (Functor(..), (<$>))
@@ -19,15 +20,12 @@ import qualified Data.Text.Lazy as TL
 
 import qualified Language.Symantic.XML as XML
 
-infixl 2 <$$>, <$?>, <$*>, <$:>
-infixl 1 <||>, <|?>, <|*>{-, <|:>-}
-
 -- * Class 'Sym_RNC'
 class
  ( Applicative repr
  , Alternative repr
  , Sym_Rule repr
- , Sym_Interleaved repr
+ , Sym_Permutation repr
  ) => Sym_RNC repr where
        namespace   :: Maybe XML.NCName -> XML.Namespace -> repr ()
        element     :: XML.QName -> repr a -> repr a
@@ -62,28 +60,42 @@ data RuleMode
  |   RuleMode_Def  -- ^ Request to generate a definition of the rule.
  deriving (Eq, Show)
 
--- * Class 'Sym_Interleaved'
-class Sym_Interleaved repr where
-       interleaved :: Perm repr a -> repr a
-       (<$$>) :: (a -> b) -> repr a -> Perm repr b
+-- * Class 'Sym_Permutation'
+class (Alternative repr, Applicative (Permutation repr)) => Sym_Permutation repr where
+       runPermutation :: Permutation repr a -> repr a
+       toPermutation :: repr a -> Permutation repr a
+       toPermutationWithDefault :: a -> repr a -> Permutation repr a
+       
+       (<$$>) :: (a -> b) -> repr a -> Permutation repr b
+       (<$?>) :: (a -> b) -> (a, repr a) -> Permutation repr b
+       (<$*>) :: ([a] -> b) -> repr a -> Permutation repr b
+       (<$:>) :: (Seq a -> b) -> repr a -> Permutation repr b
+       infixl 2 <$$>, <$?>, <$*>, <$:>
+       {-# INLINE (<$$>) #-}
+       {-# INLINE (<$?>) #-}
+       {-# INLINE (<$*>) #-}
+       {-# INLINE (<$:>) #-}
        
-       (<$?>) :: (a -> b) -> (a, repr a) -> Perm repr b
-       (<||>) :: Perm repr (a -> b) -> repr a -> Perm repr b
-       (<|?>) :: Perm repr (a -> b) -> (a, repr a) -> Perm repr b
+       (<||>) :: Permutation repr (a -> b) -> repr a -> Permutation repr b
+       (<|?>) :: Permutation repr (a -> b) -> (a, repr a) -> Permutation repr b
+       (<|*>) :: Permutation repr ([a] -> b) -> repr a -> Permutation repr b
+       (<|:>) :: Permutation repr (Seq a -> b) -> repr a -> Permutation repr b
+       infixl 1 <||>, <|?>, <|*>, <|:>
+       {-# INLINE (<||>) #-}
+       {-# INLINE (<|?>) #-}
+       {-# INLINE (<|*>) #-}
+       {-# INLINE (<|:>) #-}
        
-       (<$*>) :: ([a] -> b) -> repr a -> Perm repr b
-       (<|*>) :: Perm repr ([a] -> b) -> repr a -> Perm repr b
+       f <$$> x = f <$> toPermutation x
+       f <$?> (d,x) = f <$> toPermutationWithDefault d x
+       f <$*> x = f <$> toPermutationWithDefault [] (many x)
+       f <$:> x = f . Seq.fromList <$> toPermutationWithDefault [] (many x)
        
-       (<$:>) :: (Seq a -> b) -> repr a -> Perm repr b
-       (<$:>) f = (f . Seq.fromList <$*>)
-       {- NOTE: Megaparsec's PermParser has no Functor instance.
-       (<|:>) :: Perm repr (Seq a -> b) -> repr a -> Perm repr b
-       default (<|:>) :: Functor (Perm repr) => Perm repr (Seq a -> b) -> repr a -> Perm repr b
-       (<|:>) f x = (. Seq.fromList) <$> f <|*> x
-       -}
+       f <||> x = f <*> toPermutation x
+       f <|?> (d,x) = f <*> toPermutationWithDefault d x
+       f <|*> x = f <*> toPermutationWithDefault [] (many x)
+       f <|:> x = f <*> toPermutationWithDefault Seq.empty (Seq.fromList <$> many x)
 
--- ** Type family 'Perm'
+-- ** Type family 'Permutation'
 -- | Type of permutations, depending on the representation.
-type family Perm (repr:: * -> *) = (r :: * -> *) | r -> repr
--- type instance Perm (Dup x y) = Dup (Perm x) (Perm y)
--- type instance Perm (Rule repr) = Rule (Perm repr) -- Compose [] (Rule (Perm repr))
+type family Permutation (repr:: * -> *) = (r :: * -> *) | r -> repr
index 7146932f6e5fd00cd32b0712a63cbea2eb7fd9da..6d4009ef42926649c4088fd3523787eef1b267f5 100644 (file)
@@ -7,53 +7,47 @@
 {-# OPTIONS_GHC -fno-warn-orphans #-}
 module Language.Symantic.RNC.Validate where
 
-import Control.Applicative (Applicative(..))
+import Control.Applicative (Applicative(..), Alternative(..), optional)
+import Control.Monad (Monad(..))
 import Data.Bool
 import Data.Either (Either(..))
 import Data.Eq (Eq(..))
 import Data.Foldable (Foldable(..), all)
 import Data.Function (($), const, id)
-import Data.List.NonEmpty (NonEmpty(..))
-import Data.Maybe (Maybe(..))
+import Data.Functor (Functor(..), (<$>))
+import Data.Maybe (Maybe(..), maybe)
 import Data.Monoid (Monoid(..))
 import Data.Ord (Ord(..))
 import Data.Semigroup (Semigroup(..))
+import Data.Tuple (snd)
+import Prelude (error)
 import qualified Data.Char as Char
 import qualified Data.Sequence as Seq
 import qualified Data.Set as Set
 import qualified Data.Text.Lazy as TL
 import qualified Text.Megaparsec as P
-import qualified Text.Megaparsec.Perm as P
 
-import           Language.Symantic.XML (XMLs)
+import Language.Symantic.XML (XMLs)
 import qualified Language.Symantic.XML as XML
 import qualified Language.Symantic.RNC.Sym as RNC
 
-validateXML :: Ord e => P.Parsec e XMLs a -> XMLs -> Either (P.ParseError (P.Token XMLs) e) a
-validateXML p = XML.runParser p (P.initialPos "":|[])
-
-type instance RNC.Perm (P.ParsecT e XMLs m) = P.PermParser XMLs (P.ParsecT e XMLs m)
-instance Ord e => RNC.Sym_Interleaved (P.ParsecT e XMLs m) where
-       interleaved = P.makePermParser
-       (<$$>) = (P.<$$>)
-       (<||>) = (P.<||>)
-       (<$?>) = (P.<$?>)
-       (<|?>) = (P.<|?>)
-       f <$*> a = f P.<$?> ([],P.some a)
-       f <|*> a = f P.<|?> ([],P.some a)
-instance Ord e => RNC.Sym_Rule (P.ParsecT e XMLs m) where
-       -- rule n p = P.dbg s p {-(p P.<?> s)-} where s = Text.unpack n
-       rule _n = id
-       arg _n = pure ()
+validateXML ::
+ Ord e => P.Parsec e XMLs a -> XMLs ->
+ Either (P.ParseErrorBundle XMLs e) a
+validateXML p stateInput =
+       snd $
+       P.runParser' p P.State
+        { P.stateInput
+        , P.stateOffset = 0
+        , P.statePosState = error "[BUG] validateXML: getSourcePos is not helpful here, please use annotated source locations"
+         -- NOTE: reporting the node number is less helpful
+               -- than the source text line and number where the node is;
+               -- P.statePosState is only used by P.getSourcePos.
+        }
 
 -- | Like 'P.satisfy' but with a predicate returning 'Maybe' instead of 'Bool'.
 p_satisfyMaybe :: P.MonadParsec e s m => (P.Token s -> Maybe a) -> m a
-p_satisfyMaybe f = check `P.token` Nothing
-       where
-       check c =
-               case f c of
-                Just a  -> Right a
-                Nothing -> Left (Just $ P.Tokens $ c:|[], Set.empty)
+p_satisfyMaybe = (`P.token` Set.empty)
 
 instance Ord e => RNC.Sym_RNC (P.Parsec e XMLs) where
        {-
@@ -61,13 +55,13 @@ instance Ord e => RNC.Sym_RNC (P.Parsec e XMLs) where
        -}
        namespace _p _n = pure ()
        element n p = do
-               ts <- P.token check $ Just expected
-               parserElement n p ts
+               ts <- P.token check $ Set.singleton $ P.Tokens $ pure expected
+               XML.subParser p ts
                where
                expected = XML.Tree (XML.notSourced $ XML.NodeElem n) mempty
                check (XML.Tree (XML.unSourced -> XML.NodeElem e) ts)
                 | e == n
-                = Right $ removePI $ removeXMLNS $ removeSpaces ts
+                = Just $ removePI $ removeXMLNS $ removeSpaces ts
                        where
                        removePI xs =
                                (`Seq.filter` xs) $ \case
@@ -95,32 +89,26 @@ instance Ord e => RNC.Sym_RNC (P.Parsec e XMLs) where
                                                 XML.QName ns _l -> ns /= XML.xmlns_xmlns
                                         _ -> True in
                                attrs' <> rest
-               check t = Left
-                ( Just $ P.Tokens $ pure t
-                , Set.singleton $ P.Tokens $ pure expected )
+               check _t = Nothing
        attribute n p = do
-               v <- P.token check $ Just expected
-               XML.parser p v
+               v <- P.token check $ Set.singleton $ P.Tokens $ pure expected
+               XML.subParser p v
                where
                expected = XML.Tree0 (XML.notSourced $ XML.NodeAttr n)
                check (XML.Tree (XML.unSourced -> XML.NodeAttr k)
                      v@(toList -> [XML.Tree0 (XML.unSourced -> XML.NodeText _v)])) | k == n =
-                       Right v
-               check t = Left
-                ( Just $ P.Tokens $ pure t
-                , Set.singleton $ P.Tokens $ pure expected )
+                       Just v
+               check _t = Nothing
        any  = P.label "any" $ p_satisfyMaybe $ const $ Just ()
        anyElem ns p = P.label "anyElem" $ do
-               (n,ts) <- P.token check $ Just expected
-               parserElement n (p $ XML.qNameLocal n) ts
+               (n,ts) <- P.token check $ Set.singleton $ P.Tokens $ pure expected
+               XML.subParser (p $ XML.qNameLocal n) ts
                where
                expected = XML.Tree (XML.notSourced $ XML.NodeElem $ XML.QName ns $ XML.NCName "*") mempty
                check (XML.Tree (XML.unSourced -> XML.NodeElem e) ts)
                 | XML.qNameSpace e == ns
-                = Right $ (e,ts)
-               check t = Left
-                ( Just $ P.Tokens $ pure t
-                , Set.singleton $ P.Tokens $ pure expected )
+                = Just $ (e,ts)
+               check _t = Nothing
        {-
        comment = do
                s <- P.getInput
@@ -135,19 +123,43 @@ instance Ord e => RNC.Sym_RNC (P.Parsec e XMLs) where
                expected = XML.Tree0 (XML.notSourced $ XML.NodeComment "")
        -}
        escapedText = do
-               P.token check (Just expected)
-                <* XML.setFilePosToNextNode
+               P.token check $ Set.singleton $ P.Tokens $ pure expected
                where
                expected = XML.Tree0 (XML.notSourced $ XML.NodeText $ XML.EscapedText mempty)
-               check (XML.Tree0 (XML.unSourced -> XML.NodeText t)) = Right t
-               check t = Left
-                ( Just $ P.Tokens $ pure t
-                , Set.singleton $ P.Tokens $ pure expected )
+               check (XML.Tree0 (XML.unSourced -> XML.NodeText t)) = Just t
+               check _t = Nothing
        optional = P.optional
        option   = P.option
        choice   = P.choice
        try      = P.try
        fail     = P.label "fail" $ P.failure Nothing mempty
 
-parserElement :: Ord e => XML.QName -> P.Parsec e XMLs a -> XMLs -> P.Parsec e XMLs a
-parserElement _n = XML.parser
+instance Ord e => RNC.Sym_Permutation (P.ParsecT e XMLs m) where
+       runPermutation (P value parser) = optional parser >>= f
+               where
+               -- NOTE: copy Control.Applicative.Permutations.runPermutation
+               -- to replace the commented empty below so that P.TrivialError
+               -- has the unexpected token.
+               f  Nothing = maybe {-empty-}(P.token (const Nothing) Set.empty) pure value
+               f (Just p) = RNC.runPermutation p
+       toPermutation p = P Nothing $ pure <$> p
+       toPermutationWithDefault v p = P (Just v) $ pure <$> p
+
+-- | Unprivatized 'Control.Applicative.Permutations.Permutation' to fix 'runPermutation'.
+-- so that the 'P.TrivialError' has an unexpected token
+-- which is an 'XML.Node' containing a 'XML.FileSource' useful when reporting errors.
+data Permutation m a = P (Maybe a) (m (Permutation m a))
+type instance RNC.Permutation (P.ParsecT e XMLs m) = Permutation (P.ParsecT e XMLs m)
+instance Functor m => Functor (Permutation m) where
+       fmap f (P v p) = P (f <$> v) (fmap f <$> p)
+instance Alternative m => Applicative (Permutation m) where
+       pure value = P (Just value) empty
+       lhs@(P f v) <*> rhs@(P g w) = P (f <*> g) (lhsAlt <|> rhsAlt)
+               where
+               lhsAlt = (<*> rhs) <$> v
+               rhsAlt = (lhs <*>) <$> w
+
+instance Ord e => RNC.Sym_Rule (P.ParsecT e XMLs m) where
+       -- rule n p = P.dbg s p {-(p P.<?> s)-} where s = Text.unpack n
+       rule _n = id
+       arg _n = pure ()
index 78be94c868bd628b1b4f5a2c73a6ce50bab9944f..223eb2c15a2113db3e160a26ebca5ea4af78dc79 100644 (file)
@@ -104,26 +104,18 @@ instance Sym_Rule Writer where
                         RuleMode_Ref  -> fromString n
                         RuleMode_Body -> ""
                         RuleMode_Def  -> ""
-type instance Perm Writer = Compose [] Writer
-instance Sym_Interleaved Writer where
-       interleaved (Compose []) = writeText "empty"
-       interleaved (Compose [Writer w]) = Writer w
-       interleaved (Compose l@(_:_)) = Writer $ \ns rm po pp ->
+type instance Permutation Writer = Compose [] Writer
+instance Sym_Permutation Writer where
+       runPermutation (Compose []) = writeText "empty"
+       runPermutation (Compose [Writer w]) = Writer w
+       runPermutation (Compose l@(_:_)) = Writer $ \ns rm po pp ->
                pairIfNeeded pp po op $
                TL.intercalate " & " $
                List.filter (not . TL.null) $
                (unWriter <$> l) <*> pure ns <*> pure rm <*> pure (op, SideL) <*> pure pairParen
                where op = infixB SideL 1
-       _f <$$> Writer w         = Compose [Writer w]
-       _f <$?> (_,Writer w)     = Compose [coerceWriter $ optional $ Writer w]
-       _f <$*> Writer w         = Compose [coerceWriter $ many (Writer w)]
-       Compose ws <||> Writer w = Compose (coerceWriter <$> ws <> [Writer w])
-       Compose ws <|?> (_,Writer w) =
-               Compose ((coerceWriter <$> ws) <>
-               [coerceWriter $ optional $ Writer w])
-       Compose ws <|*> (Writer w) =
-               Compose (coerceWriter <$> ws <>
-               [coerceWriter $ many $ Writer w])
+       toPermutation = Compose . pure
+       toPermutationWithDefault _ = Compose . pure
 instance Sym_RNC Writer where
        namespace _p _n = writeText ""
        element n (Writer w) = Writer $ \ns rm po pp ->
index 67fe8e6bd3dbf3a404fc0e9b8c8b5aea7e97ab00..2bf0130038d7261e4ee64dd079ce24ea98b5bfcb 100644 (file)
@@ -92,16 +92,11 @@ instance Sym_Rule NS where
                        S.put $ st{state_rules = HS.insert n state_rules}
                        ns
        arg _n = mempty
-type instance Perm NS = NS
-instance Sym_Interleaved NS where
-       interleaved = coerceNS
-       _f <$$> NS x        = NS x
-       _f <$?> (_, NS x)   = NS x
-       _f <$*> NS x        = NS x
-       _f <$:> NS x        = NS x
-       NS f <||> NS x      = NS f <> NS x
-       NS f <|?> (_, NS x) = NS f <> NS x
-       NS f <|*> NS x      = NS f <> NS x
+type instance Permutation NS = NS
+instance Sym_Permutation NS where
+       runPermutation = coerceNS
+       toPermutation = id
+       toPermutationWithDefault _def = id
 instance Sym_RNC NS where
        -- namespace n ns =
        --      NS $ return $ HM.singleton ns $ HS.singleton n
index 92b010ed6e0975f8e2c84756fcc3650f099d81d6..b52d85da0e302804f5482ed0067a57dba436b7bf 100644 (file)
@@ -1,7 +1,8 @@
 module Language.Symantic.XML
  ( module Language.Symantic.XML.Document
  , module Language.Symantic.XML.Parser
- , FilePos(..)
+ , Offset
+ , LineColumn(..)
  , FileRange(..)
  , NoSource(..)
  , Sourced(..)
index 5e8198a19cc784ebf0b4c1cdf3b70af29569e62b..e124a4b5b7061a3e03df58bb147f2cf05b4012a5 100644 (file)
@@ -32,7 +32,7 @@ import Data.Semigroup (Semigroup(..))
 import Data.Sequence (Seq)
 import Data.String (String, IsString(..))
 import GHC.Generics (Generic)
-import Prelude ((-), error, fromIntegral)
+import Prelude ((+), (-), error, fromIntegral)
 import System.IO (FilePath)
 import Text.Show (Show(..), showsPrec, showChar, showParen, showString)
 import qualified Data.Char.Properties.XMLCharProps as XC
@@ -45,7 +45,7 @@ import qualified Data.Text.Lazy as TL
 import qualified Data.TreeSeq.Strict as TS
 
 -- * Type 'XML'
-type XML  = TS.Tree (Sourced FileSource Node)
+type XML  = TS.Tree (Sourced (FileSource Offset) Node)
 type XMLs = Seq XML
 
 -- | Unify two 'XMLs', merging border 'NodeText's if any.
@@ -54,10 +54,10 @@ union x y =
        case (Seq.viewr x, Seq.viewl y) of
         (xs Seq.:> x0, y0 Seq.:< ys) ->
                case (x0,y0) of
-                (  Tree0 (Sourced ssx@(FileRange {fileRange_file=fx}:|_sx) (NodeText tx))
-                 , Tree0 (Sourced ssy@(FileRange {fileRange_file=fy}:|_sy) (NodeText ty)) ) | fx == fy ->
+                (  Tree0 (Sourced sx (NodeText tx))
+                 , Tree0 (Sourced sy (NodeText ty)) ) ->
                        xs `union`
-                       Seq.singleton (Tree0 $ (NodeText <$>) $ Sourced ssx tx <> Sourced ssy ty) `union`
+                       Seq.singleton (Tree0 $ (NodeText <$>) $ Sourced sx tx <> Sourced sy ty) `union`
                        ys
                 _ -> x <> y
         (Seq.EmptyR, _) -> y
@@ -320,37 +320,51 @@ instance (Show src, Show a) => Show (Sourced src a) where
                showParen (p > 10) $
                showsPrec 11 unSourced .
                showString " @" . showsPrec 10 source
-instance (FromPad a, Semigroup a) => Semigroup (Sourced FileSource a) where
-       Sourced (FileRange fx bx ex :| lx) x <> Sourced (FileRange _fy by ey :| _ly) y =
-               Sourced (FileRange fx bx ey :| lx) $
-                       x<>fromPad (FilePos lines columns)<>y
-               where
-               lines   = filePos_line   by - filePos_line ex
-               columns = filePos_column by - filePos_column (if lines <= 0 then ex else bx)
+instance Semigroup a => Semigroup (Sourced (FileSource Offset) a) where
+       (<>)
+        (Sourced rx@(FileRange xf xb xe :|  xs) x)
+        (Sourced    (FileRange yf yb ye :| _ys) y)
+        | xf == yf && xe == yb = Sourced (FileRange xf xb ye :| xs) $ x<>y
+        | otherwise = Sourced rx (x<>y)
+{-
+instance (FromPad a, Semigroup a) => Semigroup (Sourced (FileSource LineCol) a) where
+       (<>)
+        (Sourced rx@(FileRange xf xb xe :|  xs) x)
+        (Sourced    (FileRange yf yb ye :| _ys) y)
+        | xf == yf  = Sourced (FileRange xf xb ye :| xs) $ x<>fromPad (LineColumn l c)<>y
+        | otherwise = Sourced rx (x<>y)
+       where
+       l = lineNum yb - lineNum xe
+       c = colNum  yb - colNum (if l <= 0 then xe else xb)
 
 -- ** Class 'FromPad'
 class FromPad a where
-       fromPad :: FilePos -> a
+       fromPad :: LineColumn -> a
 instance FromPad T.Text where
-       fromPad FilePos{..} =
-               T.replicate filePos_line   "\n" <>
-               T.replicate filePos_column " "
+       fromPad LineColumn{..} =
+               T.replicate lineNum   "\n" <>
+               T.replicate colNum " "
 instance FromPad TL.Text where
-       fromPad FilePos{..} =
-               TL.replicate (fromIntegral filePos_line)   "\n" <>
-               TL.replicate (fromIntegral filePos_column) " "
+       fromPad LineColumn{..} =
+               TL.replicate (fromIntegral lineNum)   "\n" <>
+               TL.replicate (fromIntegral colNum) " "
 instance FromPad EscapedText where
        fromPad = EscapedText . pure . fromPad
 instance FromPad Escaped where
        fromPad = EscapedPlain . fromPad
+-}
 
 -- ** Class 'NoSource'
 class NoSource src where
        noSource :: src
-instance NoSource FileSource where
+instance NoSource pos => NoSource (FileSource pos) where
        noSource = noSource :| []
-instance NoSource FileRange where
-       noSource = FileRange "" filePos1 filePos1
+instance NoSource pos => NoSource (FileRange pos) where
+       noSource = FileRange "" noSource noSource
+instance NoSource Offset where
+       noSource = Offset def
+instance NoSource LineColumn where
+       noSource = LineColumn def def
 {-
 instance (FromPad a, Semigroup a, Monoid a) => Monoid (Sourced a) where
        mempty  = sourced0 mempty
@@ -361,42 +375,59 @@ notSourced :: NoSource src => a -> Sourced src a
 notSourced = Sourced noSource
 
 -- * Type 'FileSource'
-type FileSource = NonEmpty FileRange
+type FileSource pos = NonEmpty (FileRange pos)
+
+-- ** Type 'FileSourced'
+type FileSourced = Sourced (FileSource Offset)
 
 -- ** Type 'FileRange'
-data FileRange
+data FileRange pos
  =   FileRange
  {   fileRange_file  :: FilePath
- ,   fileRange_begin :: FilePos
- ,   fileRange_end   :: FilePos
+ ,   fileRange_begin :: pos
+ ,   fileRange_end   :: pos
  } deriving (Eq, Ord)
-instance Default FileRange where
-       def = FileRange "" filePos1 filePos1
-instance Show FileRange where
+instance Default (FileRange Offset) where
+       def = FileRange "" def def
+instance Default (FileRange LineColumn) where
+       def = FileRange "" def def
+instance Show (FileRange Offset) where
+       showsPrec _p FileRange{..} =
+               showString fileRange_file .
+               showChar '@' . showsPrec 10 fileRange_begin .
+               showChar '-' . showsPrec 10 fileRange_end
+instance Show (FileRange LineColumn) where
        showsPrec _p FileRange{..} =
                showString fileRange_file .
                showChar '#' . showsPrec 10 fileRange_begin .
                showChar '-' . showsPrec 10 fileRange_end
 
--- *** Type 'FilePos'
+-- *** Type 'Offset'
+newtype Offset = Offset Int
+ deriving (Eq, Ord)
+instance Show Offset where
+       showsPrec p (Offset o) = showsPrec p o
+instance Default Offset where
+       def = Offset 0
+instance Semigroup Offset where
+       Offset x <> Offset y = Offset (x+y)
+instance Monoid Offset where
+       mempty  = def
+       mappend = (<>)
+
+-- *** Type 'LineColumn'
 -- | Absolute text file position.
-data FilePos = FilePos
- { filePos_line   :: {-# UNPACK #-} LineNum
- , filePos_column :: {-# UNPACK #-} ColNum
+data LineColumn = LineColumn
+ { lineNum :: {-# UNPACK #-} Offset
+ , colNum  :: {-# UNPACK #-} Offset
  } deriving (Eq, Ord)
-instance Default FilePos where
-       def = filePos1
-instance Show FilePos where
-       showsPrec _p FilePos{..} =
-               showsPrec 11 filePos_line .
+instance Default LineColumn where
+       def = LineColumn def def
+instance Show LineColumn where
+       showsPrec _p LineColumn{..} =
+               showsPrec 11 lineNum .
                showChar ':' .
-               showsPrec 11 filePos_column
-
-filePos1 :: FilePos
-filePos1 = FilePos 1 1
-
--- **** Type 'LineNum'
-type LineNum = Int
+               showsPrec 11 colNum
 
--- **** Type 'ColNum'
-type ColNum = Int
+filePos1 :: LineColumn
+filePos1 = def
index b350a812d03761bab01c85c60d3788d67011bd4d..1390cfdc3ba0c3c23b7c3cd368d62451fadd161a 100644 (file)
@@ -11,24 +11,21 @@ import Data.Bool
 import Data.Either (Either(..))
 import Data.Foldable (Foldable(..))
 import Data.Function (($), (.))
-import Data.Functor ((<$>), (<$))
-import Data.Functor.Identity (Identity(..))
-import Data.List.NonEmpty (NonEmpty(..))
+import Data.Functor ((<$>))
 import Data.Maybe (Maybe(..))
 import Data.Monoid (Monoid(..))
 import Data.Ord (Ord(..))
-import Data.Proxy (Proxy(..))
 import Data.Semigroup (Semigroup(..))
 import Data.Sequence (ViewL(..))
 import Data.String (String)
-import Data.Tuple (snd)
+import Prelude (error)
 import Text.Show (Show(..))
-import qualified Control.Monad.Trans.State as S
 import qualified Data.List as List
+import qualified Data.List.NonEmpty as NonEmpty
 import qualified Data.Sequence as Seq
 import qualified Text.Megaparsec as P
 
-import           Language.Symantic.XML.Document (XML, XMLs)
+import Language.Symantic.XML.Document (XML, XMLs)
 import qualified Language.Symantic.XML.Document as XML
 
 -- | Whether the given 'XML.Node' must be ignored by the parser.
@@ -48,19 +45,6 @@ instance P.Stream XMLs where
                 t@(XML.Tree XML.Sourced{XML.unSourced=n} _) :< ts
                  | isIgnoredNode n -> P.take1_ ts
                  | otherwise       -> Just (t, ts)
-       positionAt1 _s pos (XML.Tree (XML.Sourced (XML.FileRange{XML.fileRange_begin=XML.FilePos l c}:|_) _n) _ts) =
-               pos{ P.sourceLine   = P.mkPos l
-                  , P.sourceColumn = P.mkPos c }
-       positionAtN s pos ts =
-               case Seq.viewl ts of
-                t :< _ -> P.positionAt1 s pos t
-                EmptyL -> pos
-       advance1 _s _indent pos (XML.Tree (XML.Sourced (XML.FileRange{XML.fileRange_end=XML.FilePos l c}:|_) _n) _ts) =
-               -- WARNING: the end of a 'FileRange' is not necessarily
-               -- the beginning of the next 'FileRange'.
-               pos{ P.sourceLine   = P.mkPos l
-                  , P.sourceColumn = P.mkPos c }
-       advanceN s = foldl' . P.advance1 s
        takeN_ n s | n <= 0    = Just (mempty, s)
                   | null s    = Nothing
                   | otherwise =
@@ -69,103 +53,44 @@ instance P.Stream XMLs where
                case P.takeN_ (Seq.length ko) rs of
                 Nothing -> Just (ok, rs)
                 Just (ns',rs') -> Just (ok<>ns', rs')
-       tokensToChunk _s = Seq.fromList
-       chunkToTokens _s = toList
-       chunkLength _s   = Seq.length
-       takeWhile_       = Seq.spanl
+       tokensToChunk _s  = Seq.fromList
+       chunkToTokens _s  = toList
+       chunkLength _s    = Seq.length
+       takeWhile_        = Seq.spanl
+       -- | NOTE: unimplemented: useless since each 'XML.Node' is annotated with its 'FileSource'.
+       reachOffset       = error "[BUG] P.Stream XMLs: reachOffset is not helpful, please use annotated source locations"
+       -- | NOTE: useless since each 'XML.Node' is annotated with its 'FileSource'.
+       reachOffsetNoLine = error "[BUG] P.Stream XMLs: reachOffsetNoLine is not helpful, please use annotated source locations"
+       showTokens _s toks = List.intercalate ", " $ toList $ showTree <$> toks
+               where
+               showTree :: XML -> String
+               showTree (XML.Tree a _ts) =
+                       showCell a $ \case
+                        XML.NodeElem n     -> "element "<>show n<>""
+                        XML.NodeAttr n     -> "attribute "<>show n<>""
+                        XML.NodeText _t    -> "text"
+                        XML.NodeComment _c -> "comment"
+                        XML.NodePI n _t    -> "processing-instruction "<>show n<>""
+                        XML.NodeCDATA _t   -> "cdata"
+               
+               showCell (XML.Sourced path@(XML.FileRange{XML.fileRange_file} NonEmpty.:| _) a) f =
+                       if null fileRange_file
+                       then f a
+                       else f a <> foldMap (\p -> "\n in "<>show p) path
 
--- | Adjust the current 'P.SourcePos'
--- to be the begining of the following-sibling 'XML' node
--- so that on error 'P.toHints' keeps expected 'P.Token's in the list,
--- and thus makes useful error messages.
---
--- This is needed because the end of a 'FileRange'
--- is not necessarily the begin of the next 'FileRange'.
-
--- type Parser = S.StateT State (P.Parsec ErrorRead XMLs)
-
-setFilePosToNextNode :: P.MonadParsec e XMLs m => m ()
-setFilePosToNextNode = do
-       P.State
-        { P.stateInput = inp
-        , P.statePos   = pos :| _
-        } <- P.getParserState
-       case Seq.viewl inp of
-        EmptyL -> return ()
-        t :< _ -> P.setPosition $ P.positionAt1 (Proxy::Proxy XMLs) pos t
-
--- | @runParserT st pos p xs@ runs a 'Parser' @p@ to parse @xs@,
--- using state @st@ from position @pos@.
-runParserT ::
- Ord err =>
- Monad m =>
- P.ParsecT err XMLs m a ->
- NonEmpty P.SourcePos ->
- XMLs ->
- m (Either (P.ParseError (P.Token XMLs) err) a)
-runParserT p pos inp =
-       snd <$>
-       P.runParserT' p P.State
-        { P.stateInput = inp
-        , P.statePos =
-               case Seq.viewl inp of
-                EmptyL -> pos
-                XML.Tree (XML.Sourced ss _) _ :< _ ->
-                       (<$> ss) $ \XML.FileRange{fileRange_begin=bp, fileRange_file} ->
-                               P.SourcePos fileRange_file
-                                (P.mkPos $ XML.filePos_line bp)
-                                (P.mkPos $ XML.filePos_column bp)
-        , P.stateTabWidth = P.pos1
-        , P.stateTokensProcessed = 0
-        }
-
--- | Like 'runParser', but using 'Identity' as the inner-monad of 'P.ParsecT'.
-runParser ::
- Ord err =>
- P.Parsec err XMLs a ->
- NonEmpty P.SourcePos ->
- XMLs ->
- Either (P.ParseError (P.Token XMLs) err) a
-runParser p pos xs = runIdentity $ runParserT p pos xs
-
--- | @parser p xs@ returns a parser parsing @xs@ entirely with @p@,
--- applying 'setFilePosToNextNode' in case of success,
--- or resetting 'P.statePos' and re-raising the exception in case of error.
-parser :: Ord err => P.Parsec err XMLs a -> XMLs -> P.Parsec err XMLs a
-parser p xs = do
-       P.State{P.statePos=pos} <- P.getParserState
-       case runParser (p <* P.eof) pos xs of
-        Left (P.TrivialError statePos un ex) -> do
-               s <- P.getParserState
-               P.setParserState s{P.statePos}
-               P.failure un ex
-        Left (P.FancyError statePos errs) -> do
-               s <- P.getParserState
-               P.setParserState s{P.statePos}
-               P.fancyFailure errs
-        Right a -> a <$ setFilePosToNextNode
-
--- | @stateParser p xs@ returns a stateful parser parsing @xs@ with @p@,
--- applying 'setFilePosToNextNode' in case of success.
-stateParser ::
- Ord err =>
- S.StateT st (P.Parsec err XMLs) a ->
- XMLs ->
- S.StateT st (P.Parsec err XMLs) a
-stateParser p xs = do
-       st <- S.get
-       P.State{P.statePos=pos} <- P.getParserState
-       case runParser (S.runStateT (p <* P.eof) st) pos xs of
-        Left (P.TrivialError statePos un ex) -> do
-               -- NOTE: just re-raising exception.
-               s <- P.getParserState
-               P.setParserState s{P.statePos}
-               P.failure un ex
-        Left (P.FancyError statePos errs) -> do
-               -- NOTE: just re-raising exception.
-               s <- P.getParserState
-               P.setParserState s{P.statePos}
-               P.fancyFailure errs
-        Right (a, st') -> do
-               S.put st'
-               a <$ setFilePosToNextNode
+-- | @subParser p xs@ returns a parser parsing @xs@ entirely with @p@,
+-- updating 'P.stateOffset' and re-raising any exception.
+subParser :: Ord err => P.Parsec err XMLs a -> XMLs -> P.Parsec err XMLs a
+subParser p xs = do
+       st <- P.getParserState
+       let (st', res) = P.runParser' (p <* P.eof) st
+                { P.stateInput = xs
+                , P.stateOffset = P.stateOffset st
+                }
+       P.updateParserState (\s -> s{P.stateOffset = P.stateOffset st'})
+       case res of
+        Right a -> return a
+        Left (P.ParseErrorBundle errs _) ->
+               case NonEmpty.head errs of
+                P.TrivialError _o us es -> P.failure us es
+                P.FancyError _o es -> P.fancyFailure es
index be8290e9ba82579a97085d7061b3d5a650a03075..60b24f6601bc2d96bcdf2642c35c88b1fc732050 100644 (file)
@@ -51,16 +51,21 @@ import qualified Text.Megaparsec.Char as P
 import Language.Symantic.XML.Document
 import Language.Symantic.XML.Read.Parser
 
-readXML :: FilePath -> TL.Text -> Either (P.ParseError (P.Token TL.Text) Error) XMLs
+readXML :: FilePath -> TL.Text -> Either (P.ParseErrorBundle TL.Text Error) XMLs
 readXML filePath stateInput =
        snd $
        P.runParser'
         (R.runReaderT p_document def)
         P.State
         { P.stateInput
-        , P.statePos = pure $ P.initialPos filePath
-        , P.stateTabWidth = P.pos1 -- NOTE: do not expand tabs.
-        , P.stateTokensProcessed = 0
+        , P.stateOffset = 0
+        , P.statePosState = P.PosState
+                { P.pstateInput      = stateInput
+                , P.pstateOffset     = 0
+                , P.pstateSourcePos  = P.initialPos filePath
+                , P.pstateTabWidth   = P.pos1
+                , P.pstateLinePrefix = ""
+                }
         }
 
 readFile :: FilePath -> IO (Either ErrorRead TL.Text)
@@ -265,14 +270,14 @@ p_STag = do
                  | otherwise -> do
                        ns <- lookupNamePrefix prefix
                        return QName{qNameSpace=ns, qNameLocal=pNameLocal n}
-       elemAttrs :: [Sourced FileSource (QName, Sourced FileSource EscapedText)] <-
+       elemAttrs :: [FileSourced (QName, FileSourced EscapedText)] <-
                -- NOTE: expand attributes' PName into QName.
                forM as $ \s@Sourced{unSourced=(an, av)} -> do
                        ns <- maybe (return "") lookupNamePrefix $ pNameSpace an
                        let qn = QName{qNameSpace=ns, qNameLocal=pNameLocal an}
                        return s{unSourced=(qn, av)}
        -- NOTE: check for attribute collision.
-       let attrsByQName :: HM.HashMap QName [Sourced FileSource (QName, Sourced FileSource EscapedText)] =
+       let attrsByQName :: HM.HashMap QName [FileSourced (QName, FileSourced EscapedText)] =
                HM.fromListWith (<>) $ (<$> elemAttrs) $ \a@(Sourced _c (an, _av)) -> (an, [a])
        case HM.toList $ HM.filter (\x -> length x > 1) attrsByQName of
         (an, _):_ -> p_error $ Error_Attribute_collision an
@@ -293,13 +298,13 @@ p_STag = do
        return $ Tree (cell $ NodeElem elemName) content
 
 -- *** Attribute
-p_Attribute :: P.Tokens s ~ TL.Text => Parser Error s (Sourced FileSource (PName, Sourced FileSource EscapedText))
+p_Attribute :: P.Tokens s ~ TL.Text => Parser Error s (FileSourced (PName, FileSourced EscapedText))
 p_Attribute = p_Sourced $ (,) <$> p_PName <* p_Eq <*> p_AttValue
 
-p_AttValue :: P.Tokens s ~ TL.Text => Parser Error s (Sourced FileSource EscapedText)
+p_AttValue :: P.Tokens s ~ TL.Text => Parser Error s (FileSourced EscapedText)
 p_AttValue = P.label "AttValue" $ p_quoted p_AttValueText
 
-p_AttValueText :: P.Tokens s ~ TL.Text => Char -> Parser Error s (Sourced FileSource EscapedText)
+p_AttValueText :: P.Tokens s ~ TL.Text => Char -> Parser Error s (FileSourced EscapedText)
 p_AttValueText q = p_Sourced $
        EscapedText . Seq.fromList <$> P.many
         ( p_Reference
index ae1f9d735a3dcd83fe0bc5678fc81cc94f292481..ed4dbbbe911a1f2771383ba87d7075bc10afa2ff 100644 (file)
@@ -1,6 +1,5 @@
 {-# LANGUAGE ConstraintKinds #-}
 {-# LANGUAGE FlexibleContexts #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
 {-# LANGUAGE OverloadedStrings #-}
 {-# LANGUAGE Rank2Types #-}
 {-# LANGUAGE StrictData #-}
@@ -12,18 +11,13 @@ import Control.Monad (Monad(..))
 import Data.Bool
 import Data.Char (Char)
 import Data.Default.Class (Default(..))
-import Data.Either (Either(..))
 import Data.Eq (Eq(..))
 import Data.Function (($), (.))
 import Data.Functor ((<$>))
-import Data.Functor.Identity (Identity(..))
-import Data.List.NonEmpty (NonEmpty(..), nonEmpty)
-import Data.Maybe (Maybe(..), fromMaybe)
+import Data.List.NonEmpty (NonEmpty(..))
+import Data.Maybe (Maybe(..))
 import Data.Ord (Ord(..))
-import Data.Proxy (Proxy(..))
-import Data.Semigroup (Semigroup(..))
 import Data.String (IsString)
-import Data.Tuple (snd)
 import Prelude (Integer)
 import Text.Show (Show(..))
 import qualified Control.Monad.Trans.Reader as R
@@ -39,7 +33,7 @@ import Language.Symantic.XML.Document
 -- | Convenient alias.
 type Parser   e s a =
      Parsable e s a =>
-     R.ReaderT Reader (P.ParsecT e s Identity) a
+     R.ReaderT Reader (P.Parsec e s) a
 
 -- ** Type 'Parsable'
 type Parsable e s a =
@@ -52,7 +46,7 @@ type Parsable e s a =
 
 -- ** Type 'Reader'
 data Reader = Reader
- { reader_source     :: FileSource
+ { reader_source     :: FileSource Offset
  , reader_ns_scope   :: HM.HashMap NCName Namespace
  , reader_ns_default :: Namespace
  } deriving (Show)
@@ -66,54 +60,45 @@ instance Default Reader where
         , reader_ns_default = ""
         }
 
-p_FilePos :: Parser e s FilePos
-p_FilePos = do
-       pos :| _  <- P.statePos <$> P.getParserState
-       return $ FilePos (P.unPos $ P.sourceLine pos) (P.unPos $ P.sourceColumn pos)
+p_Offset :: Parser e s Offset
+p_Offset = Offset <$> P.getOffset
+{-# INLINE p_Offset #-}
 
-p_Sourced :: Parser e s a -> Parser e s (Sourced FileSource a)
+p_Sourced :: Parser e s a -> Parser e s (Sourced (FileSource Offset) a)
 p_Sourced pa = do
        Reader{reader_source} <- R.ask
-       beginPos :| _ <- P.statePos <$> P.getParserState
+       b <- P.getParserState
+       let fileRange_file = P.sourceName $ P.pstateSourcePos $ P.statePosState b
+       let fileRange_begin = Offset $ P.stateOffset b
        a <- pa
-       fileRange_end <- p_FilePos
-       let fileRange = FileRange
-                { fileRange_file = P.sourceName beginPos
-                , fileRange_begin =
-                       FilePos
-                        (P.unPos $ P.sourceLine   beginPos)
-                        (P.unPos $ P.sourceColumn beginPos)
-                , fileRange_end
-                }
-       return $ Sourced (setSource fileRange reader_source) a
-
-setSource :: FileRange -> FileSource -> FileSource
+       e <- P.getParserState
+       let fileRange_end = Offset $ P.stateOffset e
+       return $ Sourced (setSource FileRange{..} reader_source) a
+
+setSource :: FileRange pos -> FileSource pos -> FileSource pos
 setSource fileRange (_curr:|next) = fileRange :| next
 
--- | Like 'p_Sourced' but uncoupled for more flexibility.
+-- | Like 'p_Sourced' but uncoupled (through the use of 'p_SourcedEnd') for more flexibility.
 p_SourcedBegin :: Parser e s a -> Parser e s a
 p_SourcedBegin pa = do
-       currPos :| _ <- P.statePos <$> P.getParserState
-       let fileRange_begin = FilePos
-                (P.unPos $ P.sourceLine   currPos)
-                (P.unPos $ P.sourceColumn currPos)
-       let fileRange = FileRange
-                { fileRange_file = P.sourceName currPos
-                , fileRange_begin
-                , fileRange_end  = fileRange_begin
-                }
+       b <- P.getParserState
+       let fileRange_file  = P.sourceName $ P.pstateSourcePos $ P.statePosState b
+       let fileRange_begin = Offset $ P.stateOffset b
+       let fileRange_end   = fileRange_begin
        (`R.local` pa) $ \ro@Reader{..} ->
-               ro{ reader_source = setSource fileRange reader_source }
+               ro{ reader_source = setSource FileRange{..} reader_source }
 
--- | Only to be used within a 'p_SourcedBegin'.
-p_SourcedEnd :: Parser e s (a -> Sourced FileSource a)
+-- | WARNING: Only to be used within a 'p_SourcedBegin'.
+p_SourcedEnd :: Parser e s (a -> Sourced (FileSource Offset) a)
 p_SourcedEnd = do
-       fileRange_end <- p_FilePos
        Reader{..} <- R.ask
+       e <- P.getParserState
+       let fileRange_end = Offset $ P.stateOffset e
        return $ Sourced $
                 (\(curr:|path) -> curr{fileRange_end}:|path)
                 reader_source
 
+{-
 -- ** Type 'StreamSourced'
 -- | Wrap 'TL.Text' to have a 'P.Stream' instance
 -- whose 'P.advance1' method abuses the tab width state
@@ -131,11 +116,13 @@ instance P.Stream StreamSourced where
        tokensToChunk _s = P.tokensToChunk (Proxy::Proxy TL.Text)
        chunkToTokens _s = P.chunkToTokens (Proxy::Proxy TL.Text)
        chunkLength   _s = P.chunkLength   (Proxy::Proxy TL.Text)
+       {-
        advance1 _s indent (P.SourcePos n line col) c =
                case c of
                 '\n' -> P.SourcePos n (line <> P.pos1) indent
                 _    -> P.SourcePos n line (col <> P.pos1)
        advanceN s indent = TL.foldl' (P.advance1 s indent)
+       -}
 
 -- | Wrapper around |P.runParser'|
 -- to use given 'Sourced' as starting position.
@@ -156,7 +143,7 @@ runParserOnSourced p (Sourced (FileRange inp bp _ep :| path) s) =
        where
        indent = P.mkPos $ filePos_column bp
        ro     = def{ reader_source = fromMaybe (pure def) $ nonEmpty path }
-
+-}
 
 -- * Type 'Error'
 data Error
index 755d329b67c830a6c944b5e52943f5a73ce2fb80..850c870da5b66bb6b94e39134d8a512088a59968 100644 (file)
@@ -1,8 +1,9 @@
-resolver: lts-12.25
+resolver: lts-12.26
 packages:
 - '.'
 - location: '../treeseq'
   extra-dep: true
 - location: '../symantic/symantic-grammar'
   extra-dep: true
-
+extra-deps:
+- megaparsec-7.0.4@sha256:a7397151601cbe6b8f831f8bdad1a10118dcd6d9a7ee50d6bbdcfbd1181b4ba2
index 6c4265be28717f3ac05e822975309034e07f1dd8..42228ea81962b7416c2102799451f58e84ddd0fa 100644 (file)
@@ -2,7 +2,7 @@ name: symantic-xml
 -- PVP:  +-+------- breaking API changes
 --       | | +----- non-breaking API additions
 --       | | | +--- code changes with no API change
-version: 0.0.0.20181221
+version: 0.0.0.20190118
 category: Data Structures
 synopsis: Library for reading, validating and writing a subset of the XML format.
 description: Symantics for an approximative implementation
@@ -28,7 +28,7 @@ bug-reports: Julien Moutinho <julm+symantic-xml@autogeree.net>
 
 build-type: Simple
 cabal-version: 1.24
-tested-with: GHC==8.4.3
+tested-with: GHC==8.4.4
 extra-source-files:
   stack.yaml
 extra-tmp-files:
@@ -77,7 +77,8 @@ Library
     , filepath             >= 1.4
     , hashable             >= 1.2.6
     , hxt-charproperties   >= 9.2
-    , megaparsec           >= 6.3
+    , megaparsec           >= 7.0.4
+    -- , parser-combinators   >= 1.0
     , safe                 >= 0.3
     , text                 >= 1.2
     , transformers         >= 0.5
@@ -112,7 +113,7 @@ Test-Suite symantic-xml-test
     , containers >= 0.5
     , deepseq >= 1.4
     , filepath >= 1.4
-    , megaparsec >= 6.3
+    , megaparsec >= 7.0.4
     , tasty >= 0.11
     , tasty-golden >= 2.3
     , text >= 1.2
index fe3855028a0df5fb1ab937bda3423a60ac7aa924..3959c042268deab4bccf3afa0ba1fc1099cbcfe9 100644 (file)
@@ -6,10 +6,8 @@ import Control.Arrow (left)
 import Control.Monad (Monad(..), sequence)
 import Data.Bool
 import Data.Either (Either(..))
-import Data.Foldable (Foldable(..))
 import Data.Function (($), (.))
 import Data.Functor ((<$>))
-import Data.List.NonEmpty (NonEmpty(..))
 import Data.Semigroup (Semigroup(..))
 import Data.String (String)
 import System.FilePath (FilePath)
@@ -25,7 +23,7 @@ import qualified Data.TreeSeq.Strict as TS
 import Test.Tasty
 import Test.Tasty.Golden
 
-import Language.Symantic.XML (XML, XMLs)
+import Language.Symantic.XML (XMLs)
 import qualified Language.Symantic.XML as XML
 
 -- * Golden testing utilities
@@ -47,27 +45,9 @@ readXML inputFile =
        XML.readFile inputFile >>= \case
         Left err -> return $ Left $ show err
         Right input ->
-               return $ left P.parseErrorPretty $
+               return $ left P.errorBundlePretty $
                        XML.readXML inputFile input
 
-instance P.ShowToken XML where
-       showTokens toks = List.intercalate ", " $ toList $ showTree <$> toks
-               where
-               showTree :: XML -> String
-               showTree (XML.Tree a _ts) =
-                       showCell a $ \case
-                        XML.NodeElem n     -> "<"<>show n
-                        XML.NodeAttr n     -> show n<>"="
-                        XML.NodeText _t    -> "text"
-                        XML.NodeComment _c -> "<!--"
-                        XML.NodePI n _t    -> "<?"<>show n
-                        XML.NodeCDATA _t   -> "<[CDATA[["
-               
-               showCell (XML.Sourced path@(XML.FileRange{XML.fileRange_file} :| _) a) f =
-                       if null fileRange_file
-                       then f a
-                       else f a <> foldMap (\p -> "\n in "<>show p) path
-
 goldensIO :: IO TestTree
 goldensIO =
        testGroup "Golden" <$>
index 162890b7af6185639251ac06528bcd0d145b3ca4..075d257ab32597dec3cfc705dcd33a39a2052946 100644 (file)
@@ -1,4 +1,4 @@
-(NodeElem root) @(test/Golden/XML/0001.xml#1:1-1:8 :| [])
+(NodeElem root) @(test/Golden/XML/0001.xml@0-7 :| [])
 
-(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0001.xml#1:8-2:1 :| [])
+(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0001.xml@7-8 :| [])
 
index 55becf7b650c6658371805391389601ef6e23cfd..01c5adbe59c84f18772fffce0ec69655789c981f 100644 (file)
@@ -1,4 +1,4 @@
-(NodeElem root) @(test/Golden/XML/0002.xml#1:1-1:14 :| [])
+(NodeElem root) @(test/Golden/XML/0002.xml@0-13 :| [])
 
-(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0002.xml#1:14-2:1 :| [])
+(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0002.xml@13-14 :| [])
 
index ce7c3b37034cb4c983bda5cfcfe81695a3a7622c..e946d40d7aa854cde453ab6240dee60307667b6b 100644 (file)
@@ -1,8 +1,8 @@
-(NodeElem root) @(test/Golden/XML/0003.xml#1:1-1:15 :| [])
+(NodeElem root) @(test/Golden/XML/0003.xml@0-14 :| [])
 |
-`- (NodeAttr n) @(test/Golden/XML/0003.xml#1:7-1:12 :| [])
+`- (NodeAttr n) @(test/Golden/XML/0003.xml@6-11 :| [])
    |
-   `- (NodeText (EscapedText (fromList [EscapedPlain "v"]))) @(test/Golden/XML/0003.xml#1:10-1:11 :| [])
+   `- (NodeText (EscapedText (fromList [EscapedPlain "v"]))) @(test/Golden/XML/0003.xml@9-10 :| [])
 
-(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0003.xml#1:15-2:1 :| [])
+(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0003.xml@14-15 :| [])
 
index c40cd5cba68a435b3642d4d9f3f06e9b612ede48..e8303023a6d8a0e60148431c86df4c8a6163ae47 100644 (file)
@@ -1,12 +1,12 @@
-(NodeElem doc) @(test/Golden/XML/0004.xml#1:1-3:7 :| [])
+(NodeElem doc) @(test/Golden/XML/0004.xml@0-33 :| [])
 |
-+- (NodeText (EscapedText (fromList [EscapedPlain "\r\n"]))) @(test/Golden/XML/0004.xml#1:6-2:1 :| [])
++- (NodeText (EscapedText (fromList [EscapedPlain "\r\n"]))) @(test/Golden/XML/0004.xml@5-7 :| [])
 |
-+- (NodeElem a) @(test/Golden/XML/0004.xml#2:1-2:19 :| [])
++- (NodeElem a) @(test/Golden/XML/0004.xml@7-25 :| [])
 |  |
-|  `- (NodeElem b) @(test/Golden/XML/0004.xml#2:4-2:15 :| [])
+|  `- (NodeElem b) @(test/Golden/XML/0004.xml@10-21 :| [])
 |     |
-|     `- (NodeElem c) @(test/Golden/XML/0004.xml#2:7-2:11 :| [])
+|     `- (NodeElem c) @(test/Golden/XML/0004.xml@13-17 :| [])
 |
-`- (NodeText (EscapedText (fromList [EscapedPlain "\r\n"]))) @(test/Golden/XML/0004.xml#2:19-3:1 :| [])
+`- (NodeText (EscapedText (fromList [EscapedPlain "\r\n"]))) @(test/Golden/XML/0004.xml@25-27 :| [])
 
index 06bcc75262eaaf6a6448d2ae9c8a599d1ca55c61..822b1e8bae98e221c05ea177664bd7639ec25e5c 100644 (file)
@@ -1,38 +1,38 @@
-(NodeElem doc) @(test/Golden/XML/0005.xml#1:1-3:7 :| [])
+(NodeElem doc) @(test/Golden/XML/0005.xml@0-33 :| [])
 |
-+- (NodeText (EscapedText (fromList [EscapedPlain "\r\n"]))) @(test/Golden/XML/0005.xml#1:6-2:1 :| [])
++- (NodeText (EscapedText (fromList [EscapedPlain "\r\n"]))) @(test/Golden/XML/0005.xml@5-7 :| [])
 |
-+- (NodeElem a) @(test/Golden/XML/0005.xml#2:1-2:19 :| [])
++- (NodeElem a) @(test/Golden/XML/0005.xml@7-25 :| [])
 |  |
-|  `- (NodeElem b) @(test/Golden/XML/0005.xml#2:4-2:15 :| [])
+|  `- (NodeElem b) @(test/Golden/XML/0005.xml@10-21 :| [])
 |     |
-|     `- (NodeElem c) @(test/Golden/XML/0005.xml#2:7-2:11 :| [])
+|     `- (NodeElem c) @(test/Golden/XML/0005.xml@13-17 :| [])
 |
-`- (NodeText (EscapedText (fromList [EscapedPlain "\r\n"]))) @(test/Golden/XML/0005.xml#2:19-3:1 :| [])
+`- (NodeText (EscapedText (fromList [EscapedPlain "\r\n"]))) @(test/Golden/XML/0005.xml@25-27 :| [])
 
-(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0005.xml#3:7-4:1 :| [])
+(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0005.xml@33-35 :| [])
 
-(NodeComment " comment after document element") @(test/Golden/XML/0005.xml#4:1-4:39 :| [])
+(NodeComment " comment after document element") @(test/Golden/XML/0005.xml@35-73 :| [])
 
-(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0005.xml#4:39-5:1 :| [])
+(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0005.xml@73-75 :| [])
 
-(NodePI PI "after document element") @(test/Golden/XML/0005.xml#5:1-5:30 :| [])
+(NodePI PI "after document element") @(test/Golden/XML/0005.xml@75-104 :| [])
 
-(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0005.xml#5:30-6:1 :| [])
+(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0005.xml@104-106 :| [])
 
-(NodeComment " comment after document element") @(test/Golden/XML/0005.xml#6:1-6:39 :| [])
+(NodeComment " comment after document element") @(test/Golden/XML/0005.xml@106-144 :| [])
 
-(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0005.xml#6:39-7:1 :| [])
+(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0005.xml@144-146 :| [])
 
-(NodePI PI "after document element") @(test/Golden/XML/0005.xml#7:1-7:30 :| [])
+(NodePI PI "after document element") @(test/Golden/XML/0005.xml@146-175 :| [])
 
-(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0005.xml#7:30-8:1 :| [])
+(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0005.xml@175-177 :| [])
 
-(NodeComment " comment after document element") @(test/Golden/XML/0005.xml#8:1-8:39 :| [])
+(NodeComment " comment after document element") @(test/Golden/XML/0005.xml@177-215 :| [])
 
-(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0005.xml#8:39-9:1 :| [])
+(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0005.xml@215-217 :| [])
 
-(NodePI PI "after document element") @(test/Golden/XML/0005.xml#9:1-9:30 :| [])
+(NodePI PI "after document element") @(test/Golden/XML/0005.xml@217-246 :| [])
 
-(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0005.xml#9:30-10:1 :| [])
+(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0005.xml@246-248 :| [])
 
index b472d024af9eeea2a233343b7e9cc384387c63dc..a99a3f9c5f3fd52e845879df277dfcdb718613c2 100644 (file)
@@ -1,4 +1,4 @@
-(NodeText (EscapedText (fromList [EscapedPlain "\t\n "]))) @(test/Golden/XML/0006.xml#1:1-2:2 :| [])
+(NodeText (EscapedText (fromList [EscapedPlain "\t\n "]))) @(test/Golden/XML/0006.xml@0-4 :| [])
 
-(NodeElem doc) @(test/Golden/XML/0006.xml#2:2-2:8 :| [])
+(NodeElem doc) @(test/Golden/XML/0006.xml@4-10 :| [])
 
index 5317645fa13a9af7e48d622f4f8fa303a3d5ccf5..af2189848e4414eded4aeef60bbbfc7551590f98 100644 (file)
@@ -1,20 +1,20 @@
-(NodeElem doc) @(test/Golden/XML/0007.xml#1:1-6:7 :| [])
+(NodeElem doc) @(test/Golden/XML/0007.xml@0-72 :| [])
 |
-+- (NodeText (EscapedText (fromList [EscapedPlain "\r\n"]))) @(test/Golden/XML/0007.xml#1:6-2:1 :| [])
++- (NodeText (EscapedText (fromList [EscapedPlain "\r\n"]))) @(test/Golden/XML/0007.xml@5-7 :| [])
 |
-+- (NodeElem A) @(test/Golden/XML/0007.xml#2:1-4:8 :| [])
++- (NodeElem A) @(test/Golden/XML/0007.xml@7-40 :| [])
 |  |
-|  `- (NodeAttr a) @(test/Golden/XML/0007.xml#2:4-4:6 :| [])
+|  `- (NodeAttr a) @(test/Golden/XML/0007.xml@10-38 :| [])
 |     |
-|     `- (NodeText (EscapedText (fromList [EscapedPlain "asdf",EscapedEntityRef (EntityRef {entityRef_name = gt, entityRef_value = ">"}),EscapedEntityRef (EntityRef {entityRef_name = apos, entityRef_value = "'"}),EscapedCharRef (CharRef '"'),EscapedEntityRef (EntityRef {entityRef_name = gt, entityRef_value = ">"}),EscapedPlain "\r\nasdf\r\n\t?",EscapedEntityRef (EntityRef {entityRef_name = gt, entityRef_value = ">"}),EscapedPlain "%"]))) @(test/Golden/XML/0007.xml#2:7-4:5 :| [])
+|     `- (NodeText (EscapedText (fromList [EscapedPlain "asdf",EscapedEntityRef (EntityRef {entityRef_name = gt, entityRef_value = ">"}),EscapedEntityRef (EntityRef {entityRef_name = apos, entityRef_value = "'"}),EscapedCharRef (CharRef '"'),EscapedEntityRef (EntityRef {entityRef_name = gt, entityRef_value = ">"}),EscapedPlain "\r\nasdf\r\n\t?",EscapedEntityRef (EntityRef {entityRef_name = gt, entityRef_value = ">"}),EscapedPlain "%"]))) @(test/Golden/XML/0007.xml@13-37 :| [])
 |
-+- (NodeText (EscapedText (fromList [EscapedPlain "\r\n"]))) @(test/Golden/XML/0007.xml#4:8-5:1 :| [])
++- (NodeText (EscapedText (fromList [EscapedPlain "\r\n"]))) @(test/Golden/XML/0007.xml@40-42 :| [])
 |
-+- (NodeElem A) @(test/Golden/XML/0007.xml#5:1-5:23 :| [])
++- (NodeElem A) @(test/Golden/XML/0007.xml@42-64 :| [])
 |  |
-|  `- (NodeAttr a) @(test/Golden/XML/0007.xml#5:4-5:21 :| [])
+|  `- (NodeAttr a) @(test/Golden/XML/0007.xml@45-62 :| [])
 |     |
-|     `- (NodeText (EscapedText (fromList [EscapedEntityRef (EntityRef {entityRef_name = quot, entityRef_value = "\""}),EscapedEntityRef (EntityRef {entityRef_name = quot, entityRef_value = "\""}),EscapedEntityRef (EntityRef {entityRef_name = gt, entityRef_value = ">"}),EscapedCharRef (CharRef '\''),EscapedCharRef (CharRef '"')]))) @(test/Golden/XML/0007.xml#5:7-5:20 :| [])
+|     `- (NodeText (EscapedText (fromList [EscapedEntityRef (EntityRef {entityRef_name = quot, entityRef_value = "\""}),EscapedEntityRef (EntityRef {entityRef_name = quot, entityRef_value = "\""}),EscapedEntityRef (EntityRef {entityRef_name = gt, entityRef_value = ">"}),EscapedCharRef (CharRef '\''),EscapedCharRef (CharRef '"')]))) @(test/Golden/XML/0007.xml@48-61 :| [])
 |
-`- (NodeText (EscapedText (fromList [EscapedPlain "\r\n"]))) @(test/Golden/XML/0007.xml#5:23-6:1 :| [])
+`- (NodeText (EscapedText (fromList [EscapedPlain "\r\n"]))) @(test/Golden/XML/0007.xml@64-66 :| [])
 
index 682a38e7984f705cf0d198d0e0321d8b48a62e5c..bdae20ebbdceb477723b0d7ef6b08de8baff5c32 100644 (file)
@@ -1,6 +1,6 @@
-(NodeElem doc) @(test/Golden/XML/0008.xml#1:1-1:46 :| [])
+(NodeElem doc) @(test/Golden/XML/0008.xml@0-45 :| [])
 |
-`- (NodeText (EscapedText (fromList [EscapedPlain "a%b%",EscapedEntityRef (EntityRef {entityRef_name = lt, entityRef_value = "<"}),EscapedPlain "/doc",EscapedEntityRef (EntityRef {entityRef_name = gt, entityRef_value = ">"}),EscapedCharRef (CharRef '<'),EscapedPlain "/doc",EscapedEntityRef (EntityRef {entityRef_name = gt, entityRef_value = ">"}),EscapedPlain "]]",EscapedEntityRef (EntityRef {entityRef_name = lt, entityRef_value = "<"}),EscapedEntityRef (EntityRef {entityRef_name = amp, entityRef_value = "&"})]))) @(test/Golden/XML/0008.xml#1:6-1:40 :| [])
+`- (NodeText (EscapedText (fromList [EscapedPlain "a%b%",EscapedEntityRef (EntityRef {entityRef_name = lt, entityRef_value = "<"}),EscapedPlain "/doc",EscapedEntityRef (EntityRef {entityRef_name = gt, entityRef_value = ">"}),EscapedCharRef (CharRef '<'),EscapedPlain "/doc",EscapedEntityRef (EntityRef {entityRef_name = gt, entityRef_value = ">"}),EscapedPlain "]]",EscapedEntityRef (EntityRef {entityRef_name = lt, entityRef_value = "<"}),EscapedEntityRef (EntityRef {entityRef_name = amp, entityRef_value = "&"})]))) @(test/Golden/XML/0008.xml@5-39 :| [])
 
-(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0008.xml#1:46-2:1 :| [])
+(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0008.xml@45-47 :| [])
 
index fefbe193c4b4869734402be96a1587b658bce61c..fcb15a59de704683a5965b59bb4a77dddc7a1714 100644 (file)
@@ -1,6 +1,6 @@
-(NodePI pitarget "'") @(test/Golden/XML/0009.xml#1:1-1:15 :| [])
+(NodePI pitarget "'") @(test/Golden/XML/0009.xml@0-14 :| [])
 
-(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0009.xml#1:15-2:1 :| [])
+(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0009.xml@14-16 :| [])
 
-(NodeElem doc) @(test/Golden/XML/0009.xml#2:1-2:7 :| [])
+(NodeElem doc) @(test/Golden/XML/0009.xml@16-22 :| [])
 
index 425dde52a0e3a5c6584583f503e26019a5b76d5f..4817789b7d5c419cc37e910e3d81f653493b2b02 100644 (file)
@@ -1,6 +1,6 @@
-(NodePI pitarget "\"") @(test/Golden/XML/0010.xml#1:1-1:15 :| [])
+(NodePI pitarget "\"") @(test/Golden/XML/0010.xml@0-14 :| [])
 
-(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0010.xml#1:15-2:1 :| [])
+(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0010.xml@14-16 :| [])
 
-(NodeElem doc) @(test/Golden/XML/0010.xml#2:1-2:7 :| [])
+(NodeElem doc) @(test/Golden/XML/0010.xml@16-22 :| [])
 
index 619754481bfe0e57b9cb2688a895bbb3f7dba451..7a6da1b248a2fd41a87f2bcc8187c1fb2a4627a2 100644 (file)
@@ -1,4 +1,4 @@
-(NodeElem doc) @(test/Golden/XML/0011.xml#1:1-1:7 :| [])
+(NodeElem doc) @(test/Golden/XML/0011.xml@0-6 :| [])
 
-(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0011.xml#1:7-2:1 :| [])
+(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0011.xml@6-8 :| [])
 
index cb6d0788fef9f34f08677e9b6fe0ec8603d1764c..d8f291026c55d441efc00c5a262f7345b2eb87f1 100644 (file)
@@ -1,12 +1,12 @@
-(NodePI xml "") @(test/Golden/XML/0012.xml#1:1-1:22 :| [])
+(NodePI xml "") @(test/Golden/XML/0012.xml@0-21 :| [])
 |
-`- (NodeAttr version) @(test/Golden/XML/0012.xml#1:6-1:20 :| [])
+`- (NodeAttr version) @(test/Golden/XML/0012.xml@5-19 :| [])
    |
-   `- (NodeText (EscapedText (fromList [EscapedPlain "1.0"]))) @(test/Golden/XML/0012.xml#1:16-1:19 :| [])
+   `- (NodeText (EscapedText (fromList [EscapedPlain "1.0"]))) @(test/Golden/XML/0012.xml@15-18 :| [])
 
-(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0012.xml#1:22-2:1 :| [])
+(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0012.xml@21-23 :| [])
 
-(NodeElem doc) @(test/Golden/XML/0012.xml#2:1-2:7 :| [])
+(NodeElem doc) @(test/Golden/XML/0012.xml@23-29 :| [])
 
-(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0012.xml#2:7-3:1 :| [])
+(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0012.xml@29-31 :| [])
 
index 7ff98d0aee01b60686c9f11900c5d45dcfd0b12a..1ceaa05148eeae70b979ea8b6e0c376919374efb 100644 (file)
@@ -1,20 +1,20 @@
-(NodePI xml "") @(test/Golden/XML/0013.xml#1:1-1:22 :| [])
+(NodePI xml "") @(test/Golden/XML/0013.xml@0-21 :| [])
 |
-`- (NodeAttr version) @(test/Golden/XML/0013.xml#1:6-1:20 :| [])
+`- (NodeAttr version) @(test/Golden/XML/0013.xml@5-19 :| [])
    |
-   `- (NodeText (EscapedText (fromList [EscapedPlain "1.0"]))) @(test/Golden/XML/0013.xml#1:16-1:19 :| [])
+   `- (NodeText (EscapedText (fromList [EscapedPlain "1.0"]))) @(test/Golden/XML/0013.xml@15-18 :| [])
 
-(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0013.xml#1:22-2:1 :| [])
+(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0013.xml@21-23 :| [])
 
-(NodeComment "comment") @(test/Golden/XML/0013.xml#2:1-2:15 :| [])
+(NodeComment "comment") @(test/Golden/XML/0013.xml@23-37 :| [])
 
-(NodeText (EscapedText (fromList [EscapedPlain " "]))) @(test/Golden/XML/0013.xml#2:15-2:16 :| [])
+(NodeText (EscapedText (fromList [EscapedPlain " "]))) @(test/Golden/XML/0013.xml@37-38 :| [])
 
-(NodePI pi "") @(test/Golden/XML/0013.xml#2:16-2:22 :| [])
+(NodePI pi "") @(test/Golden/XML/0013.xml@38-44 :| [])
 
-(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0013.xml#2:22-3:1 :| [])
+(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0013.xml@44-46 :| [])
 
-(NodeElem doc) @(test/Golden/XML/0013.xml#3:1-3:7 :| [])
+(NodeElem doc) @(test/Golden/XML/0013.xml@46-52 :| [])
 
-(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0013.xml#3:7-4:1 :| [])
+(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0013.xml@52-54 :| [])
 
index f5b1f0b68734e79da17a2675774f7cf73dfb7488..0e6768b6ad297b0968bc5107b41a5db6d3b65a90 100644 (file)
@@ -1,12 +1,12 @@
-(NodePI xml "") @(test/Golden/XML/0014.xml#1:1-1:22 :| [])
+(NodePI xml "") @(test/Golden/XML/0014.xml@0-21 :| [])
 |
-`- (NodeAttr version) @(test/Golden/XML/0014.xml#1:6-1:20 :| [])
+`- (NodeAttr version) @(test/Golden/XML/0014.xml@5-19 :| [])
    |
-   `- (NodeText (EscapedText (fromList [EscapedPlain "1.0"]))) @(test/Golden/XML/0014.xml#1:16-1:19 :| [])
+   `- (NodeText (EscapedText (fromList [EscapedPlain "1.0"]))) @(test/Golden/XML/0014.xml@15-18 :| [])
 
-(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0014.xml#1:22-2:1 :| [])
+(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0014.xml@21-23 :| [])
 
-(NodeElem doc) @(test/Golden/XML/0014.xml#2:1-2:7 :| [])
+(NodeElem doc) @(test/Golden/XML/0014.xml@23-29 :| [])
 
-(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0014.xml#2:7-3:1 :| [])
+(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0014.xml@29-31 :| [])
 
index 2e53e2f9deb283c6f33d1eb4c9c044efa4d1ed59..6ee7fc2f5e6ce082cb5f261e93d97b1b2b92e517 100644 (file)
@@ -1,16 +1,16 @@
-(NodePI xml "") @(test/Golden/XML/0015.xml#1:1-1:39 :| [])
+(NodePI xml "") @(test/Golden/XML/0015.xml@0-38 :| [])
 |
-+- (NodeAttr version) @(test/Golden/XML/0015.xml#1:6-1:20 :| [])
++- (NodeAttr version) @(test/Golden/XML/0015.xml@5-19 :| [])
 |  |
-|  `- (NodeText (EscapedText (fromList [EscapedPlain "1.0"]))) @(test/Golden/XML/0015.xml#1:16-1:19 :| [])
+|  `- (NodeText (EscapedText (fromList [EscapedPlain "1.0"]))) @(test/Golden/XML/0015.xml@15-18 :| [])
 |
-`- (NodeAttr encoding) @(test/Golden/XML/0015.xml#1:20-1:37 :| [])
+`- (NodeAttr encoding) @(test/Golden/XML/0015.xml@19-36 :| [])
    |
-   `- (NodeText (EscapedText (fromList [EscapedPlain "UTF-8"]))) @(test/Golden/XML/0015.xml#1:31-1:36 :| [])
+   `- (NodeText (EscapedText (fromList [EscapedPlain "UTF-8"]))) @(test/Golden/XML/0015.xml@30-35 :| [])
 
-(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0015.xml#1:39-2:1 :| [])
+(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0015.xml@38-40 :| [])
 
-(NodeElem doc) @(test/Golden/XML/0015.xml#2:1-2:7 :| [])
+(NodeElem doc) @(test/Golden/XML/0015.xml@40-46 :| [])
 
-(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0015.xml#2:7-3:1 :| [])
+(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0015.xml@46-48 :| [])
 
index 866031da1687ab21c1282f8dd5ed86f4443dae97..56b1cf72b49fc643d105c022cde0b0f0b639ab79 100644 (file)
@@ -1,16 +1,16 @@
-(NodePI xml "") @(test/Golden/XML/0016.xml#1:1-1:39 :| [])
+(NodePI xml "") @(test/Golden/XML/0016.xml@0-38 :| [])
 |
-+- (NodeAttr version) @(test/Golden/XML/0016.xml#1:6-1:20 :| [])
++- (NodeAttr version) @(test/Golden/XML/0016.xml@5-19 :| [])
 |  |
-|  `- (NodeText (EscapedText (fromList [EscapedPlain "1.0"]))) @(test/Golden/XML/0016.xml#1:16-1:19 :| [])
+|  `- (NodeText (EscapedText (fromList [EscapedPlain "1.0"]))) @(test/Golden/XML/0016.xml@15-18 :| [])
 |
-`- (NodeAttr standalone) @(test/Golden/XML/0016.xml#1:20-1:31 :| [])
+`- (NodeAttr standalone) @(test/Golden/XML/0016.xml@19-30 :| [])
    |
-   `- (NodeText (EscapedText (fromList [EscapedPlain "yes"]))) @(test/Golden/XML/0016.xml#1:33-1:36 :| [])
+   `- (NodeText (EscapedText (fromList [EscapedPlain "yes"]))) @(test/Golden/XML/0016.xml@32-35 :| [])
 
-(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0016.xml#1:39-2:1 :| [])
+(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0016.xml@38-40 :| [])
 
-(NodeElem doc) @(test/Golden/XML/0016.xml#2:1-2:7 :| [])
+(NodeElem doc) @(test/Golden/XML/0016.xml@40-46 :| [])
 
-(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0016.xml#2:7-3:1 :| [])
+(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0016.xml@46-48 :| [])
 
index fcf915922f8e3d10088d64a06d90b01677fec09c..5834c55f6eb3500afc93bb9f2944f259e216ed59 100644 (file)
@@ -1,20 +1,20 @@
-(NodePI xml "") @(test/Golden/XML/0017.xml#1:1-1:56 :| [])
+(NodePI xml "") @(test/Golden/XML/0017.xml@0-55 :| [])
 |
-+- (NodeAttr version) @(test/Golden/XML/0017.xml#1:6-1:20 :| [])
++- (NodeAttr version) @(test/Golden/XML/0017.xml@5-19 :| [])
 |  |
-|  `- (NodeText (EscapedText (fromList [EscapedPlain "1.0"]))) @(test/Golden/XML/0017.xml#1:16-1:19 :| [])
+|  `- (NodeText (EscapedText (fromList [EscapedPlain "1.0"]))) @(test/Golden/XML/0017.xml@15-18 :| [])
 |
-+- (NodeAttr encoding) @(test/Golden/XML/0017.xml#1:20-1:37 :| [])
++- (NodeAttr encoding) @(test/Golden/XML/0017.xml@19-36 :| [])
 |  |
-|  `- (NodeText (EscapedText (fromList [EscapedPlain "UTF-8"]))) @(test/Golden/XML/0017.xml#1:31-1:36 :| [])
+|  `- (NodeText (EscapedText (fromList [EscapedPlain "UTF-8"]))) @(test/Golden/XML/0017.xml@30-35 :| [])
 |
-`- (NodeAttr standalone) @(test/Golden/XML/0017.xml#1:37-1:48 :| [])
+`- (NodeAttr standalone) @(test/Golden/XML/0017.xml@36-47 :| [])
    |
-   `- (NodeText (EscapedText (fromList [EscapedPlain "yes"]))) @(test/Golden/XML/0017.xml#1:50-1:53 :| [])
+   `- (NodeText (EscapedText (fromList [EscapedPlain "yes"]))) @(test/Golden/XML/0017.xml@49-52 :| [])
 
-(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0017.xml#1:56-2:1 :| [])
+(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0017.xml@55-57 :| [])
 
-(NodeElem doc) @(test/Golden/XML/0017.xml#2:1-2:7 :| [])
+(NodeElem doc) @(test/Golden/XML/0017.xml@57-63 :| [])
 
-(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0017.xml#2:7-3:1 :| [])
+(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0017.xml@63-65 :| [])
 
index cf546614e3f317d819c290bcf541a5e04416ddec..526fd51b01a86d0a7d59be122ac406053adf2bca 100644 (file)
@@ -1,12 +1,12 @@
-(NodePI xml "") @(test/Golden/XML/0018.xml#1:1-1:22 :| [])
+(NodePI xml "") @(test/Golden/XML/0018.xml@0-21 :| [])
 |
-`- (NodeAttr version) @(test/Golden/XML/0018.xml#1:6-1:20 :| [])
+`- (NodeAttr version) @(test/Golden/XML/0018.xml@5-19 :| [])
    |
-   `- (NodeText (EscapedText (fromList [EscapedPlain "1.0"]))) @(test/Golden/XML/0018.xml#1:16-1:19 :| [])
+   `- (NodeText (EscapedText (fromList [EscapedPlain "1.0"]))) @(test/Golden/XML/0018.xml@15-18 :| [])
 
-(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0018.xml#1:22-2:1 :| [])
+(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0018.xml@21-23 :| [])
 
-(NodeElem doc) @(test/Golden/XML/0018.xml#2:1-2:7 :| [])
+(NodeElem doc) @(test/Golden/XML/0018.xml@23-29 :| [])
 
-(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0018.xml#2:7-3:1 :| [])
+(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0018.xml@29-31 :| [])
 
index 0919af509474dbd439989d1357eac74c22a8ab19..ce1f73940433996adf5895400d77d3ba247c4797 100644 (file)
@@ -1,12 +1,12 @@
-(NodePI xml "") @(test/Golden/XML/0019.xml#1:1-1:22 :| [])
+(NodePI xml "") @(test/Golden/XML/0019.xml@0-21 :| [])
 |
-`- (NodeAttr version) @(test/Golden/XML/0019.xml#1:6-1:20 :| [])
+`- (NodeAttr version) @(test/Golden/XML/0019.xml@5-19 :| [])
    |
-   `- (NodeText (EscapedText (fromList [EscapedPlain "1.0"]))) @(test/Golden/XML/0019.xml#1:16-1:19 :| [])
+   `- (NodeText (EscapedText (fromList [EscapedPlain "1.0"]))) @(test/Golden/XML/0019.xml@15-18 :| [])
 
-(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0019.xml#1:22-2:1 :| [])
+(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0019.xml@21-23 :| [])
 
-(NodeElem doc) @(test/Golden/XML/0019.xml#2:1-2:7 :| [])
+(NodeElem doc) @(test/Golden/XML/0019.xml@23-29 :| [])
 
-(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0019.xml#2:7-3:1 :| [])
+(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0019.xml@29-31 :| [])
 
index f1cc5edb144f014baf36d2149b5b549a62a56f96..7f60babaa9af0207c77acac1b0f6f908352ab031 100644 (file)
@@ -1,12 +1,12 @@
-(NodePI xml "") @(test/Golden/XML/0020.xml#1:1-7:3 :| [])
+(NodePI xml "") @(test/Golden/XML/0020.xml@0-32 :| [])
 |
-`- (NodeAttr version) @(test/Golden/XML/0020.xml#1:6-6:6 :| [])
+`- (NodeAttr version) @(test/Golden/XML/0020.xml@5-28 :| [])
    |
-   `- (NodeText (EscapedText (fromList [EscapedPlain "1.0"]))) @(test/Golden/XML/0020.xml#6:2-6:5 :| [])
+   `- (NodeText (EscapedText (fromList [EscapedPlain "1.0"]))) @(test/Golden/XML/0020.xml@24-27 :| [])
 
-(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0020.xml#7:3-8:1 :| [])
+(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0020.xml@32-34 :| [])
 
-(NodeElem doc) @(test/Golden/XML/0020.xml#8:1-8:7 :| [])
+(NodeElem doc) @(test/Golden/XML/0020.xml@34-40 :| [])
 
-(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0020.xml#8:7-9:1 :| [])
+(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0020.xml@40-42 :| [])
 
index 646bf82556dc4ac1f6dfa99c45b9ab6737646da0..cb4e152ffdeb1dfbce47666832e1ead29765de7a 100644 (file)
@@ -1,12 +1,12 @@
-(NodePI xml "") @(test/Golden/XML/0021.xml#1:1-1:24 :| [])
+(NodePI xml "") @(test/Golden/XML/0021.xml@0-23 :| [])
 |
-`- (NodeAttr version) @(test/Golden/XML/0021.xml#1:6-1:22 :| [])
+`- (NodeAttr version) @(test/Golden/XML/0021.xml@5-21 :| [])
    |
-   `- (NodeText (EscapedText (fromList [EscapedPlain "1.0"]))) @(test/Golden/XML/0021.xml#1:18-1:21 :| [])
+   `- (NodeText (EscapedText (fromList [EscapedPlain "1.0"]))) @(test/Golden/XML/0021.xml@17-20 :| [])
 
-(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0021.xml#1:24-2:1 :| [])
+(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0021.xml@23-25 :| [])
 
-(NodeElem doc) @(test/Golden/XML/0021.xml#2:1-2:7 :| [])
+(NodeElem doc) @(test/Golden/XML/0021.xml@25-31 :| [])
 
-(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0021.xml#2:7-3:1 :| [])
+(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0021.xml@31-33 :| [])
 
index a83c102ad33b283a5a05f390e94463af0be09e4e..77383e059c542e5df136d1fd095618642b323b9e 100644 (file)
@@ -1,12 +1,12 @@
-(NodePI xml "") @(test/Golden/XML/0022.xml#1:1-1:22 :| [])
+(NodePI xml "") @(test/Golden/XML/0022.xml@0-21 :| [])
 |
-`- (NodeAttr version) @(test/Golden/XML/0022.xml#1:6-1:20 :| [])
+`- (NodeAttr version) @(test/Golden/XML/0022.xml@5-19 :| [])
    |
-   `- (NodeText (EscapedText (fromList [EscapedPlain "1.0"]))) @(test/Golden/XML/0022.xml#1:16-1:19 :| [])
+   `- (NodeText (EscapedText (fromList [EscapedPlain "1.0"]))) @(test/Golden/XML/0022.xml@15-18 :| [])
 
-(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0022.xml#1:22-2:1 :| [])
+(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0022.xml@21-23 :| [])
 
-(NodeElem doc) @(test/Golden/XML/0022.xml#2:1-2:7 :| [])
+(NodeElem doc) @(test/Golden/XML/0022.xml@23-29 :| [])
 
-(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0022.xml#2:7-3:1 :| [])
+(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0022.xml@29-31 :| [])
 
index a1a5994bf18b4f02063245e7c962fdd343498a92..a1dcb323121c24749d66cce5d0b35b90e39184af 100644 (file)
@@ -1,12 +1,12 @@
-(NodePI xml "") @(test/Golden/XML/0023.xml#1:1-7:8 :| [])
+(NodePI xml "") @(test/Golden/XML/0023.xml@0-37 :| [])
 |
-`- (NodeAttr version) @(test/Golden/XML/0023.xml#1:6-7:6 :| [])
+`- (NodeAttr version) @(test/Golden/XML/0023.xml@5-35 :| [])
    |
-   `- (NodeText (EscapedText (fromList [EscapedPlain "1.0"]))) @(test/Golden/XML/0023.xml#7:2-7:5 :| [])
+   `- (NodeText (EscapedText (fromList [EscapedPlain "1.0"]))) @(test/Golden/XML/0023.xml@31-34 :| [])
 
-(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0023.xml#7:8-8:1 :| [])
+(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0023.xml@37-39 :| [])
 
-(NodeElem doc) @(test/Golden/XML/0023.xml#8:1-8:7 :| [])
+(NodeElem doc) @(test/Golden/XML/0023.xml@39-45 :| [])
 
-(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0023.xml#8:7-9:1 :| [])
+(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0023.xml@45-47 :| [])
 
index 027a485c531dee5f7231d9a9e6c4b2b8679b091d..ce13f288e1a4cf485d8d227ef77f06c29e293129 100644 (file)
@@ -1,16 +1,16 @@
-(NodePI xml "") @(test/Golden/XML/0024.xml#1:1-1:22 :| [])
+(NodePI xml "") @(test/Golden/XML/0024.xml@0-21 :| [])
 |
-`- (NodeAttr version) @(test/Golden/XML/0024.xml#1:6-1:20 :| [])
+`- (NodeAttr version) @(test/Golden/XML/0024.xml@5-19 :| [])
    |
-   `- (NodeText (EscapedText (fromList [EscapedPlain "1.0"]))) @(test/Golden/XML/0024.xml#1:16-1:19 :| [])
+   `- (NodeText (EscapedText (fromList [EscapedPlain "1.0"]))) @(test/Golden/XML/0024.xml@15-18 :| [])
 
-(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0024.xml#1:22-2:1 :| [])
+(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0024.xml@21-23 :| [])
 
-(NodeComment "because we are testing conformace to XML 1.0, there can be no\r\n    exhaustive tests of the VersionNum production.  The only\r\n    VersionNum a 1.0-compliant processor is required to pass\r\n    is \"1.0\" ") @(test/Golden/XML/0024.xml#2:1-5:17 :| [])
+(NodeComment "because we are testing conformace to XML 1.0, there can be no\r\n    exhaustive tests of the VersionNum production.  The only\r\n    VersionNum a 1.0-compliant processor is required to pass\r\n    is \"1.0\" ") @(test/Golden/XML/0024.xml@23-230 :| [])
 
-(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0024.xml#5:17-6:1 :| [])
+(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0024.xml@230-232 :| [])
 
-(NodeElem doc) @(test/Golden/XML/0024.xml#6:1-6:7 :| [])
+(NodeElem doc) @(test/Golden/XML/0024.xml@232-238 :| [])
 
-(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0024.xml#6:7-7:1 :| [])
+(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0024.xml@238-240 :| [])
 
index e4a93aa8ed850e7c1fb1c553483879c04fe50d04..8fd5f766a608c2d4a4b85c0f92c3816725bc8cd0 100644 (file)
@@ -1,16 +1,16 @@
-(NodePI xml "") @(test/Golden/XML/0025.xml#1:1-1:22 :| [])
+(NodePI xml "") @(test/Golden/XML/0025.xml@0-21 :| [])
 |
-`- (NodeAttr version) @(test/Golden/XML/0025.xml#1:6-1:20 :| [])
+`- (NodeAttr version) @(test/Golden/XML/0025.xml@5-19 :| [])
    |
-   `- (NodeText (EscapedText (fromList [EscapedPlain "1.0"]))) @(test/Golden/XML/0025.xml#1:16-1:19 :| [])
+   `- (NodeText (EscapedText (fromList [EscapedPlain "1.0"]))) @(test/Golden/XML/0025.xml@15-18 :| [])
 
-(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0025.xml#1:22-2:1 :| [])
+(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0025.xml@21-23 :| [])
 
-(NodeComment "Non-terminal Misc only appears as Misc*, so we cannot test the fact\r\n    that Misc must match exactly one comment, PI, or S") @(test/Golden/XML/0025.xml#2:1-3:58 :| [])
+(NodeComment "Non-terminal Misc only appears as Misc*, so we cannot test the fact\r\n    that Misc must match exactly one comment, PI, or S") @(test/Golden/XML/0025.xml@23-153 :| [])
 
-(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0025.xml#3:58-4:1 :| [])
+(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0025.xml@153-155 :| [])
 
-(NodeElem doc) @(test/Golden/XML/0025.xml#4:1-4:7 :| [])
+(NodeElem doc) @(test/Golden/XML/0025.xml@155-161 :| [])
 
-(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0025.xml#4:7-5:1 :| [])
+(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0025.xml@161-163 :| [])
 
index 38ada6ee991cc6304ef541a783344d5169d6b25f..21a383b6551ebd07d9d2f7cd8cc5b4654c52f66b 100644 (file)
@@ -1,16 +1,16 @@
-(NodePI xml "") @(test/Golden/XML/0026.xml#1:1-1:22 :| [])
+(NodePI xml "") @(test/Golden/XML/0026.xml@0-21 :| [])
 |
-`- (NodeAttr version) @(test/Golden/XML/0026.xml#1:6-1:20 :| [])
+`- (NodeAttr version) @(test/Golden/XML/0026.xml@5-19 :| [])
    |
-   `- (NodeText (EscapedText (fromList [EscapedPlain "1.0"]))) @(test/Golden/XML/0026.xml#1:16-1:19 :| [])
+   `- (NodeText (EscapedText (fromList [EscapedPlain "1.0"]))) @(test/Golden/XML/0026.xml@15-18 :| [])
 
-(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0026.xml#1:22-2:1 :| [])
+(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0026.xml@21-23 :| [])
 
-(NodePI pi "") @(test/Golden/XML/0026.xml#2:1-2:7 :| [])
+(NodePI pi "") @(test/Golden/XML/0026.xml@23-29 :| [])
 
-(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0026.xml#2:7-3:1 :| [])
+(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0026.xml@29-31 :| [])
 
-(NodeElem doc) @(test/Golden/XML/0026.xml#3:1-3:7 :| [])
+(NodeElem doc) @(test/Golden/XML/0026.xml@31-37 :| [])
 
-(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0026.xml#3:7-4:1 :| [])
+(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0026.xml@37-39 :| [])
 
index 817e0f34ff91172307ea4c7ec2807c32b7f070ee..36546304a10dbb07e4a1c943ea272f5409091152 100644 (file)
@@ -1,12 +1,12 @@
-(NodePI xml "") @(test/Golden/XML/0027.xml#1:1-1:22 :| [])
+(NodePI xml "") @(test/Golden/XML/0027.xml@0-21 :| [])
 |
-`- (NodeAttr version) @(test/Golden/XML/0027.xml#1:6-1:20 :| [])
+`- (NodeAttr version) @(test/Golden/XML/0027.xml@5-19 :| [])
    |
-   `- (NodeText (EscapedText (fromList [EscapedPlain "1.0"]))) @(test/Golden/XML/0027.xml#1:16-1:19 :| [])
+   `- (NodeText (EscapedText (fromList [EscapedPlain "1.0"]))) @(test/Golden/XML/0027.xml@15-18 :| [])
 
-(NodeText (EscapedText (fromList [EscapedPlain "\n\n \t\n\n"]))) @(test/Golden/XML/0027.xml#1:22-5:1 :| [])
+(NodeText (EscapedText (fromList [EscapedPlain "\n\n \t\n\n"]))) @(test/Golden/XML/0027.xml@21-31 :| [])
 
-(NodeElem doc) @(test/Golden/XML/0027.xml#5:1-5:7 :| [])
+(NodeElem doc) @(test/Golden/XML/0027.xml@31-37 :| [])
 
-(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0027.xml#5:7-6:1 :| [])
+(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0027.xml@37-39 :| [])
 
index b1e5eb87c25c615937f68a1a7e4eba71ffc5163e..19a4d7ea1a89024ed5560bc991452e050aef448d 100644 (file)
@@ -1,28 +1,28 @@
-(NodePI xml "") @(test/Golden/XML/0028.xml#1:1-1:22 :| [])
+(NodePI xml "") @(test/Golden/XML/0028.xml@0-21 :| [])
 |
-`- (NodeAttr version) @(test/Golden/XML/0028.xml#1:6-1:20 :| [])
+`- (NodeAttr version) @(test/Golden/XML/0028.xml@5-19 :| [])
    |
-   `- (NodeText (EscapedText (fromList [EscapedPlain "1.0"]))) @(test/Golden/XML/0028.xml#1:16-1:19 :| [])
+   `- (NodeText (EscapedText (fromList [EscapedPlain "1.0"]))) @(test/Golden/XML/0028.xml@15-18 :| [])
 
-(NodePI pi "") @(test/Golden/XML/0028.xml#1:22-1:28 :| [])
+(NodePI pi "") @(test/Golden/XML/0028.xml@21-27 :| [])
 
-(NodeText (EscapedText (fromList [EscapedPlain "\n\n \t\n\n"]))) @(test/Golden/XML/0028.xml#1:28-5:1 :| [])
+(NodeText (EscapedText (fromList [EscapedPlain "\n\n \t\n\n"]))) @(test/Golden/XML/0028.xml@27-37 :| [])
 
-(NodeComment "comment") @(test/Golden/XML/0028.xml#5:1-5:15 :| [])
+(NodeComment "comment") @(test/Golden/XML/0028.xml@37-51 :| [])
 
-(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0028.xml#5:15-6:1 :| [])
+(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0028.xml@51-53 :| [])
 
-(NodePI pi "") @(test/Golden/XML/0028.xml#6:1-6:7 :| [])
+(NodePI pi "") @(test/Golden/XML/0028.xml@53-59 :| [])
 
-(NodeText (EscapedText (fromList [EscapedPlain "\n\n \t\n\n"]))) @(test/Golden/XML/0028.xml#6:7-10:1 :| [])
+(NodeText (EscapedText (fromList [EscapedPlain "\n\n \t\n\n"]))) @(test/Golden/XML/0028.xml@59-69 :| [])
 
-(NodeComment "comment") @(test/Golden/XML/0028.xml#10:1-10:15 :| [])
+(NodeComment "comment") @(test/Golden/XML/0028.xml@69-83 :| [])
 
-(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0028.xml#10:15-11:1 :| [])
+(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0028.xml@83-85 :| [])
 
-(NodePI pi "") @(test/Golden/XML/0028.xml#11:1-11:7 :| [])
+(NodePI pi "") @(test/Golden/XML/0028.xml@85-91 :| [])
 
-(NodeElem doc) @(test/Golden/XML/0028.xml#11:7-11:13 :| [])
+(NodeElem doc) @(test/Golden/XML/0028.xml@91-97 :| [])
 
-(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0028.xml#11:13-12:1 :| [])
+(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0028.xml@97-99 :| [])
 
index 5407cdc42c23cba8401be94d4e6b3cc74909ce25..b304310fda30153c21fe703115f22a15c33626db 100644 (file)
@@ -1,16 +1,16 @@
-(NodePI xml "") @(test/Golden/XML/0029.xml#1:1-1:39 :| [])
+(NodePI xml "") @(test/Golden/XML/0029.xml@0-38 :| [])
 |
-+- (NodeAttr version) @(test/Golden/XML/0029.xml#1:6-1:20 :| [])
++- (NodeAttr version) @(test/Golden/XML/0029.xml@5-19 :| [])
 |  |
-|  `- (NodeText (EscapedText (fromList [EscapedPlain "1.0"]))) @(test/Golden/XML/0029.xml#1:16-1:19 :| [])
+|  `- (NodeText (EscapedText (fromList [EscapedPlain "1.0"]))) @(test/Golden/XML/0029.xml@15-18 :| [])
 |
-`- (NodeAttr standalone) @(test/Golden/XML/0029.xml#1:20-1:31 :| [])
+`- (NodeAttr standalone) @(test/Golden/XML/0029.xml@19-30 :| [])
    |
-   `- (NodeText (EscapedText (fromList [EscapedPlain "yes"]))) @(test/Golden/XML/0029.xml#1:33-1:36 :| [])
+   `- (NodeText (EscapedText (fromList [EscapedPlain "yes"]))) @(test/Golden/XML/0029.xml@32-35 :| [])
 
-(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0029.xml#1:39-2:1 :| [])
+(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0029.xml@38-40 :| [])
 
-(NodeElem doc) @(test/Golden/XML/0029.xml#2:1-2:7 :| [])
+(NodeElem doc) @(test/Golden/XML/0029.xml@40-46 :| [])
 
-(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0029.xml#2:7-3:1 :| [])
+(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0029.xml@46-48 :| [])
 
index 17da087da0ee2c51cf20458259e159f4c42b3f5d..1849afdc293e799c9438197c5a8a97c94d34ce37 100644 (file)
@@ -1,16 +1,16 @@
-(NodePI xml "") @(test/Golden/XML/0030.xml#1:1-1:38 :| [])
+(NodePI xml "") @(test/Golden/XML/0030.xml@0-37 :| [])
 |
-+- (NodeAttr version) @(test/Golden/XML/0030.xml#1:6-1:20 :| [])
++- (NodeAttr version) @(test/Golden/XML/0030.xml@5-19 :| [])
 |  |
-|  `- (NodeText (EscapedText (fromList [EscapedPlain "1.0"]))) @(test/Golden/XML/0030.xml#1:16-1:19 :| [])
+|  `- (NodeText (EscapedText (fromList [EscapedPlain "1.0"]))) @(test/Golden/XML/0030.xml@15-18 :| [])
 |
-`- (NodeAttr standalone) @(test/Golden/XML/0030.xml#1:20-1:31 :| [])
+`- (NodeAttr standalone) @(test/Golden/XML/0030.xml@19-30 :| [])
    |
-   `- (NodeText (EscapedText (fromList [EscapedPlain "no"]))) @(test/Golden/XML/0030.xml#1:33-1:35 :| [])
+   `- (NodeText (EscapedText (fromList [EscapedPlain "no"]))) @(test/Golden/XML/0030.xml@32-34 :| [])
 
-(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0030.xml#1:38-2:1 :| [])
+(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0030.xml@37-39 :| [])
 
-(NodeElem doc) @(test/Golden/XML/0030.xml#2:1-2:7 :| [])
+(NodeElem doc) @(test/Golden/XML/0030.xml@39-45 :| [])
 
-(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0030.xml#2:7-3:1 :| [])
+(NodeText (EscapedText (fromList [EscapedPlain "\n"]))) @(test/Golden/XML/0030.xml@45-47 :| [])
 
index a4dedd5809d5b6821b4c6c5da334dda89d109b8d..15b46dabc4f1d7dea6fc14df24e8d210ac2dacfc 100644 (file)
@@ -1,2 +1,2 @@
-(NodeElem doc) @(test/Golden/XML/0031.xml#1:1-1:7 :| [])
+(NodeElem doc) @(test/Golden/XML/0031.xml@0-6 :| [])
 
index a00098392fdab9444f1f42785f3e0835ef3b749e..30e6cc1166ce9d9b9c3915da54b7b1e04cc38803 100644 (file)
@@ -1,4 +1,4 @@
-(NodeElem doc) @(test/Golden/XML/0032.xml#1:1-1:19 :| [])
+(NodeElem doc) @(test/Golden/XML/0032.xml@0-18 :| [])
 |
-`- (NodeText (EscapedText (fromList [EscapedPlain "content"]))) @(test/Golden/XML/0032.xml#1:6-1:13 :| [])
+`- (NodeText (EscapedText (fromList [EscapedPlain "content"]))) @(test/Golden/XML/0032.xml@5-12 :| [])
 
index f360ec736869c91b993cb9ca33d3822364eacc01..739a4f9cb4bc989cddab00987ef9cbe500fba4b9 100644 (file)
@@ -1,2 +1,2 @@
-(NodeElem doc) @(test/Golden/XML/0033.xml#1:1-1:12 :| [])
+(NodeElem doc) @(test/Golden/XML/0033.xml@0-11 :| [])
 
index 504658a16ce18f70e4b42f80566f4097ba182af9..9130de15c9f4a87d6cc4a9bd5f74782220fc914f 100644 (file)
@@ -1,2 +1,2 @@
-(NodeElem doc) @(test/Golden/XML/0034.xml#1:1-3:8 :| [])
+(NodeElem doc) @(test/Golden/XML/0034.xml@0-16 :| [])
 
index cfd78357aa711bf1987c8d26cf4b95a3d5060665..64c22731533a6514ed2a13861aa8318544124641 100644 (file)
@@ -1,6 +1,6 @@
-(NodeElem doc) @(test/Golden/XML/0035.xml#1:1-1:22 :| [])
+(NodeElem doc) @(test/Golden/XML/0035.xml@0-21 :| [])
 |
-`- (NodeAttr att) @(test/Golden/XML/0035.xml#1:6-1:15 :| [])
+`- (NodeAttr att) @(test/Golden/XML/0035.xml@5-14 :| [])
    |
-   `- (NodeText (EscapedText (fromList [EscapedPlain "val"]))) @(test/Golden/XML/0035.xml#1:11-1:14 :| [])
+   `- (NodeText (EscapedText (fromList [EscapedPlain "val"]))) @(test/Golden/XML/0035.xml@10-13 :| [])
 
index b5f8a15ea1c0bbd4aebd28de59914368bf34379e..f2bdbed5258b9dccdd5e3f132bbca252f6c32e3d 100644 (file)
@@ -1,14 +1,14 @@
-(NodeElem doc) @(test/Golden/XML/0036.xml#1:1-3:8 :| [])
+(NodeElem doc) @(test/Golden/XML/0036.xml@0-48 :| [])
 |
-+- (NodeAttr att) @(test/Golden/XML/0036.xml#1:6-1:15 :| [])
++- (NodeAttr att) @(test/Golden/XML/0036.xml@5-14 :| [])
 |  |
-|  `- (NodeText (EscapedText (fromList [EscapedPlain "val"]))) @(test/Golden/XML/0036.xml#1:11-1:14 :| [])
+|  `- (NodeText (EscapedText (fromList [EscapedPlain "val"]))) @(test/Golden/XML/0036.xml@10-13 :| [])
 |
-+- (NodeAttr att2) @(test/Golden/XML/0036.xml#1:16-1:27 :| [])
++- (NodeAttr att2) @(test/Golden/XML/0036.xml@15-26 :| [])
 |  |
-|  `- (NodeText (EscapedText (fromList [EscapedPlain "val2"]))) @(test/Golden/XML/0036.xml#1:22-1:26 :| [])
+|  `- (NodeText (EscapedText (fromList [EscapedPlain "val2"]))) @(test/Golden/XML/0036.xml@21-25 :| [])
 |
-`- (NodeAttr att3) @(test/Golden/XML/0036.xml#2:1-2:12 :| [])
+`- (NodeAttr att3) @(test/Golden/XML/0036.xml@28-39 :| [])
    |
-   `- (NodeText (EscapedText (fromList [EscapedPlain "val3"]))) @(test/Golden/XML/0036.xml#2:7-2:11 :| [])
+   `- (NodeText (EscapedText (fromList [EscapedPlain "val3"]))) @(test/Golden/XML/0036.xml@34-38 :| [])
 
index e77a0a00ca6122d390821e3273603470329cdae9..006d6f3794531300d04103f542e7a562693fd47c 100644 (file)
@@ -1,6 +1,6 @@
-(NodeElem doc) @(test/Golden/XML/0037.xml#1:1-1:22 :| [])
+(NodeElem doc) @(test/Golden/XML/0037.xml@0-21 :| [])
 |
-`- (NodeAttr att) @(test/Golden/XML/0037.xml#1:6-1:15 :| [])
+`- (NodeAttr att) @(test/Golden/XML/0037.xml@5-14 :| [])
    |
-   `- (NodeText (EscapedText (fromList [EscapedPlain "val"]))) @(test/Golden/XML/0037.xml#1:11-1:14 :| [])
+   `- (NodeText (EscapedText (fromList [EscapedPlain "val"]))) @(test/Golden/XML/0037.xml@10-13 :| [])
 
index c8ad4b5d4e4dd4f87eb11613378e05227bbdb937..93cb626231286379ea6ffb409b3512f230b57763 100644 (file)
@@ -1,6 +1,6 @@
-(NodeElem doc) @(test/Golden/XML/0038.xml#1:1-3:15 :| [])
+(NodeElem doc) @(test/Golden/XML/0038.xml@0-28 :| [])
 |
-`- (NodeAttr att) @(test/Golden/XML/0038.xml#1:6-3:8 :| [])
+`- (NodeAttr att) @(test/Golden/XML/0038.xml@5-21 :| [])
    |
-   `- (NodeText (EscapedText (fromList [EscapedPlain "val"]))) @(test/Golden/XML/0038.xml#3:4-3:7 :| [])
+   `- (NodeText (EscapedText (fromList [EscapedPlain "val"]))) @(test/Golden/XML/0038.xml@17-20 :| [])
 
index 159767ddc0065f5d8b684b04449e996e6323bdce..e4c75688f10d3535aab4424605564f62ba3a0ee3 100644 (file)
@@ -1,2 +1,2 @@
-(NodeElem doc) @(test/Golden/XML/0039.xml#1:1-1:12 :| [])
+(NodeElem doc) @(test/Golden/XML/0039.xml@0-11 :| [])
 
index e2cbd30c55a34155d4944bb228fc7849b543a35e..882b70c28b45527cd779d40a8687c23abea81812 100644 (file)
@@ -1,2 +1,2 @@
-(NodeElem doc) @(test/Golden/XML/0040.xml#1:1-2:2 :| [])
+(NodeElem doc) @(test/Golden/XML/0040.xml@0-15 :| [])
 
index 95f365859ae706b2e9ac4cc0ae27aa11228633c4..d6d464031e3fa56af755135e7650f75990e9b677 100644 (file)
@@ -1,2 +1,2 @@
-(NodeElem doc) @(test/Golden/XML/0041.xml#1:1-1:7 :| [])
+(NodeElem doc) @(test/Golden/XML/0041.xml@0-6 :| [])
 
index 8d74cb2737622685c62793e5842cc1deab0d12c0..c9df3d34189f0fdbc10998ea2c9043a52bb830ed 100644 (file)
@@ -1,6 +1,6 @@
-(NodeElem doc) @(test/Golden/XML/0042.xml#1:1-1:17 :| [])
+(NodeElem doc) @(test/Golden/XML/0042.xml@0-16 :| [])
 |
-`- (NodeAttr att) @(test/Golden/XML/0042.xml#1:6-1:15 :| [])
+`- (NodeAttr att) @(test/Golden/XML/0042.xml@5-14 :| [])
    |
-   `- (NodeText (EscapedText (fromList [EscapedPlain "val"]))) @(test/Golden/XML/0042.xml#1:11-1:14 :| [])
+   `- (NodeText (EscapedText (fromList [EscapedPlain "val"]))) @(test/Golden/XML/0042.xml@10-13 :| [])
 
index 1db319d6bd3e8f9562db46d7b95d96b256a564f9..e0f1cfb8120480e431addc71af84582cb19cee8d 100644 (file)
@@ -1,6 +1,6 @@
-(NodeElem doc) @(test/Golden/XML/0043.xml#1:1-4:3 :| [])
+(NodeElem doc) @(test/Golden/XML/0043.xml@0-22 :| [])
 |
-`- (NodeAttr att) @(test/Golden/XML/0043.xml#1:6-1:15 :| [])
+`- (NodeAttr att) @(test/Golden/XML/0043.xml@5-14 :| [])
    |
-   `- (NodeText (EscapedText (fromList [EscapedPlain "val"]))) @(test/Golden/XML/0043.xml#1:11-1:14 :| [])
+   `- (NodeText (EscapedText (fromList [EscapedPlain "val"]))) @(test/Golden/XML/0043.xml@10-13 :| [])
 
index 6c792bd47d996ee5cc2c22a37fff7db9b974bdeb..e12c76d95aed917f7878b738ad3a268a1b9fe593 100644 (file)
@@ -1,2 +1,2 @@
-(NodeElem doc) @(test/Golden/XML/0044.xml#1:1-3:3 :| [])
+(NodeElem doc) @(test/Golden/XML/0044.xml@0-12 :| [])
 
index 4698416c0c35544e25953b2e520c6352119badde..b0311a2497bd7d63ad44c7bbedac60eaee33bc16 100644 (file)
@@ -1,14 +1,14 @@
-(NodeElem doc) @(test/Golden/XML/0045.xml#1:1-2:26 :| [])
+(NodeElem doc) @(test/Golden/XML/0045.xml@0-41 :| [])
 |
-+- (NodeAttr att) @(test/Golden/XML/0045.xml#1:6-1:15 :| [])
++- (NodeAttr att) @(test/Golden/XML/0045.xml@5-14 :| [])
 |  |
-|  `- (NodeText (EscapedText (fromList [EscapedPlain "val"]))) @(test/Golden/XML/0045.xml#1:11-1:14 :| [])
+|  `- (NodeText (EscapedText (fromList [EscapedPlain "val"]))) @(test/Golden/XML/0045.xml@10-13 :| [])
 |
-+- (NodeAttr att2) @(test/Golden/XML/0045.xml#2:1-2:12 :| [])
++- (NodeAttr att2) @(test/Golden/XML/0045.xml@16-27 :| [])
 |  |
-|  `- (NodeText (EscapedText (fromList [EscapedPlain "val2"]))) @(test/Golden/XML/0045.xml#2:7-2:11 :| [])
+|  `- (NodeText (EscapedText (fromList [EscapedPlain "val2"]))) @(test/Golden/XML/0045.xml@22-26 :| [])
 |
-`- (NodeAttr att3) @(test/Golden/XML/0045.xml#2:13-2:24 :| [])
+`- (NodeAttr att3) @(test/Golden/XML/0045.xml@28-39 :| [])
    |
-   `- (NodeText (EscapedText (fromList [EscapedPlain "val3"]))) @(test/Golden/XML/0045.xml#2:19-2:23 :| [])
+   `- (NodeText (EscapedText (fromList [EscapedPlain "val3"]))) @(test/Golden/XML/0045.xml@34-38 :| [])
 
index 36215576f32f642c9e518b6fbc81dbee2b84ba33..290bdb02cb7c4b85973938e4012eb038c23278ca 100644 (file)
@@ -1,4 +1,4 @@
-(NodeElem doc) @(test/Golden/XML/0046.xml#1:1-4:7 :| [])
+(NodeElem doc) @(test/Golden/XML/0046.xml@0-81 :| [])
 |
-`- (NodeText (EscapedText (fromList [EscapedPlain "\r\n",EscapedCharRef (CharRef 'A'),EscapedCharRef (CharRef '\t'),EscapedCharRef (CharRef 'A'),EscapedCharRef (CharRef 'O'),EscapedCharRef (CharRef 'O'),EscapedCharRef (CharRef '\t'),EscapedPlain "\r\n",EscapedCharRef (CharRef '\1110764'),EscapedCharRef (CharRef '\n'),EscapedPlain "\r\n"]))) @(test/Golden/XML/0046.xml#1:6-4:1 :| [])
+`- (NodeText (EscapedText (fromList [EscapedPlain "\r\n",EscapedCharRef (CharRef 'A'),EscapedCharRef (CharRef '\t'),EscapedCharRef (CharRef 'A'),EscapedCharRef (CharRef 'O'),EscapedCharRef (CharRef 'O'),EscapedCharRef (CharRef '\t'),EscapedPlain "\r\n",EscapedCharRef (CharRef '\1110764'),EscapedCharRef (CharRef '\n'),EscapedPlain "\r\n"]))) @(test/Golden/XML/0046.xml@5-75 :| [])
 
index 38c0f1b103bdf1a4550dfa123dc8dd6a3173b52c..41c88217ef3dc8c5481748c53ff714d80e1374a7 100644 (file)
@@ -1,3 +1,6 @@
 test/Golden/XML/Error/0000.xml:3:5:
+  |
+3 | </ro
+  |     ^
 unexpected end of input
-expecting '>' or the rest of QName
+expecting ':' or '>'
index fa7c143aeb6eaad265dd71f9613d16bdb66ab9e5..68506d7dd14ef84be9e6f0b1f7a3b0654e1eb056 100644 (file)
@@ -1,3 +1,6 @@
 test/Golden/XML/Error/0001.xml:3:7:
+  |
+3 | </root
+  |       ^
 unexpected end of input
-expecting '>' or the rest of QName
+expecting ':' or '>'
index 01352579b692c64898e62deae952c869c9ee7123..42ea84a3a8e283381089cd9c2ae55d4d9a8143e8 100644 (file)
@@ -1,3 +1,6 @@
 test/Golden/XML/Error/0002.xml:1:31:
+  |
+1 | <?xml version="1.0" encoding=" utf-8"?>
+  |                               ^
 unexpected space
 expecting EncName
index 628dba674b318000dc7c25bdad8cbddc6c6e15dc..8ceeb210aaa73b330a93b885ed29706736542bdc 100644 (file)
@@ -1,3 +1,6 @@
 test/Golden/XML/Error/0003.xml:1:32:
+  |
+1 | <?xml version="1.0" encoding="a/b"?>
+  |                                ^
 unexpected '/'
 expecting '"'
index cd666d14611f01012ac1f223c1d5672a223a0bba..c4aa2f9735ec4d0b37bd4fe65d27286c1f9cb727 100644 (file)
@@ -1,3 +1,6 @@
 test/Golden/XML/Error/0004.xml:1:35:
+  |
+1 | <?xml version="1.0" encoding="just&#41;word"?>
+  |                                   ^
 unexpected '&'
 expecting '"'
index 9a9a1ffae889ebac2dc8a8f1dbc8fafa622fcdf6..d6a8beb795c79058196ef097ef3eadd548ec556c 100644 (file)
@@ -1,3 +1,6 @@
 test/Golden/XML/Error/0005.xml:1:34:
+  |
+1 | <?xml version="1.0" encoding="utf:8"?>
+  |                                  ^
 unexpected ':'
 expecting '"'
index 084d21dcf75be07078b465a4fd8794a2299cf6ab..ab04c82c0c77e690859395f47d53974a5719917c 100644 (file)
@@ -1,3 +1,6 @@
 test/Golden/XML/Error/0006.xml:1:31:
+  |
+1 | <?xml version="1.0" encoding="@import(sys-encoding)"?>
+  |                               ^
 unexpected '@'
 expecting EncName
index b1b0b9985b8fce1b39da65b3333d8a29ff673022..55969d021cdeb7a2a0a680d9f3d54d05586331b1 100644 (file)
@@ -1,3 +1,6 @@
 test/Golden/XML/Error/0007.xml:1:34:
+  |
+1 | <?xml version="1.0" encoding="XYZ+999"?>
+  |                                  ^
 unexpected '+'
 expecting '"'
index 4c7746645e7fb33adb77393b59f2cd728885e7fd..8434f8496fa3a039cda6686e68385cf3c7ccec5c 100644 (file)
@@ -1,3 +1,6 @@
 test/Golden/XML/Error/0008.xml:3:1:
+  |
+3 | ?\r
+  | ^^
 unexpected "?<carriage return>"
 expecting "/>" or '>'
index 6eded2848495c1ac5548f7f62045dae7985fb3ed..01064301efac7456fbec2084deb9826846404b74 100644 (file)
@@ -1,3 +1,6 @@
 test/Golden/XML/Error/0009.xml:2:2:
+  |
+2 | <.doc></.doc>\r
+  |  ^
 unexpected '.'
 expecting '!', '?', or Element
index 7550ee803a5c3cf4091059296a1cdec9c4ea724e..9654b25b9ee4aed481096ddac9baa239acc9bfba 100644 (file)
@@ -1,3 +1,6 @@
 test/Golden/XML/Error/0010.xml:1:8:
+  |
+1 | <doc><? ?></doc>\r
+  |        ^
 unexpected space
 expecting PI
index f56ed04fa8efa57563cbf18ea2be54f070317141..ba3979ab0affa69e6a81ec257b87891c08142cd3 100644 (file)
@@ -1,3 +1,6 @@
 test/Golden/XML/Error/0011.xml:2:1:
+  |
+2 | <empty line>
+  | ^
 unexpected end of input
 expecting "?>" or '?'
index af63d7470e85e46aa5130c29055e7e7078812373..5d49e1240dabb246a696f879fdf1a1f4197ec630 100644 (file)
@@ -1,3 +1,6 @@
 test/Golden/XML/Error/0012.xml:2:1:
+  |
+2 | <empty line>
+  | ^
 unexpected end of input
 expecting "?>" or '?'
index 99f6ff98f49f721ecf4438ffced4cc8d65ab3b8e..af99aac1127a0fafd7004d2ae80f0ee141d01977 100644 (file)
@@ -1,3 +1,6 @@
 test/Golden/XML/Error/0013.xml:1:21:
+  |
+1 | <doc><!-- a comment -- another --></doc>\r
+  |                     ^^^
 unexpected "-- "
 expecting "-->"
index 2514424fa8d9d033fc13528cc625ea785b640862..e19ddb0b31ff68589f694dcc23dbf5d7c4f544ed 100644 (file)
@@ -1,3 +1,6 @@
 test/Golden/XML/Error/0014.xml:1:10:
+  |
+1 | <doc>&amp no refc</doc>\r
+  |          ^
 unexpected space
 expecting ';'
index c9407cb8bd6da5098d011069c7907241b9d87153..05095b3fa9a1f0238de3496c2ad5f1303be3c630 100644 (file)
@@ -1,3 +1,6 @@
 test/Golden/XML/Error/0015.xml:1:7:
+  |
+1 | <doc>&.entity;</doc>\r
+  |       ^
 unexpected '.'
 expecting NCName
index e78b3f0ae6695f78064a2ff4fcd10678bf1887bd..2a1dc975b704e3b6267304bc381b9d76f5f5b1af 100644 (file)
@@ -1,3 +1,6 @@
 test/Golden/XML/Error/0016.xml:1:8:
+  |
+1 | <doc>&#RE;</doc>\r
+  |        ^
 unexpected 'R'
 expecting digit
index 3ac6604e3721d8bcb81bb41e84096c5d5181f4de..f3583cae52abbffc21004b36b27289648d2f5c44 100644 (file)
@@ -1,3 +1,6 @@
 test/Golden/XML/Error/0017.xml:1:9:
+  |
+1 | <doc>A & B</doc>\r
+  |         ^
 unexpected space
 expecting NCName
index fecbff934b21b4c40df030cd2af8f3b4b45e7cab..a3b662f4ad1c0aef881ce2b0b051633c831f6a75 100644 (file)
@@ -1,3 +1,6 @@
 test/Golden/XML/Error/0018.xml:1:6:
+  |
+1 | <doc a1></doc>\r
+  |      ^^
 unexpected "a1"
 expecting "/>" or '>'
index fcf8c0f250d95b4a660d73f4dbf39e950070af22..434cbce9149af1d86a664e215cd0eef10bdc2c56 100644 (file)
@@ -1,3 +1,6 @@
 test/Golden/XML/Error/0019.xml:1:6:
+  |
+1 | <doc a1=v1></doc>\r
+  |      ^^
 unexpected "a1"
 expecting "/>" or '>'
index 52c3ec4dcd783442b95639fda309323956f9965f..1cb433f48b3a2735d5f1a418e743623e7e037a8c 100644 (file)
@@ -1,3 +1,6 @@
 test/Golden/XML/Error/0020.xml:1:6:
+  |
+1 | <doc a1="v1'></doc>\r
+  |      ^^
 unexpected "a1"
 expecting "/>" or '>'
index 3221be1e9eec5b94cc72253bcd9a27b49550787a..ef2aa97da5f9aff318096132a570044c72998bd8 100644 (file)
@@ -1,3 +1,6 @@
 test/Golden/XML/Error/0021.xml:1:6:
+  |
+1 | <doc a1="<foo>"></doc>\r
+  |      ^^
 unexpected "a1"
 expecting "/>" or '>'
index 852a9493e3cf43d9b05cd4746e220287beb015d4..8430ac2f2ff0a25ca62d7a32060c403983572464 100644 (file)
@@ -1,3 +1,6 @@
 test/Golden/XML/Error/0022.xml:1:6:
+  |
+1 | <doc a1=></doc>\r
+  |      ^^
 unexpected "a1"
 expecting "/>" or '>'
index f61f4c1de0f763fcdcc3cfe2cd800a06718d115e..ffa58ae69d389e0e53b187e3b8283ce17653473a 100644 (file)
@@ -1,3 +1,6 @@
 test/Golden/XML/Error/0023.xml:1:14:
+  |
+1 | <doc a1="v1" "v2"></doc>\r
+  |              ^^
 unexpected ""v"
 expecting "/>" or '>'
index b5626282b01c505306d75fa1a70ec557e7423088..b73b73f0410d0532fde9c373c5be93c31c0ca057 100644 (file)
@@ -1,3 +1,6 @@
 test/Golden/XML/Error/0024.xml:2:1:
+  |
+2 | <empty line>
+  | ^
 unexpected end of input
 expecting "]]>" or ']'
index c658ca2e61db3eb383ae82ac7880b432c24be927..029e6c7243b6c8af3c58bf86c52327cdb33fb697 100644 (file)
@@ -1,3 +1,6 @@
 test/Golden/XML/Error/0025.xml:1:8:
+  |
+1 | <doc><![CDATA [ stuff]]></doc>\r
+  |        ^^^^^^^
 unexpected "[CDATA "
 expecting "--" or "[CDATA["
index 9f8dd00bd66070f252b430100add5bf3096cb9be..fe68e11678251f975411e45e10ec2bb2ffcb3a99 100644 (file)
@@ -1,3 +1,6 @@
 test/Golden/XML/Error/0026.xml:1:8:
+  |
+1 | <doc></>\r
+  |        ^
 unexpected '>'
 expecting QName
index 69c7fbab71cf23309ade0c1971819ed2e6c08cfb..50150e0044d3ba3ba3656de3cf35f0c100a0f035 100644 (file)
@@ -1,3 +1,6 @@
 test/Golden/XML/Error/0027.xml:1:6:
+  |
+1 | <doc a1="A & B"></doc>\r
+  |      ^^
 unexpected "a1"
 expecting "/>" or '>'
index f170b2852d2c30aaf2b4c71dbe8c4f2378159744..9341783a44e98fd58e5ed84aa5ce53665437454f 100644 (file)
@@ -1,3 +1,6 @@
 test/Golden/XML/Error/0028.xml:1:6:
+  |
+1 | <doc a1="a&b"></doc>\r
+  |      ^^
 unexpected "a1"
 expecting "/>" or '>'
index 9c6fae3e79147dc6970d2398025244caf566920e..42fe15e73b7a7dc3d07b5057e8d2ad47eaa5314b 100644 (file)
@@ -1,3 +1,6 @@
 test/Golden/XML/Error/0029.xml:1:6:
+  |
+1 | <doc a1="&#123:"></doc>\r
+  |      ^^
 unexpected "a1"
 expecting "/>" or '>'
index daa837a3185a1a490f189f61308b17a0bf65acc6..50c5ab0f940339b512555e5668fca64785450002 100644 (file)
@@ -1,3 +1,6 @@
 test/Golden/XML/Error/0030.xml:1:6:
+  |
+1 | <doc 12="34"></doc>\r
+  |      ^^
 unexpected "12"
 expecting "/>" or '>'
index 5246783a2b2d5f39460bb707cda3e648e801a433..819447fac5810e340dd990d65635eb73a82c3d73 100644 (file)
@@ -1,3 +1,6 @@
 test/Golden/XML/Error/0031.xml:2:2:
+  |
+2 | <123></123>\r
+  |  ^
 unexpected '1'
 expecting '!', '?', or Element
index 762eaf39b3c758aefb68e0e8aae509da9bdc9428..8e0eb214b6facddc2714191a9a4503d9d098c674 100644 (file)
@@ -1,3 +1,6 @@
 test/Golden/XML/Error/0032.xml:1:6:
+  |
+1 | <doc>]]></doc>\r
+  |      ^^
 unexpected "]]"
 expecting "</"
index e8af401549299fc0c0709054cc308119c7eef056..61233a7d1f54cb21fdc73aaea42181746dc0d763 100644 (file)
@@ -1,3 +1,6 @@
 test/Golden/XML/Error/0033.xml:1:7:
+  |
+1 | <doc>]]]></doc>\r
+  |       ^^
 unexpected "]]"
 expecting "</"
index fced7610d3366641086879d713f4af7c152750b5..9f400cc937cdbeb6e717b90170a02f01a1b52e17 100644 (file)
@@ -1,3 +1,6 @@
 test/Golden/XML/Error/0034.xml:4:1:
+  |
+4 | <empty line>
+  | ^
 unexpected end of input
 expecting "-->" or '-'
index b1821abc18dadce653074b6fd3f173fad18aa9e7..73eaf94410e8c2ec5ba52de21b9056fa52cb1d43 100644 (file)
@@ -1,3 +1,6 @@
 test/Golden/XML/Error/0035.xml:5:1:
+  |
+5 | <empty line>
+  | ^
 unexpected end of input
 expecting "?>" or '?'
index f5288c59d019e669f2d2baafb2b5c35173e2a115..7371eff765844290b32d20ea6b8e584466d331db 100644 (file)
@@ -1,3 +1,6 @@
 test/Golden/XML/Error/0036.xml:1:10:
+  |
+1 | <doc>abc]]]>def</doc>\r
+  |          ^^
 unexpected "]]"
 expecting "</"
index 19e15bbe634d61a6b34a3a50f9aaf1101a5f9c3a..a7b8826b18c166f561b32e859b7b060ea4e39dca 100644 (file)
@@ -1,3 +1,6 @@
 test/Golden/XML/Error/0037.xml:1:19:
+  |
+1 | <doc>A form feed (\f) is not legal in data</doc>\r
+  |                   ^^
 unexpected "<form feed>)"
 expecting "</", '<', ']', CharRef, or EntityRef
index 116d9c24aee2e3cfe946eb13b9e89bab259473aa..005fa07bdfc8fd34473de7f14e476175355df433 100644 (file)
@@ -1,3 +1,6 @@
 test/Golden/XML/Error/0038.xml:1:24:
+  |
+1 | <doc><?pi a form feed (\f) is not allowed in a pi?></doc>\r
+  |                        ^^
 unexpected "<form feed>)"
 expecting "?>" or '?'
index c9c3e7e7e1206da69d575757928b76266a249965..a5aea7d24fbcf579a297fcdc69ac94794f5b5ae3 100644 (file)
@@ -1,3 +1,6 @@
 test/Golden/XML/Error/0039.xml:1:24:
+  |
+1 | <doc><!-- a form feed (\f) is not allowed in a comment --></doc>\r
+  |                        ^^^
 unexpected "<form feed>) "
 expecting "-->" or '-'
index 1dcf19b16b3ae01c7f64d338f081e43b9e5ecf48..5fb9e9ef56465935beb0173751b07f93aeec121b 100644 (file)
@@ -1,3 +1,6 @@
 test/Golden/XML/Error/0040.xml:1:9:
+  |
+1 | <doc>abc\edef</doc>\r
+  |         ^^
 unexpected "<escape>d"
 expecting "</", '<', ']', CharRef, or EntityRef
index 8b0cfb283aec7a118a662832cc567d70c2aaaf77..9adc85f692de340efd498fe6a80d0a6a0dee44ad 100644 (file)
@@ -1,3 +1,6 @@
 test/Golden/XML/Error/0041.xml:1:5:
+  |
+1 | <doc\f>A form-feed is not white space or a name character</doc\f>\r
+  |     ^^
 unexpected "<form feed>>"
-expecting "/>", '>', Spaces1, or the rest of PName
+expecting "/>", ':', '>', or Spaces1
index fa05ffa2dee323ed086f1b2fcaa6be4004e2a3ac..da1bd057d49de3f2ea0a641d732d4a0aad978e77 100644 (file)
@@ -1,3 +1,6 @@
 test/Golden/XML/Error/0042.xml:1:9:
+  |
+1 | <doc>1 < 2 but not in XML</doc>\r
+  |         ^
 unexpected space
 expecting '!', '?', or Element
index 7ea85a4ea29d93c8a26a2680b70bf0af7b0118df..d6190c31e435dda4d278ae28fb14791476882918 100644 (file)
@@ -1,3 +1,6 @@
 test/Golden/XML/Error/0043.xml:2:1:
+  |
+2 | Illegal data\r
+  | ^
 unexpected 'I'
-expecting "<!--", "<?", Spaces, end of input, or the rest of Spaces
+expecting "<!--", "<?", CRLF, Spaces, or end of input
index cf57a586546f67c402b792c710cac2dbe64a0d76..c226bc1c2e565ff2bf6da0265fcc5c0a1ec25ca0 100644 (file)
@@ -1,3 +1,6 @@
 test/Golden/XML/Error/0044.xml:2:1:
+  |
+2 | &#32;\r
+  | ^
 unexpected '&'
-expecting "<!--", "<?", Spaces, end of input, or the rest of Spaces
+expecting "<!--", "<?", CRLF, Spaces, or end of input
index 1e1a5fd5511685f6ba8fada97d7f60b9ab16b1aa..a64a01da97ab5db1d92925a564714d295b540be5 100644 (file)
@@ -1,2 +1,5 @@
 test/Golden/XML/Error/0045.xml:1:29:
+  |
+1 | <doc x="foo" y="bar" x="baz"></doc>\r
+  |                             ^
 Error_Attribute_collision x
index 799a00d3ad9c529191b4e911fde69d1fbfea45ee..08da42ef4740dc0f603b17dc45c163266e253734 100644 (file)
@@ -1,2 +1,5 @@
 test/Golden/XML/Error/0046.xml:1:14:
+  |
+1 | <doc><a></aa></doc>\r
+  |              ^
 Error_Closing_tag_unexpected aa a
index e8790c2650142b5537c7d52c571bec87a20167a4..5ad131f7ce66eab89d19ad5046f1432a9a317f3c 100644 (file)
@@ -1,3 +1,6 @@
 test/Golden/XML/Error/0047.xml:2:1:
+  |
+2 | <doc></doc>\r
+  | ^
 unexpected '<'
-expecting "<!--", "<?", Spaces, end of input, or the rest of Spaces
+expecting "<!--", "<?", CRLF, Spaces, or end of input
index df36691e7ccb9597b260eb793a52221d87f77acd..a253e0cdcf2a15ef83946e4edd837d4fab17b83b 100644 (file)
@@ -1,3 +1,6 @@
 test/Golden/XML/Error/0048.xml:2:1:
+  |
+2 | <doc></doc>\r
+  | ^
 unexpected '<'
-expecting "<!--", "<?", Spaces, end of input, or the rest of Spaces
+expecting "<!--", "<?", CRLF, Spaces, or end of input
index ee116b55c4686be41aec8365f14993b0dc5e7e82..7e2d8836117cb3b7f96a6a0a6a4e40867418bec1 100644 (file)
@@ -1,3 +1,6 @@
 test/Golden/XML/Error/0049.xml:1:7:
+  |
+1 | <doc/></doc/>\r
+  |       ^
 unexpected '<'
 expecting "<!--", "<?", Spaces, or end of input
index c2ecb9ef5551f027ad7cbd2d7ec06ed40f3d92c6..bbde64a7bf355c69e4aaef97b08754607f0e9547 100644 (file)
@@ -1,3 +1,6 @@
 test/Golden/XML/Error/0050.xml:2:1:
+  |
+2 | Illegal data\r
+  | ^
 unexpected 'I'
-expecting "<!--", "<?", Spaces, end of input, or the rest of Spaces
+expecting "<!--", "<?", CRLF, Spaces, or end of input
index 748c220ea4308daae726785e43533c9b2b266035..8f977c7824e52f89beaf2bd5b927da3c1c5c0358 100644 (file)
@@ -1,3 +1,6 @@
 test/Golden/XML/Error/0051.xml:1:7:
+  |
+1 | <doc/><doc/>\r
+  |       ^
 unexpected '<'
 expecting "<!--", "<?", Spaces, or end of input
index 783a55b6509e4df9b9ab753c80eeb9c84bd41890..b15c5f5d14b7249f70725998464addb3501e2c1c 100644 (file)
@@ -1,3 +1,6 @@
 test/Golden/XML/Error/0052.xml:2:3:
+  |
+2 | <a/\r
+  |   ^^
 unexpected "/<carriage return>"
-expecting "/>", '>', Spaces1, or the rest of PName
+expecting "/>", ':', '>', or Spaces1
index c3e7feb644a134c5c642a3f26366586cd115ecd3..28509b42fb65d06daf9dac6ee677619019046807 100644 (file)
@@ -1,3 +1,6 @@
 test/Golden/XML/Error/0053.xml:2:3:
+  |
+2 | <a/</a>\r
+  |   ^^
 unexpected "/<"
-expecting "/>", '>', Spaces1, or the rest of PName
+expecting "/>", ':', '>', or Spaces1
index 84c92fb4f5bb3adfca465f075124ca9f770a486a..c46083ad2baad0e9a94777504cf09e63c29a9c22 100644 (file)
@@ -1,3 +1,6 @@
 test/Golden/XML/Error/0054.xml:2:4:
+  |
+2 | <a / >\r
+  |    ^^
 unexpected "/ "
 expecting "/>" or '>'
index b1689a7c1f4c6b29467cf644aaa0ab232fb6a4f4..a9931d280975a4b0123fb584cb4246486cfb7376 100644 (file)
@@ -1,3 +1,6 @@
 test/Golden/XML/Error/0055.xml:3:1:
+  |
+3 | <![CDATA[]]>\r
+  | ^
 unexpected '<'
-expecting "<!--", "<?", Spaces, end of input, or the rest of Spaces
+expecting "<!--", "<?", CRLF, Spaces, or end of input
index ae8049596e864da1385f1b5bc3e95f87823eec5f..2fc810db5c3b462bb82f7719f1cc0d4ca73aadf3 100644 (file)
@@ -1,2 +1,5 @@
 test/Golden/XML/Error/0056.xml:3:17:
+  |
+3 | <![CDATA[]]></a>\r
+  |                 ^
 Error_Closing_tag_unexpected a doc
index 02984146c6055cf5107f77a474848a473a947541..d6d66a1c324358b09f04cf59858ab7d91afa7ee3 100644 (file)
@@ -1,3 +1,6 @@
 test/Golden/XML/Error/0057.xml:1:1:
+  |
+1 | <empty line>
+  | ^
 unexpected end of input
 expecting "<!--", "<?", '<', Spaces, or XMLDecl
index 4228e8ee8cc3a46a01f21fdd123d0d295fe040a8..4f8689257ecf503dd727f7ac911bb77e8750c261 100644 (file)
@@ -1,3 +1,6 @@
 test/Golden/XML/Error/0058.xml:2:2:
+  |
+2 | <![CDATA[]]>\r
+  |  ^
 unexpected '!'
 expecting Element
index da6697f7472f82f287889d25868460b05a15607b..445cfb7227feabc5a8ccf022fd99e59aeb07a911 100644 (file)
@@ -1,3 +1,6 @@
 test/Golden/XML/Error/0059.xml:2:1:
+  |
+2 | &#32;\r
+  | ^
 unexpected '&'
-expecting "<!--", "<?", '<', Spaces, or the rest of Spaces
+expecting "<!--", "<?", '<', CRLF, or Spaces
index 68592269765ce87b976a9bbfcb6dece80aca9558..8e7e8c70d90d005b818f06f83d58f0bec2589283 100644 (file)
@@ -1,2 +1,5 @@
 test/Golden/XML/Error/0060.xml:1:12:
+  |
+1 | <doc></DOC>\r
+  |            ^
 Error_Closing_tag_unexpected DOC doc
index d50b65bc9383a07abd64f46fbca05e91d0bde45a..ba6d5a569541bf039857796f9bceba56791cae0b 100644 (file)
@@ -1,3 +1,6 @@
 test/Golden/XML/Error/0061.xml:1:2:
+  |
+1 | <!-- a comment ending with three dashes --->\r
+  |  ^
 unexpected '!'
 expecting Element
index ab1ee1c153a0ec0ae5f8c6a153c4390a88d3ac50..9dd739dd641e66bbe1677869abb52f2b1ea7c913 100644 (file)
@@ -1,2 +1,5 @@
 test/Golden/XML/Error/0062.xml:1:11:
+  |
+1 | <doc>&foo;</doc>\r
+  |           ^
 Error_EntityRef_unknown foo
index e9793bdef807eac4a7f7dd52e7dcc5bb5fefff37..6f6c3199a1cf1cfc14cad070dd8701d5140e4987 100644 (file)
@@ -1,3 +1,6 @@
 test/Golden/XML/Error/0063.xml:1:6:
+  |
+1 | <doc a="&foo;"></doc>\r
+  |      ^^
 unexpected "a="
 expecting "/>" or '>'
index b6a5af70085a935dcd4540d7af5cf97a53044315..19b01a9f8b570343a8d022fec51aba757d2b98fe 100644 (file)
@@ -1,3 +1,6 @@
 test/Golden/XML/Error/0064.xml:1:8:
+  |
+1 | <doc>&#X58;</doc>\r
+  |        ^
 unexpected 'X'
 expecting digit
index 29a1275be11adabe63164bb292fa08898a9b7661..de714088fdbc04dbff057b8c5eb1c68805d4438f 100644 (file)
@@ -1,3 +1,6 @@
 test/Golden/XML/Error/0065.xml:1:7:
+  |
+1 | <?xml VERSION="1.0"?>\r
+  |       ^^^^^^^
 unexpected "VERSION"
 expecting VersionInfo
index c1553ee4b766772052bfd50005ae58224c54b7f5..3551ebfdd823b30792c41182e61699cdd41b4c8c 100644 (file)
@@ -1,3 +1,6 @@
 test/Golden/XML/Error/0066.xml:1:7:
+  |
+1 | <?xml encoding="UTF-8" version="1.0"?>\r
+  |       ^^^^^^^
 unexpected "encodin"
 expecting VersionInfo
index 19868b904684733356e696de402c02baf56ed91f..6edfd253fadeaf885597e9eb6a8417a3f026d915 100644 (file)
@@ -1,3 +1,6 @@
 test/Golden/XML/Error/0067.xml:1:20:
+  |
+1 | <?xml version="1.0"encoding="UTF-8" ?>\r
+  |                    ^^
 unexpected "en"
 expecting "?>", EncodingDecl, or SDDecl
index eeda9a52b0e522bd7daf63419eba9bd5c43fb4bc..cd5cbe1f120a52528abe88b241999390f28a1ebe 100644 (file)
@@ -1,3 +1,6 @@
 test/Golden/XML/Error/0068.xml:1:19:
+  |
+1 | <?xml version="1.0' encoding="UTF-8" ?>\r
+  |                   ^
 unexpected '''
 expecting '"'
index 0006c272dcc9805ce3e976fa4b867f414a2fab89..2f20e91ccd31a535e99b422463563862f3e3924b 100644 (file)
@@ -1,3 +1,6 @@
 test/Golden/XML/Error/0069.xml:1:21:
+  |
+1 | <?xml version="1.0" version="1.0"?>\r
+  |                     ^^
 unexpected "ve"
 expecting "?>"
index c435350d8582bc03747a84811a6fbcd5346bae50..6e1c4fbc8b9c6c76ec7ee9aa7fec579e5f36b3fd 100644 (file)
@@ -1,3 +1,6 @@
 test/Golden/XML/Error/0070.xml:1:21:
+  |
+1 | <?xml version="1.0" valid="no" ?>\r
+  |                     ^^
 unexpected "va"
 expecting "?>"
index 187f373494bd4c110fdd05118e50a27d1cc7e71a..f905b000c4fac9df409521d1ce54c52c85473031 100644 (file)
@@ -1,3 +1,6 @@
 test/Golden/XML/Error/0071.xml:1:33:
+  |
+1 | <?xml version="1.0" standalone="YES" ?>\r
+  |                                 ^^^
 unexpected "YES"
 expecting "no" or "yes"
index ad242140490872c6e2928bb1b9053553e521ec54..091c61fa24db0d38df283aef313f62d990df2b8e 100644 (file)
@@ -1,3 +1,6 @@
 test/Golden/XML/Error/0072.xml:1:31:
+  |
+1 | <?xml version="1.0" encoding=" UTF-8"?>\r
+  |                               ^
 unexpected space
 expecting EncName
index eedec4a3b3b5121faa3e1ee4acbb160f4c22df69..b4699ae0dda3505899ec62956f4bfafbd7bda33f 100644 (file)
@@ -1,3 +1,6 @@
 test/Golden/XML/Error/0073.xml:1:19:
+  |
+1 | <?xml version="1.0 " ?>\r
+  |                   ^
 unexpected space
 expecting '"'
index ee8341222b8d34330e2c9a04d260c7a4d787ecd9..506c719aef11b2ab2f07cc0737a648a884933ba4 100644 (file)
@@ -1,3 +1,6 @@
 test/Golden/XML/Error/0074.xml:2:2:
+  |
+2 | <![CDATA[]]>\r
+  |  ^
 unexpected '!'
 expecting Element
index bbf75a752966f692cb8df6f61b532fefb72aa166..35d016acba050ba49822e5a00b8b6bf845535517 100644 (file)
@@ -1,3 +1,6 @@
 test/Golden/XML/Error/0075.xml:2:1:
+  |
+2 | &#32;<doc></doc>\r
+  | ^
 unexpected '&'
-expecting "<!--", "<?", '<', Spaces, or the rest of Spaces
+expecting "<!--", "<?", '<', CRLF, or Spaces
index a1787f39b6cf302e31c7daaf8e8d54216384ac70..dc4759adf8ccafc5e614f2388f8c808e3028e65b 100644 (file)
@@ -1,3 +1,6 @@
 test/Golden/XML/Error/0076.xml:2:3:
+  |
+2 | <![CDATA [  ]]>\r
+  |   ^^^^^^^
 unexpected "[CDATA "
 expecting "--" or "[CDATA["
index cbd2e96d594df758672bb5cc47d5e1e4401b35bc..0b4eb4f266460f989ea0c574a3217b38e007a049 100644 (file)
@@ -1,3 +1,6 @@
 test/Golden/XML/Error/0077.xml:2:3:
+  |
+2 | <![cdata[data]]>\r
+  |   ^^^^^^^
 unexpected "[cdata["
 expecting "--" or "[CDATA["
index abfabd35c72fb0b4be067d5de0645fc0e06112ee..9752c890f154538cc30b2e074224cd7a310b16c0 100644 (file)
@@ -1,3 +1,6 @@
 test/Golden/XML/Error/0078.xml:2:2:
+  |
+2 | <?xml version="1.0"?>\r
+  |  ^
 unexpected '?'
 expecting Element
index d66aacdab0bbf1c77dd88e274dc7c67a86d8c901..d2ee580d021825a219b71a3bdeb6b1b68c015300 100644 (file)
@@ -1,3 +1,6 @@
 test/Golden/XML/Error/0079.xml:2:2:
+  |
+2 | <?xml version="1.0"?>\r
+  |  ^
 unexpected '?'
 expecting Element
index de28e5f969eb9f64932410df499ae2fb8adff6b6..68f19d1100a296b539f8fdba74bdbf55187e01ff 100644 (file)
@@ -1,2 +1,5 @@
 test/Golden/XML/Error/0080.xml:2:6:
+  |
+2 | <?xml version="1.0"?>\r
+  |      ^
 Error_PI_reserved xml
index eef7f3ad23feffded4f0dd6d5632e99dd1e6fc85..fc79c5cd634904972ca3be40988b7f1e0607a9b2 100644 (file)
@@ -1,3 +1,6 @@
 test/Golden/XML/Error/0081.xml:3:1:
+  |
+3 | <?xml version="1.0"?>\r
+  | ^
 unexpected '<'
-expecting end of input or the rest of Spaces
+expecting CRLF or end of input
index c2803b9146c9d9f26677187643616350e7e0894f..381d43a19260c034ee14795eaab351a611d4908f 100644 (file)
@@ -1,3 +1,6 @@
 test/Golden/XML/Error/0082.xml:1:7:
+  |
+1 | <?xml encoding="UTF-8"?>\r
+  |       ^^^^^^^
 unexpected "encodin"
 expecting VersionInfo
index d451a580c28063d2d2aa46e7f1f45a05b2d9fe91..3d7f745fdc2884ed0f42260cdb111b783b191732 100644 (file)
@@ -1,3 +1,6 @@
 test/Golden/XML/Error/0083.xml:1:2:
+  |
+1 | <?XML version="1.0"?>\r
+  |  ^
 unexpected '?'
 expecting Element
index 42d55050006534effcf7a653bf4c172fb2aa51fd..8a377b70c6ccc82a79f284fd48206db9f8929261 100644 (file)
@@ -1,3 +1,6 @@
 test/Golden/XML/Error/0084.xml:1:2:
+  |
+1 | <?xmL version="1.0"?>\r
+  |  ^
 unexpected '?'
 expecting Element
index 1084a773be9598941ad26744af7f4238a807cc4d..5ee9ab8e7a43d0f7939cacb88e475a2c545f1499 100644 (file)
@@ -1,2 +1,5 @@
 test/Golden/XML/Error/0085.xml:2:6:
+  |
+2 | <?xMl version="1.0"?>\r
+  |      ^
 Error_PI_reserved xMl
index 8a4de42c9e44b1d567f070bace724fe863e733ea..d17d4ac0d2af49255ba3c00a810c4d97c8588f11 100644 (file)
@@ -1,2 +1,5 @@
 test/Golden/XML/Error/0086.xml:2:6:
+  |
+2 | <?xmL?>\r
+  |      ^
 Error_PI_reserved xmL
index 30a723dea0c4e7f2d9133768b7d9406e09ba94fd..879ea69cba0a80aa151223c0506d9ef9bc5c3fe4 100644 (file)
@@ -1,3 +1,6 @@