Commit Graph

103 Commits

Author SHA1 Message Date
Tom Alexander
4ac6d89311 Moving towards unifying into a single parameterized element matcher.
This is to give paragraph priority over keyword in parsing so that affiliated keywords for paragraphs will be parsed as such.
2023-04-22 00:55:31 -04:00
Tom Alexander
f5099356a1 Add support for parsing the planning element in sections. 2023-04-21 21:39:26 -04:00
Tom Alexander
18323a2b43 Solve the rest of the compiler warnings. 2023-04-21 18:42:31 -04:00
Tom Alexander
a1724dae52 Combine the error types. 2023-04-21 18:36:01 -04:00
Tom Alexander
142bb09879 Move the impl of Source to the same file as the definition of the struct. 2023-04-21 16:16:14 -04:00
Tom Alexander
d780981baf Separate out the element parsers. 2023-04-21 16:10:56 -04:00
Tom Alexander
54b02f4e74 Give object structs their own file separate from the parsers. 2023-04-21 16:07:38 -04:00
Tom Alexander
1badd3b0fc Add TODO about a bug. 2023-04-19 19:56:21 -04:00
Tom Alexander
7728f3b71e Fix property drawers beneath headlines. 2023-04-19 19:53:37 -04:00
Tom Alexander
87bdedf2e6 Only drop trailing whitespace when there isn't a property drawer. 2023-04-19 19:39:56 -04:00
Tom Alexander
d0410391cc Drop blank lines after property drawer instead of owning them. 2023-04-19 19:28:21 -04:00
Tom Alexander
4e65d2cda9 Fix requiring no space between comment and property drawer for zeroth section. 2023-04-19 19:22:23 -04:00
Tom Alexander
603cc131a0 Numerous fixes to property drawers. 2023-04-19 19:03:51 -04:00
Tom Alexander
b557b9ca5d Accounting for the blank lines at the head of documents and comments plus property drawer at the head of the zeroth section. 2023-04-19 18:37:39 -04:00
Tom Alexander
a2051aca4f Remove ChainBehavior. 2023-04-18 20:44:58 -04:00
Tom Alexander
35eff51d1b First implementation moving over to the new exit matcher class system. 2023-04-18 20:33:01 -04:00
Tom Alexander
52b401d548 comparing begin and end offsets for top-level sections and headlines. 2023-04-11 19:16:04 -04:00
Tom Alexander
1ecdd61fed Do not consume trailing whitespace if the parent exit matcher is matching. 2023-04-10 13:13:11 -04:00
Tom Alexander
6fdd613bed Cleanup. 2023-04-10 12:13:31 -04:00
Tom Alexander
9c832053d4 Remove parent exit matcher check from section.
This was poorly thought out and causing exit due to the no exit error.
2023-04-10 12:08:03 -04:00
Tom Alexander
e5bc4cb14b Footnote definitions are parsing on their own. 2023-04-10 11:50:43 -04:00
Tom Alexander
204f319a92 Simplify headline_end and section_end now that eof is a special case. 2023-04-10 11:19:20 -04:00
Tom Alexander
cbe7ef4030 Update the section parser to handle the new whitespace-included element parsers. 2023-04-10 11:16:32 -04:00
Tom Alexander
9a0172e1a4 Add a context element for tracking whether or not elements should consume their trailing whitespace. 2023-04-10 10:36:16 -04:00
Tom Alexander
2d1df18544 Cleanup. 2023-04-03 15:15:16 -04:00
Tom Alexander
707eac5bf8 Move trailing whitespace parsing to a separate element.
I still need to parse the line break at the end of elements.
2023-03-31 11:16:37 -04:00
Tom Alexander
028946ec90 Identified the problem.
The issue is plain text is eating the line break so paragraph is failing since it expects a line break at the end.
2023-03-27 18:08:17 -04:00
Tom Alexander
cddefdb963 Remove unnecessary exit matcher check. 2023-03-27 16:53:38 -04:00
Tom Alexander
a77d2655bd Instrument the code. 2023-03-27 16:36:43 -04:00
Tom Alexander
22a2ed29f1 Integrate plain list parser into the parser tree. 2023-03-27 13:06:41 -04:00
Tom Alexander
e6752b9d83 Building the plain list item context. 2023-03-25 14:10:22 -04:00
Tom Alexander
23eb4d01f4 Add title to heading object. 2023-03-25 12:18:47 -04:00
Tom Alexander
3a0a4c8953 Consume the trailing whitespace after a headline. 2023-03-25 11:59:19 -04:00
Tom Alexander
3c26933e7f Move some functions into util. 2023-03-25 11:25:10 -04:00
Tom Alexander
d582c8603a Implement a basic paragraph parser. 2023-03-25 11:22:59 -04:00
Tom Alexander
f2d16d302a Implement document parser. 2023-03-24 17:34:56 -04:00
Tom Alexander
7ab3df6938 Use headline instead of heading for section_end.
This should be more performant.
2023-03-24 17:30:33 -04:00
Tom Alexander
8013f127df Implement heading parser. 2023-03-24 17:19:46 -04:00
Tom Alexander
dc9f3eb2e6 Implement the section parser. 2023-03-24 17:00:27 -04:00
Tom Alexander
754c1922df Create a start_of_line parser. 2023-03-24 16:37:34 -04:00
Tom Alexander
ceb7788cfa Check the exit matcher in more places. 2023-03-23 20:12:42 -04:00
Tom Alexander
3502a31b28 Simple version of the headline parser done. 2023-03-23 20:03:45 -04:00
Tom Alexander
4f10f2abec Solved the lifetime issue by using the standard many1 combinator. 2023-03-23 20:00:35 -04:00
Tom Alexander
02d04b59db Ran into a lifetime issue. 2023-03-23 19:53:20 -04:00
Tom Alexander
5c8a064eca Start writing the parser for headings. 2023-03-23 19:35:32 -04:00
Tom Alexander
6042c44514 Starting to define document parser. 2023-03-23 17:59:39 -04:00
Tom Alexander
d98a11059c Introduce the document structure. 2023-03-23 17:52:16 -04:00
Tom Alexander
36210c2d7f Add a DocumentRoot context element storing the original full document.
This might be used for look-behind instead of storing previous element nodes in the context tree.
2023-03-23 16:40:39 -04:00
Tom Alexander
60d9487fdf Add comment. 2022-12-18 04:36:12 -05:00
Tom Alexander
2def475337 Move the structs into the token module. 2022-12-18 03:24:35 -05:00