[SRu      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrst 2014 Parnell SpringmeyerAll Rights Reserved/Parnell Springmeyer <parnell@digitalmentat.com> experimentalNone0BG,Org headline nesting level (1 is at the top)H'State of the headline (e.g. TODO, DONE)Q'Text occurring before any Org headlinesRToplevel Org headlinesr  !"#$%&'()*+,-./0123456789:;<=>?@AuBCDEFGHIJKLMNOPQRvwxyz{|}~S  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSOPQR<=>?@ACDEFGHIJKLMN B789:;./01234 *-,+%&'()"$# !568   !"$#%&'()*-,+./0123456789:;<=>?@AuBCDE FGHIJKLMNOPQRvwxyz{|}~ 2014 Parnell SpringmeyerAll Rights Reserved/Parnell Springmeyer <parnell@digitalmentat.com>stableNoneSParse a property drawer. Z:PROPERTIES: :DATE: [2014-12-14 11:00] :NOTE: Something really crazy happened today! :END:TParse 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).STSTSTST 2014 Parnell SpringmeyerAll Rights Reserved/Parnell Springmeyer <parnell@digitalmentat.com>stableNone bParse a planning linePlannings live in 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. DEADLINE:  2015-05-1017:00 CLOSED: 2015-04-1612:00cParse a clock linewA 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:00dParse a timestampTimestamps 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.eParse a single time part [2015-03-27 Fri 10:20 +4h]returning: * The basic timestamp * Whether there was a time interval in place of a single time (this will be handled upstream by parseTimestamp) * Whether the time is active or inactive (DateTime, Maybe (Hours, Minutes), Bool)gParse a 3-character day namehLParse the time-of-day part of a time part, as a single point or a time rangei)Parse the YYYY-MM-DD part of a time part.jParse a single HH:MM point.k4Parse the Timeunit part of a delay or repeater flag.lParse a repeater flag, e.g. .+4w, or ++1y.mParse a delay flag, e.g. --1d or -2w.UVWXYZ[\]^_`abcdefghijklmUVWXYZ[\]^_`abcdefghijklmbcdaYZ[\]^_`efgXWUVhijklmUVWXYZ[\]^_`abcdefghijklm 2015 Parnell SpringmeyerAll Rights Reserved/Parnell Springmeyer <parnell@digitalmentat.com>stableNonenParse a heading sectionHeading sections contain optionally a property drawer, a list of clock entries, code blocks (not yet implemented), plain lists (not yet implemented), and unstructured text.nnnn 2014 Parnell SpringmeyerAll Rights Reserved/Parnell Springmeyer <parnell@digitalmentat.com>stableNone BoHParse an org-mode heading and its contained entities (see orgmode.orgworgWdev/org-syntax.html Header guidance) Headers include a hierarchy level indicated by s, optional Todo-like state, priority level, %-done stats, and tags e.g.: ** TODO [#B] Polish Poetry Essay [25%] :HOMEWORK:POLISH:WRITING:Headings contain: * A M with Planning and Clock entries * A number of other not-yet-implemented entities (code blocks, lists) * Unstructured text * Other heading deeper in the hierarchyheadingBelowLevel takes a list of terms to consider StateKeyword's, and a minumum hierarchy depth. Use 0 to parse any headingpEParse the asterisk indicated heading level until a space is reached.'Constrain to LevelDepth or its childrenParse the state indicator {TODO | DONE | otherTodoKeywords }.JThese can be custom so we're parsing additional state identifiers as TextqParse the priority indicator.LIf anything but these priority indicators are used the parser will fail: `[A]`, `[ B]`, `[#C]`.?Parse title, optional Stats block, and optional Tag listToMaybe]Stats may be either [m/n] or [n%]. Tags are colon-separated, e.g. :HOMEWORK:POETRY:WRITING:rParse a Stats block.kAccepts either form: "[m/n]" or "[n%]" There is no restriction on m or n other than that they are integerss$Parse a colon-separated list of Tagse.g. :HOMEWORK:POETRY:WRITING: opqrsopqrsopqrs opqrsNonetttt 2014 Parnell SpringmeyerAll Rights Reserved/Parnell Springmeyer <parnell@digitalmentat.com>stableNoneu  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrst        !"#$%%&'()*+,,-./01234456789:;<<=>?@@ABCDEFFGGHIJKLMNOPPQRSTUUVWXXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~orgmode-parse-0.1.0.1Data.OrgMode.Parse.Types,Data.OrgMode.Parse.Attoparsec.PropertyDrawer"Data.OrgMode.Parse.Attoparsec.Time%Data.OrgMode.Parse.Attoparsec.Section&Data.OrgMode.Parse.Attoparsec.Headings&Data.OrgMode.Parse.Attoparsec.DocumentData.OrgMode.Parse thyme-0.3.5.5Data.Thyme.Calendar.InternalymdDayymdMonthymdYear YearMonthDayDurationStatsStatsOfStatsPctTagPriorityCBA PlanningsPlnsPlanningKeywordCLOSEDDEADLINE SCHEDULED StateKeywordunStateKeywordTimeUnitUnitHourUnitDay UnitMonthUnitWeekUnitYearDelay delayType delayValue delayUnit DelayType DelayFirstDelayAllRepeater repeaterType repeaterValue repeaterUnit RepeaterType RepeatRestart RepeatCatchUpRepeatCumulateDateTime yearMonthDaydayName hourMinuterepeaterdelay YearMonthDay'YMD' TimestamptsTimetsActive tsEndTimeSectionsectionPlannings sectionClockssectionPropertiessectionParagraph PropertiesLevelHeadinglevelkeywordprioritytitlestatstagssection subHeadingsDocument documentTextdocumentHeadings parseDrawerpropertyTimePartTimestampRange AbsoluteTimeBracketedDateTimedatePart dayNameParttimePartrepeat delayPartisActiveWeekdayparsePlannings parseClockparseTimestampparseBracketedDateTimetransformBracketedDateTimeparseDay parseTime' parseDateparseHM parseTimeUnit parseRepeater parseDelay parseSectionheadingBelowLevel headingLevelheadingPriority parseStats parseTags parseDocumentClock$fHashablePlanningKeyword$fFromJSONStats $fToJSONStats$fFromJSONPriority$fToJSONPriority$fFromJSONHeading$fToJSONHeading$fFromJSONSection$fToJSONSection$fFromJSONPlannings$fToJSONPlannings$fFromJSONPlanningKeyword$fToJSONPlanningKeyword$fFromJSONStateKeyword$fToJSONStateKeyword$fFromJSONLevel $fToJSONLevel$fFromJSONTimeUnit$fToJSONTimeUnit$fFromJSONDelay $fToJSONDelay$fFromJSONDelayType$fToJSONDelayType$fFromJSONRepeater$fToJSONRepeater$fFromJSONRepeaterType$fToJSONRepeaterType$fFromJSONDateTime$fToJSONDateTime$fFromJSONYearMonthDay'$fToJSONYearMonthDay'$fFromJSONTimestamp$fToJSONTimestamp$fFromJSONDocument$fToJSONDocument PropertyVal PropertyKeybaseGHC.Num*parseStateKeywordtakeTitleExtras TitleMeta LevelDepth mkTitleMeta skipSpace' nonHeaderLine