Ï+      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~         ! " # $ % & ' ( ) * 2014 Parnell SpringmeyerAll Rights Reserved/Parnell Springmeyer <parnell@digitalmentat.com> experimentalNone5I-:A data type representing a stats value in a headline, e.g [2/3] in this headline: "* TODO [2/3] work on orgmode-parse 6A sum type representing the three default priorities: A, B, and C.1A type representing a map of planning timestamps..A sum type representing the planning keywords.3A type representing a headline state keyword, e.g: TODO, DONE, WAITING, etc.2A sum type representing the time units of a delay.'A data type representing a delay value. Type of delay  Delay value!Delay time unit"8A sum type representing the delay type of a delay value.%FA data type representing a repeater interval in a org-mode timestamp.'Type of repeater( Repeat value)Repeat time unit*ZA sum type representing the repeater type of a repeater interval in a org-mode timestamp..0A data type for parsed org-mode datetime stamps.`TODO: why do we have this data type and BracketedDateTime? They look almost exactly the same...5A sum type representing an absolute time part of a bracketed org-mode datetime stamp or a time range between two absolute timestamps.8?A data type for parsed org-mode bracketed datetime stamps, e.g: [2015-03-27 Fri 10:20 +4h]@9A generic data type for parsed org-mode time stamps, e.g: `<2015-03-27 Fri 10:20> [2015-03-27 Fri 10:20 +4h] <2015-03-27 Fri 10:20>--<2015-03-28 Sat 10:20>BA datetime stampCActive or inactive?DA end-of-range datetime stampH4Sum type indicating the active state of a timestamp.d.Section of text directly following a headline.fA headline's section timestampgA map of planning timestampshA list of clocksi.A map of properties from the :PROPERTY: drawerj*A list of clocks from the :LOGBOOK: drawerkContent of SectionlHeadline nesting depth.n%Headline within an org-mode document.pAOrg headline nesting depth (1 is at the top), e.g: * or ** or ***q&State of the headline, e.g: TODO, DONErHeadline priority, e.g: [#A]sPrimary text of the headlinet0A timestamp that may be embedded in the headlineu3Fraction of subtasks completed, e.g: [33%] or [1/2]vTags on the headlinewThe body underneath a headlinexA list of sub-headlinesyOrg-mode document.{'Text occurring before any Org headlines|Toplevel Org headlines  !"#$%&'()*+,-./0123456789:;<=>?+,@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~~  !"#$%&'()*+,-./4012356789=:;<>?@ABCDEFGHIJKLMNOPSRQTUVWXYZ[\]^_`abcdefghijklmnotwpqrsuvxyz{|}~HIJ89:;<=>?EFG./01234 !"#$lmyz{|NnopqrstuvwxKLM abc%&'()*+,-defghijk 567@ABCDOPQRSTUXYZ[\]^_`VW}P   !"#$%&'()*+,-./0123456789:;<=>?+,@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmn opqrstuvwxyz{|}~ 2017 Parnell SpringmeyerAll Rights Reserved/Parnell Springmeyer <parnell@digitalmentat.com>stableSafeT/Fail and reset position when a breaker is foundSave the content and parse as the default Plain Text or default Section Paragraph and try to parse the new block if the new block exists under the same node-4Match only if there are more content to be consumed. Opposite of Attoparsec.Text.endOfInput.FMatches only if the incoming text line consists nothing or only spaces'A empty line always ends a SectionBlock/Succeed if it is a headline Is the current line a  SectionBlock break. A Line is a break0CTransform a text content as block to work with current parser state 1 -./ 0           1 -./ 0   2017 Parnell SpringmeyerAll Rights Reserved/Parnell Springmeyer <parnell@digitalmentat.com>stableSafe!Skip whitespace characters, only!Data.Attoparsec.Text.skipSpace uses the isSpace predicate from  Data.Char which also includes control characters such as a return and newline which we need to *not* consume in some cases during parsing.&Parse a non-heading line of a section.      2014 Parnell SpringmeyerAll Rights Reserved/Parnell Springmeyer <parnell@digitalmentat.com>stableNone!"$, Parse a planning line.Plannings inhabit a heading section and are formatted as a keyword and a timestamp. There can be more than one, but they are all on the same line e.g: 6DEADLINE: <2015-05-10 17:00> CLOSED: <2015-04-1612:00>Parse a clock line.wA heading's section contains one line per clock entry. Clocks may have a timestamp, a duration, both, or neither e.g.: =CLOCK: [2014-12-10 Fri 2:30]--[2014-12-10 Fri 10:30] => 08:00Parse a timestamp.Timestamps may be timepoints or timeranges, and they indicate whether they are active or closed by using angle or square brackets respectively.LTime ranges are formatted by infixing two timepoints with a double hyphen, --; or, by appending two hh:mm< timestamps together in a single timepoint with one hyphen -.NEach timepoint includes an optional repeater flag and an optional delay flag.2Parse a single time part. [2015-03-27 Fri 10:20 +4h]Returns:The basic timestampnWhether there was a time interval in place of a single time (this will be handled upstream by parseTimestamp)&Whether the time is active or inactive3Given a BracketedDateTime6 data type, transform it into a triple composed of a DateTime , possibly a (Hours, Minutes)D tuple signifying the end of a timestamp range, and a boolean indic42Parse a day name in the same way as org-mode does.The character set (]+0123456789>rn -() is based on a part of a regexp named org-ts-regexp0 found in org.el.5NParse the time-of-day part of a time part, as a single point or a time range.6)Parse the YYYY-MM-DD part of a time part.7Parse a single HH:MM point.84Parse the Timeunit part of a delay or repeater flag.9Parse a repeater flag, e.g. .+4w, or ++1y.:Parse a delay flag, e.g. --1d or -2w. 23456789: 23456789: 2017 Parnell SpringmeyerAll Rights Reserved/Parnell Springmeyer <parnell@digitalmentat.com>stableNoneParse a user-defined drawer. O:MYTEXT: whatever I want, can go in here except for headlines and drawers :END:;(Parse a user-defined drawer's name, e.g: &:DRAWERNAME: my text in a drawer :END:IParse drawer delimiters, e.g the beginning and end of a property drawer: :PROPERTIES: :END: Parse the :END: of a drawer.;; 2017 Parnell SpringmeyerAll Rights Reserved/Parnell Springmeyer <parnell@digitalmentat.com>stableNoneParse a LOGBOOK drawer. N:LOGBOOK: CLOCK: [2015-10-05 Mon 17:13]--[2015-10-05 Mon 17:14] => 0:01 :END: 2014 Parnell SpringmeyerAll Rights Reserved/Parnell Springmeyer <parnell@digitalmentat.com>stableNoneParse a PROPERTY drawer. Z:PROPERTIES: :DATE: [2014-12-14 11:00] :NOTE: Something really crazy happened today! :END:Parse a property of a drawer.Properties *must* be a `:KEY: value` pair, the key can be of any case and contain any characters except for newlines and colons (since they delimit the start and end of the key). 2017 Parnell SpringmeyerAll Rights Reserved/Parnell Springmeyer <parnell@digitalmentat.com>stableNone 2014 Parnell SpringmeyerAll Rights Reserved/Parnell Springmeyer <parnell@digitalmentat.com>stableNone!" <.A set of token definitions for markup keywords=QFor better efficiency suggested by Attoparsec, we will hard code the token filter>A Naive parser for LaTeX?)Create Naive Parser for Code and VerbatimGThis cannot serve LaTeX because LaTeX code may include $ in LaTeX block@'Create a markup parser based on a token/The fallback default if all markup parser failsA#Take the line break as common space "spaces before "n" shall be omitted!spaces after "n" shall be omitted%"n" shall be considered as simple " "BCNormalize to a concise Markup Array after serially running parsers.  Concat the Neighbour Plain TextsRemove empty Plain Text"Remove the Plain spaces at the endParse the whole text content to an array of Markup Text. This parser will not handle the block stop. The block stop shall be already handled before passing text with this ParserCDEF<=>?GH@AB CDEF<=>?GH@AB  2014 Parnell SpringmeyerAll Rights Reserved/Parnell Springmeyer <parnell@digitalmentat.com>stableNone[If a chunk of text cannot be parsed as other blocks, parse the chunk of text as a paragraph  2014 Parnell SpringmeyerAll Rights Reserved/Parnell Springmeyer <parnell@digitalmentat.com>stableNoneTIXParser will success when the parser position is in a new item or break out from the listhThe Bool determines that whether it is in the first line and therefore ignore the preceding space checksJCreate a Parser to Parse Item KLMNOPIQRJSKLMNOPIQRJS  2014 Parnell SpringmeyerAll Rights Reserved/Parnell Springmeyer <parnell@digitalmentat.com>stableNonebParse the content until reaching a drawer, a list, or a block end. And include the parsed drawer.  2015 Parnell SpringmeyerAll Rights Reserved/Parnell Springmeyer <parnell@digitalmentat.com>stableNone Parse a heading sectionHeadline sections contain optionally a property drawer, a list of clock entries, code blocks (not yet implemented), plain lists (not yet implemented), and unstructured text.     2014 Parnell SpringmeyerAll Rights Reserved/Parnell Springmeyer <parnell@digitalmentat.com>stableNone$ !jIntermediate type for parsing titles in a headline after the state keyword and priority have been parsed."`Parse an org-mode headline, its metadata, its section-body, and any sub-headlines; please see  +http://orgmode.org/worg/dev/org-syntax.html org-syntax.Headline metadata includes a hierarchy level indicated by asterisks, optional todo state keywords, an optional priority level, %-done statistics, and tags; e.g: @** TODO [#B] Polish Poetry Essay [25%] :HOMEWORK:POLISH:WRITING:Headlines may contain:)A section with Planning and Clock entriesCA number of other not-yet-implemented entities (code blocks, lists)Unstructured text Sub-headlinesheadlineBelowDepthS takes a list of terms to consider, state keywords, and a minumum hierarchy depth.Use a Depth of 0 to parse any headline.#JParse the asterisk-indicated headline depth until a space is encountered.Constrain it to Depth.TParse the state indicator. {`TODO` | `DONE` | custom }KThese can be custom so we're parsing additional state identifiers as Text.$Parse the priority indicator.IIf anything but these priority indicators are used the parser will fail: [#A] [#B] [#C]U8Parse the title, optional stats block, and optional tag.aStats may be either [m/n] or [n%] and tags are colon-separated, e.g: > :HOMEWORK:POETRY:WRITING:%Produce a triple consisting of a stripped start-of-title if there are no leftovers after parsing (otherwise, recombine the two) and the optional stats and tags.&&Parse a statisticss block, e.g: [33%].pAccepts either form: "[m/n]" or "[n%]" and there is no restriction on m or n other than that they are integers.'%Parse a colon-separated list of tags. :HOMEWORK:POETRY:WRITING: !V"#T$U%#Start of title till the end of lineStats, e.g: [33%] Tags, e.g: :HOMEWORK:CODE:SLEEP:%Leftovers (may be empty) of the title&'!"#$%&'"#$&'%! !V"#T$U%&' 2014 Parnell SpringmeyerAll Rights Reserved/Parnell Springmeyer <parnell@digitalmentat.com>stableNone**** 2014 Parnell SpringmeyerAll Rights Reserved/Parnell Springmeyer <parnell@digitalmentat.com>stableNone !"#$%&'*W !"#$%&&'()*+,-../01234556789:;<==>?@ABCDEFFGHIJKLMMNOPQQRSTUVVWXYZ[\X]^__`abcdefghiijkklmnopqrrsstuvwxyz{|}}~       ! " # $ % & ' ( ) * + ,-./0123456789:;<=>?@ABCDEFFGHIJ K L M M N O P Q R S T U V $W*orgmode-parse-0.3.0-3hd68QufTXSKyQ174pbaO0Data.OrgMode.Types1Data.OrgMode.Parse.Attoparsec.Util.ParseLinesTill"Data.OrgMode.Parse.Attoparsec.Util"Data.OrgMode.Parse.Attoparsec.Time,Data.OrgMode.Parse.Attoparsec.Drawer.Generic,Data.OrgMode.Parse.Attoparsec.Drawer.Logbook-Data.OrgMode.Parse.Attoparsec.Drawer.Property*Data.OrgMode.Parse.Attoparsec.Block.Markup-Data.OrgMode.Parse.Attoparsec.Block.Paragraph(Data.OrgMode.Parse.Attoparsec.Block.List#Data.OrgMode.Parse.Attoparsec.Block%Data.OrgMode.Parse.Attoparsec.Section&Data.OrgMode.Parse.Attoparsec.Headline&Data.OrgMode.Parse.Attoparsec.Document$Data.OrgMode.Parse.Attoparsec.DrawerData.OrgMode.Parse$thyme-0.3.5.5-48jm8aseI0aKwKUmN6aWXFData.Thyme.Calendar.InternalymdDayymdMonthymdYear YearMonthDayDurationStatsStatsPctStatsOfTagPriorityABC PlanningsPlnsPlanningKeyword SCHEDULEDDEADLINECLOSED StateKeywordunStateKeywordTimeUnitUnitYearUnitWeek UnitMonthUnitDayUnitHourDelay delayType delayValue delayUnit DelayTypeDelayAll DelayFirstRepeater repeaterType repeaterValue repeaterUnit RepeaterTypeRepeatCumulate RepeatCatchUp RepeatRestartDateTime yearMonthDaydayName hourMinuterepeaterdelayTimePart AbsoluteTimeTimeStampRangeBracketedDateTimedatePart dayNameParttimePartrepeat delayPart activeState TimestamptsTimetsActive tsEndTimeClockunClock ActiveStateActiveInactiveLogbook unLogbookDrawerBlock OrderedList UnorderedList ParagraphnamecontentsItem MarkupTextPlainLaTeXVerbatimCodeBoldItalic UnderLine Strikethrough Properties unPropertiesSectionsectionTimestampsectionPlannings sectionClockssectionPropertiessectionLogbook sectionBlocksDepthHeadlinedepth stateKeywordprioritytitle timestampstatstagssection subHeadlinesDocument documentTextdocumentHeadlines sectionDrawer$fHashablePlanningKeyword$fFromJSONStats $fToJSONStats$fFromJSONPriority$fToJSONPriority$fFromJSONHeadline$fToJSONHeadline$fFromJSONSection$fToJSONSection$fFromJSONPlannings$fToJSONPlannings$fFromJSONPlanningKeyword$fToJSONPlanningKeyword$fFromJSONStateKeyword$fToJSONStateKeyword$fFromJSONTimeUnit$fToJSONTimeUnit$fFromJSONDelay $fToJSONDelay$fFromJSONDelayType$fToJSONDelayType$fFromJSONRepeater$fToJSONRepeater$fFromJSONRepeaterType$fToJSONRepeaterType$fFromJSONDateTime$fToJSONDateTime$fFromJSONYearMonthDay$fToJSONYearMonthDay$fFromJSONTimestamp$fToJSONTimestamp$fFromJSONClock $fToJSONClock$fFromJSONActiveState$fToJSONActiveState$fFromJSONLogbook$fToJSONLogbook$fFromJSONProperties$fToJSONProperties$fFromJSONBlock $fToJSONBlock$fFromJSONItem $fToJSONItem$fFromJSONMarkupText$fToJSONMarkupText$fFromJSONDepth $fToJSONDepth$fFromJSONDocument$fToJSONDocument $fEqDepth $fShowDepth $fNumDepth$fGenericDepth$fShowProperties$fEqProperties$fGenericProperties$fSemigroupProperties$fMonoidProperties$fShowMarkupText$fEqMarkupText$fGenericMarkupText $fShowBlock $fEqBlock$fGenericBlock $fShowItem$fEqItem $fGenericItem$fSemigroupItem $fMonoidItem$fShowActiveState$fEqActiveState$fReadActiveState$fGenericActiveState $fEqTimePart $fOrdTimePart$fShowTimePart$fShowRepeaterType$fEqRepeaterType$fGenericRepeaterType$fShowDelayType $fEqDelayType$fGenericDelayType$fShowTimeUnit $fEqTimeUnit$fGenericTimeUnit $fShowDelay $fEqDelay$fGenericDelay$fShowRepeater $fEqRepeater$fGenericRepeater$fShowDateTime $fEqDateTime$fGenericDateTime$fShowTimestamp $fEqTimestamp$fGenericTimestamp$fShowBracketedDateTime$fEqBracketedDateTime$fShowStateKeyword$fEqStateKeyword$fGenericStateKeyword$fShowPlanningKeyword$fEqPlanningKeyword$fEnumPlanningKeyword$fOrdPlanningKeyword$fGenericPlanningKeyword$fShowPlannings $fEqPlannings$fGenericPlannings$fShowPriority$fReadPriority $fEqPriority $fOrdPriority$fGenericPriority $fShowStats $fEqStats$fGenericStats $fShowClock $fEqClock$fGenericClock $fShowLogbook $fEqLogbook$fGenericLogbook$fSemigroupLogbook$fMonoidLogbook $fShowSection $fEqSection$fGenericSection$fShowHeadline $fEqHeadline$fGenericHeadline$fShowDocument $fEqDocument$fGenericDocumentParseLinesTillstop takeContentparseLinesContextuallyTillparseLinesTill takeALinetakeBlockBreakskipEmptyLines$fParseLinesTillEither skipOnlySpace nonHeadlineparsePlannings parseClockparseTimestamp parseDrawerparseDrawerDelim drawerEnd parseLogbook PropertyVal PropertyKeyparsePropertiespropertyparsePlainTextparseMarkupContentparseParagraph parseList parseBlocks parseSection TitleMetaheadlineBelowDepth headlineDepthheadingPriority mkTitleMeta parseStats parseTags $fEqTitleMeta$fShowTitleMeta parseDocumentAbsTimeWeekday hasMoreInput takeEmptyLineheadlinefeedParserText RecursiveparseBracketedDateTimetransformBracketedDateTimeparseDay parseTime' parseDateparseHM parseTimeUnit parseRepeater parseDelayparseDrawerNametokens isNotToken parseLaTeXparseVerbatimLikecreateTokenParser adaptSpace appendElementTokenkeyCharmarkup parseVerbatim parseCodebreakoutparseItemTermViaItemTerm parseNext toListBlockitem TokenParsertakeHorizontalSpacesparseItemTokens parseItemTermparseStateKeyword parseTitle