git.iko.soy/typeable/pandoc
on master help sign in
Org reader: drop unused field from parser state

The `OrgParserState` contained both an `orgStateMeta` and `orgStateMeta'` field, the former for plain meta information and the latter for F-monad wrapped meta info. The plain meta info is only used to make `OrgParserState` an instance of the `HasMeta` class, which in turn is never used in the reader. The (F Meta) version is hence renamed to the "un-primed" version while the other one is dropped.

commit729fca311fed275a8000d2ce3789d985133c34fc authorAlbert Krewinkel <albert@zeitkraut.de> dateMon 30 May 2016, 17:30 (10 years ago) parent512bf2e
2 files changed+8−18
src/Text/Pandoc/Readers/Org/Blocks.hs+5−6 src/Text/Pandoc/Readers/Org/ParserState.hs+3−12
src/Text/Pandoc/Readers/Org/Blocks.hs+5−6
@@ -69,7 +69,7 @@ blockList = do
6969meta :: OrgParser Meta
7070meta = do
7171 st <- getState
72− return $ runF (orgStateMeta' st) st
72+ return $ runF (orgStateMeta st) st
7373
7474blocks :: OrgParser (F Blocks)
7575blocks = mconcat <$> manyTill block eof
@@ -462,12 +462,11 @@ commentLine = commentLineStart *> anyLine *> pure mempty
462462
463463declarationLine :: OrgParser ()
464464declarationLine = try $ do
465− key <- metaKey
466− inlinesF <- metaInlines
465+ key <- metaKey
466+ value <- metaInlines
467467 updateState $ \st ->
468− let meta' = B.setMeta <$> pure key <*> inlinesF <*> pure nullMeta
469− in st { orgStateMeta' = orgStateMeta' st <> meta' }
470− return ()
468+ let meta' = B.setMeta key <$> value <*> pure nullMeta
469+ in st { orgStateMeta = orgStateMeta st <> meta' }
471470
472471metaInlines :: OrgParser (F MetaValue)
473472metaInlines = fmap (MetaInlines . B.toList) <$> inlinesTillNewline
src/Text/Pandoc/Readers/Org/ParserState.hs+3−12
@@ -54,8 +54,7 @@ import Data.Default (Default(..))
5454import qualified Data.Map as M
5555import qualified Data.Set as Set
5656
57−import Text.Pandoc.Builder ( Inlines, Blocks, HasMeta(..),
58− trimInlines )
57+import Text.Pandoc.Builder ( Inlines, Blocks, trimInlines )
5958import Text.Pandoc.Definition ( Meta(..), nullMeta )
6059import Text.Pandoc.Options ( ReaderOptions(..) )
6160import Text.Pandoc.Parsing ( HasHeaderMap(..)
@@ -96,8 +95,7 @@ data OrgParserState = OrgParserState
9695 , orgStateLastPreCharPos :: Maybe SourcePos
9796 , orgStateLastStrPos :: Maybe SourcePos
9897 , orgStateLinkFormatters :: OrgLinkFormatters
99− , orgStateMeta :: Meta
100− , orgStateMeta' :: F Meta
98+ , orgStateMeta :: F Meta
10199 , orgStateNotes' :: OrgNoteTable
102100 , orgStateParserContext :: ParserContext
103101 , orgStateIdentifiers :: Set.Set String
@@ -112,12 +110,6 @@ instance Default OrgParserLocal where
112110instance HasReaderOptions OrgParserState where
113111 extractReaderOptions = orgStateOptions
114112
115−instance HasMeta OrgParserState where
116− setMeta field val st =
117− st{ orgStateMeta = setMeta field val $ orgStateMeta st }
118− deleteMeta field st =
119− st{ orgStateMeta = deleteMeta field $ orgStateMeta st }
120−
121113instance HasLastStrPosition OrgParserState where
122114 getLastStrPos = orgStateLastStrPos
123115 setLastStrPos pos st = st{ orgStateLastStrPos = Just pos }
@@ -151,8 +143,7 @@ defaultOrgParserState = OrgParserState
151143 , orgStateLastPreCharPos = Nothing
152144 , orgStateLastStrPos = Nothing
153145 , orgStateLinkFormatters = M.empty
154− , orgStateMeta = nullMeta
155− , orgStateMeta' = return nullMeta
146+ , orgStateMeta = return nullMeta
156147 , orgStateNotes' = []
157148 , orgStateParserContext = NullState
158149 , orgStateIdentifiers = Set.empty